Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

Вы также можете выбрать книгу, посвященную ядру Linux. Для этой цели я взял копию Robert Love Linux Kernel Development (2nd Edition) (3rd Edition).

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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