Документация по Linux в основном отсутствует (аналогично другим платформам). Тем не менее, есть несколько книг, которые содержат достаточно информации, чтобы начать работу, и более сложные биты ядра могут быть позаимствованы у других драйверов (yay для Open Source).
Тем не менее, это одна из самых простых современных платформ для разработки драйверов. Существуют более чистые модели, такие как QNX, но этот продукт, к сожалению, близок к концу (и не поддерживает 1/10 столько же, сколько аппаратное обеспечение, чем Linux)
На какой тип устройства ориентирован драйвер? Много раз вы можете избежать написания драйверов в ядре (например, используя libusb в пользовательском пространстве или инфраструктуру ввода-вывода в пользовательском пространстве)