У меня есть основные понять следующее:Понимание драйверов устройств код с управлением commmentary
- Как читать аппаратные устройства Паспорта
- Как аппаратные устройства работают в теории
- Что драйвер устройства делать
- Общие понятия программирования C
- Linux OS
Я всегда считал, что, если я могу понять весь код данного драйвера устройства и в конечном итоге написать тот же код с нуля, просто с помощью вышеизложенного (не глядя на исходный код), я смогу получить очень хорошо понимают язык C и как работают драйверы устройств и взаимодействуют с ОС. Для меня это было бы важной вехой в моей карьере.
Итак, за последние несколько лет я всегда думал научиться писать драйверы устройств (в основном для ОС Linux). Я всегда начинаю (это произошло не менее 6-7 раз) с большим энтузиазмом и выбираю несколько хороших онлайн-ресурсов и читаю их. Затем я беру существующий код драйвера из ядра Linux (скажем, код драйвера Ethernet), получаю таблицу данных и начинаю читать код драйвера, но после прочтения нескольких строк я немного запутался, а затем в конечном итоге сдался, потому что я не мог следовать остаток кода.
Вопрос: Я знаю, что такой учебник слишком хорош, чтобы быть правдой, но я все еще хочу спросить - знает ли кто-нибудь хороший ресурс, который объясняет, как был написан драйвер устройства Linux, начиная с подробных ссылок на лист данных и существующая строка кода, связанная с ней, а затем объясняя каждую функцию/блок кода, почему он существует и что он делает точно.