Разработка драйверов для Linux. Могу ли я серьезно повредить свою систему?

В настоящее время я читаю книгу о разработке драйверов для Linux. Сейчас начал писать драйвер для мыши razer naga.

Мой вопрос: каков наихудший сценарий разработки драйверов? (Я не касаюсь процессора, жесткого диска, оперативной памяти и т. д.)

Я всегда думал, что самое худшее, что может случиться, — это сбой системы и необходимость ее перезагрузки. Прежде чем я продолжу писать код, я хотел бы убедиться, что не могу серьезно повредить свою систему.


person Community    schedule 01.05.2014    source источник
comment
Краткий ответ: это правильно. Я не могу вспомнить ни одного случая, когда вы рискуете поджарить оборудование или вывести из строя свой компьютер. Разработка встроенной системы: да. Игра с драйвером мыши для ПК Linux - нет. Я думаю, ты в безопасности.   -  person FoggyDay    schedule 02.05.2014
comment
Возможно... но не точно. Все, что работает в контексте ядра, теоретически выше большинства средств защиты, поэтому что-то вроде уничтожения раздела жесткого диска, безусловно, возможно, и теоретически возможно более сложное восстановление таких вещей, как повреждение биоса или элемента безопасности. Но большинство невинных ошибок учащегося, которые не касаются критических систем, просто приведут к сбою попытки запуска.   -  person Chris Stratton    schedule 02.05.2014
comment
Теоретически вы можете поджечь вещи...   -  person Marc B    schedule 02.05.2014
comment
Большое Вам спасибо. Практически каждый учебник и сам автор книги рекомендует быть осторожным. Проблема в том, что эти предупреждения очень серьезны. Но в любом случае, я постараюсь не поджечь принтер @Marc B и не взорвать свою мышь :D   -  person    schedule 02.05.2014
comment
Тестирование вашего кода ядра внутри виртуальной машины обеспечит еще один уровень защиты для большей части хост-системы, но не для периферийных устройств, подключенных через USB, с реальными побочными эффектами.   -  person Chris Stratton    schedule 02.05.2014
comment
Еще одно предостережение, которое вы можете сделать, это сделать ваш драйвер загружаемым модулем вместо встроенного. Таким образом, если вы что-то испортите, вы можете просто перезапустить его в обычном режиме и исправить это, а затем повторно вставить. С другой стороны, в крайнем случае наличие встроенного модуля может привести к сбою ОС при загрузке!   -  person brokenfoot    schedule 02.05.2014
comment
Кто знает что может произойти, когда вы возитесь с пространством ядра?   -  person tangrs    schedule 02.05.2014


Ответы (1)


Оборудование в настоящее время довольно избыточно. Очень сложно сломать аппаратное обеспечение с помощью программного обеспечения (не говоря уже о проблемах с нагревом).

В худшем случае вы заблокируете свою систему и, возможно, придется переустанавливать ОС. Это может легко произойти во время разработки драйвера устройства. У вас есть драйверы файловой системы в ядре, и ваши драйверы могут повредить стек ядра, что может сделать его непригодным для использования.

Ядро Linux имеет довольно хорошие встроенные меры безопасности, такие как переход в режим только для чтения после повреждения ядра. Это монтирует вашу корневую файловую систему в режиме только для чтения, чтобы вы не могли ее удалить.

Так что всегда будьте в безопасности. Попробуйте разработать виртуальную машину, такую ​​​​как Virtualbox, которая в настоящее время дает вам почти все.

person pranith    schedule 09.05.2014