Constantine A. Murenin (cnst) wrote,
Constantine A. Murenin
cnst

Category:

Почему так важно иметь документацию по программированию железа

На недавно прошедшей в Италии конференции 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 очень затруднительной.)
Tags: documentation, drivers, ethernet, fcc, freebsd, hardware, linux, open for business, openbsd, opencon, opencon 2006, opensolaris, originalcontent4lor, wireless
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments