Как мне начать писать драйверы устройств? [закрытый]


Я хотел бы узнать, как писать драйверы устройств, потому что я думаю, что это было бы весело. Я использую Mac OS X Macbook, но у меня также есть машина Ubuntu (работает на Mac Min). Я довольно хорошо знаком с C и в настоящее время читаю книги. Я нашел некоторые ссылки в интернете, такие как Mac Dev Center. Я делаю это, потому что это было бы весело. Я думаю, что было бы очень приятно видеть, как оборудование работает из-за программного обеспечения, которое я написал.

Я думаю, что я хотелось бы получить некоторые советы или рекомендации и рекомендации, и кто-нибудь знает о списке устройств, у которых нет драйверов, или я могу написать драйвер для чего-то, что уже поддерживается (предпочел бы первое, поэтому я действительно предоставляю значение). Что такое хорошее устройство для начала работы? Я откусываю больше, чем могу прожевать? Я не боюсь низкоуровневого программирования или сборки или любого количества усилий, которые требуются. Я хотел бы вызов действительно!

4 57

4 ответа:

для Linux, вы можете посмотреть в сборке O'Reilly Драйверы Устройств Linux книги или читать PDF-файлы онлайн. На мой взгляд, это один из лучших текстов на эту тему.

Руководство По Программированию Модуля Ядра Linux еще один хороший ресурс.

вы также можете взять книгу специально на ядре Linux. Я взял копию Роберта Лав разработка ядра Linux (2-е издание) для этого (3-е издание на пути).

написание драйвера устройства может быть довольно простым, или это может быть практически сколь угодно сложны. Например, я участвовал в проекте, где шесть из нас почти три года решали одну ошибку в драйвере устройства. Конечно, мы очистили десятки других ошибок, ища его... код значительно улучшился. Исправление оказалось восьмистрочным патчем, который стоил, консервативно, около миллиона долларов.

но, как побочный проект к этому, я написал ethernet драйвер из спецификации чипа через неделю, и потребовалась еще неделя, чтобы отладить его. С тех пор мне не нужно было его трогать.

нет никакого способа сказать в целом, сколько будет работать драйвер; драйвер GPU может стоить сотни миллионов, драйвер для одного светодиода стоит максимум пару часов работы.

Если вы хотите перейти на разработку драйверов устройств Linux, свободно доступная книга O'Reilly Драйверы Устройств Linux, Третья Редакция это надо читать.

чтобы найти неподдерживаемые аппаратные части, для которых вы могли бы написать драйвер, спросите на списки рассылки Linux. Может быть, какое-то устройство USB 3.0? ;)

для Mac вы можете взглянуть на внутренние устройства Mac OS X книги. Это думать и тяжело, но весело читать. В основном речь идет о компьютерах на базе PowerPC, но есть приложение о компьютерах на базе Intel. Для Linux взгляните на драйверы устройств Linux, 3-е издание - он легче (бесплатные PDF-файлы онлайн :) и действительно ориентирован на драйвер устройства, может быть, лучше начать.