Если у вас есть выбор по этому вопросу, общайтесь с устройствами в пользовательском пространстве. Драйверы пользовательского пространства гораздо проще разрабатывать, упростить защиту и меньше использовать обновления для новых ядер.
ситуации, когда драйвер ядра может быть неизбежно включает в себя:
Если ваше оборудование обеспечивает стандартные услуги, которые будут потребляться другими частями ядра - например, если это блочное устройство или сетевое устройство. Устройства ввода и видеоустройства могут также попадать в эту категорию в зависимости от того, как вы планируете их использовать.
Если ваше устройство имеет необычно жесткие требования к срокам, которые не могут быть удовлетворены приложением для пользовательского пространства, или если для этого требуются компоненты драйвера, которые доступны только в пространстве ядра, например аппаратные таймеры.
Если вы взаимодействуете с аппаратным обеспечением, которое напрямую не распространяется на пользовательское пространство, например, на устройство PCI. (Несмотря на это, может быть ситуативно уместно написать «тонкий» драйвер ядра и выполнить остальную часть работы в пользовательском пространстве.)
Благодарим вас за ответ, сэр. Не могли бы вы, пожалуйста, объяснить немного больше точки nr. 1? – jithophipr
@trilolil Я имею в виду видеовыход. Графические карты и тому подобное. – duskwuff