Драйверы очень похожи на любую другую программу, они могут состоять из нескольких исходных файлов. Драйверы устройств Linux могут быть непосредственно скомпилированы в ядро или модуль ядра. Преимущество модулей ядра заключается в возможности их динамической загрузки (т. Е. Для их использования не требуется компилировать новое ядро).
Очевидно, что вы всегда можете взглянуть на исходный код Linux, но на первый взгляд это может оказаться сложной задачей. Тем не менее, как и все, что в Linux, драйверы являются файлами. Это означает, что другие программы получают к ним доступ через интерфейс VFS. Например, вы можете управлять CDROM через ioctl()
вызовы, используя его файл устройства.
Я настоятельно рекомендую проверить драйверы устройств Linux . Он находится в свободном доступе и ответит на ваши вопросы. В частности, вы можете прочитать главу 2, в которой показано, как создать простой модуль «Hello, Kernel». Это может быть гораздо больше, чем вы просите, но вы можете прочитать интересующие вас кусочки. И это бесплатно. ;П