?

Log in

No account? Create an account
Почему так важно иметь документацию по программированию железа - Constantine A. Murenin [entries|archive|friends|userinfo]
Constantine A. Murenin

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Почему так важно иметь документацию по программированию железа [Сб, 2006-12-09T19:29]
Constantine A. Murenin
[Tags|, , , , , , , , , , , , , ]

На недавно прошедшей в Италии конференции OpenCON 2006, Theo de Raadt и Jonathan Gray выступили с докладами о проблеме, с которой сталкиваются разработчики любой операционной системы — проблеме поддержки железа.

Theo de Raadt перечислил основные компоненты компьютера, и привёл наглядную таблицу, сравнивающую поддержку различных устройств и доступность документации по программированию.

Например, Theo в очередной раз подчеркнул, что доступность документации (а следовательно и отменная поддержка в свободных драйверов) для сетевых адаптеров по большому счёту является заслугой одного человека — Bill Paul'а, который зачастую разрабатывал FreeBSD-драйвера для сетевых адаптеров в считанные дни после выхода адаптеров в розничную торговлю! Не остались и без внимания адаптеры em(4), для которых Intel долгое время не предоставлял никакой документации (вместо этого предоставляя только исходные коды драйверов), и один из читателей undeadly посоветовал, что именно отсутствию документации и обязаны несколько недавних сообщений об уязвимости различных адаптеров Intel.

Сразу после Ethernet-адаптеров, Theo перешёл к беспроводным сетевым адаптерам: несмотря на отсутствие документации на некоторые чипсеты, OpenBSD поддерживает 90% всех беспроводных адаптеров, выходя на первое место по поддержке беспроводных устройств в инсталляции по умолчанию. Большинство беспроводных драйверов на всех BSD системах и на OpenSolaris написаны опять одним единственным программистом — Damien'ом Bergamini, на сей раз разработчиком OpenBSD.

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

Theo официально затронул и нашумевшую тему о том, что якобы FCC и другие подобные организации запрещают производителям выпускать документацию из-за присутствия программного радио-передатчика (Software Defined Radio). Theo чётко заявляет, что FCC ещё ни разу не атаковал ни одного производителя чипсетов, который бы выпускал свободную документацию к своим передатчикам, т.к. в реальных условиях передатчики всё равно не смогут далеко уйти от разрешённой частоты и не смогут создать какую-либо угрозу из-за незначительной мощности. Оправдание FCC всего лишь является ещё одним оправданием "пользователей" чипсетов, а не оправданием производителя.

Далее Theo обсуждает тему защиты производителей их пользователями: если почитать любой форум, включая новости об отсутствии документации на определённые чипсеты на linux.org.ru, то можно заметить, что очень часто при публикации очередной информации о закрытости того или иного чипсета пользователи сами придумывают различные оправдания тому, почему документация отсутствует! Theo, имея опыт общение с полусотней производителей, чётко заявляет, что сами производители подобных оправданий никогда не дают!


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

Далее Jonathan кратко перечислил структуру драйверов на OpenBSD и процесс написания драйверов новых устройств, и призвал некоторых разработчиков Solaris и особенно Linux и FreeBSD перестать пилить сук, на котором они сидят, подписывая многочисленные NDA для разработки драйверов, которые потом никто не сможет редактировать. (Главная проблема в подписании NDA состоит в том, что только разработчики подписавшие NDA могут работать над драйвером, и подписание NDA одними разработчиками делает работу других разработчиков без NDA очень затруднительной.)
СсылкаОтветить

Comments:
[User Picture]From: polachok
2006-12-10T15:07:14
спасибо за новости по опенку, зафрендил :)
(Ответить) (Thread)
[User Picture]From: plaintex
2009-04-14T15:41:45
да, спасибо за обзор.
(Ответить) (Thread)