OSDev http://osdev.su/ |
|
Как пишутся драйвера? http://osdev.su/viewtopic.php?f=5&t=1839 |
Страница 2 из 2 |
Автор: | v.g.a. [ 10 июн 2018, 20:22 ] |
Заголовок сообщения: | Re: Как пишутся драйвера? |
Цитата: Например сетевой драйвер, драйвер видеокарты, и драйвер клавиатуры. Где искать информацию? По каким ключевым словам? Самостоятельно разработать драйвер можно. Требуется документация от производителя устройства. Ну и наличие самого устройства для тестирования. Например, требуется драйвер для сетевой карты на основе чипа Intel 82545EM, которая эмулируется в VMWARE (e1000). Документация находится по поиску Цитата: 8254x Family of Gigabit Ethernet Controllers Software Developer’s Первая ссылка в яндексе на pdf. В этом файле есть всё, что требуется:) Требуется хорошее знание английского языка, объём самой документации большой, т.к. в ней описывается целое семейство сетевых адаптеров. На самом деле простой рабочий драйвер написать реально за неделю - другую. Лично мне было очень интересно поработать с сетевым адаптером на уровне регистров. Написал небольшую программу под DOS, которая выводила информацию о полученных кадрах Ethernet. Вообще в виртуальной машине удобно работать с "железом". |
Автор: | v.g.a. [ 10 июн 2018, 20:40 ] |
Заголовок сообщения: | Re: Как пишутся драйвера? |
Для реальной, не эмулируемой сетевой карты Intel 82545EM драйвер требует модификации, т.к. может будет работать, а может и не будет. Причина - различные ошибки в чипе (errata). На сайте Intel можно скачать файл с описанием этих ошибок, для этого семейства сетевых адаптеров обнаружено несколько десятков ошибок. Драйвер модифицируется для обхода этих ошибок, пишутся workarounds. Как пример, можно посмотреть код драйвера e1000 в Linux. Также требуется тестирование драйвера на сетевых картах с чипом Intel 82545EM. Лично для себя разрабатывать драйвера для реального железа считаю неперспективным. Можно использовать драйвера с открытым исходным кодом (Linux). Но требуется их модификация для встраивания в свою ОС. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |