Свободная разработка хардвера - прошлое, настоящее, будущее
АрхивПечатается в сокращении. Окончание. Начало в #400
Печатается в сокращении 1
Окончание. Начало в #400
Грэм Симэн (Graham Seaman) - инженер-электронщик, программист, живет и работает в Лондоне. Он организатор проекта Opencollector, посвященного развитию открытой разработки архитектур процессоров и других компьютерных компонентов. Сегодня мы публикуем вторую половину «исторической части» его обзорного доклада на конференции по «свободному харду», состоявшейся в мае этого года в Дортмунде. Полный текст см. на http://opencollector.org/Whyfree/freedesign.html.
Настоящее
В течение двух-трех лет объем работ по созданию свободного хардвера рос поразительными темпами.
Среди новых факторов, стимулирующих такой рост, отметим:
1. Повышение степени интеграции, позволяющее создавать «системы-на-кристалле» (systems-on-chip, SOC), и, как следствие, необходимость в библиотеках функционально-логических схем (designs), хотя бы частично независимых от физической реализации (другое следствие - потенциальный рынок функционально-логических схем). Увеличение размеров FPGA (программируемые матрицы вентилей) тоже привело к потребности в таких библиотеках. Попытки создать коммерческие библиотеки такого рода в 1990-х годах в основном закончились неудачей, поэтому конкурентов у «свободных дизайнов» немного. Первым сайтом, посвященным свободной разработке ИС, был Free-IP. Сейчас самая многочисленная группа - OpenCores. Она объединяет разработчиков со всего мира, от студентов до опытных профессионалов. Заявленная задача OpenCores - создать полную библиотеку SOC-компонентов и реализовать ее в кремнии. Для шин, используемых в SOC, не существует единого стандарта. Silicore Corporation сделала свою схему шины Wishbone общедоступной, а OpenCores работает над улучшением этой схемы, и результат вполне может стать стандартом. Flextronics недавно объявила, что, возможно, профинансирует производство первой специализированной ИС (application specific IC, ASIC) на основе разработок OpenCore.
2. Широкое распространение FPGA, что позволило реализовать сложные разработки, не используя производственного оборудования. Похоже, что FPGA являются решением почти всех проблем, с которыми сталкивались конструкторы 80-х. Вся конструкция умещается на одном чипе (причем размеры FPGA так стремительно выросли, что «конструкция» - это не обязательно один процессор, а, быть может, и система в целом). В одну и ту же FPGA можно, по желанию, загружать различные конструкции, при этом новые системные платы изготовлять не нужно, что приближает тестирование и отладку разрабатываемых ИС к аналогичным процедурам при разработке программ. Практически все группы свободной разработки харда в той или иной степени используют FPGA. Весьма показательный пример - группа CPC-NG, занятая разработкой осовремененной версии компьютеров Amstrad CPC, выпускавшихся в 80-е годы. Они используют FPGA для воспроизведения «родной» амстрадовской ASIC - раньше такое было бы немыслимо.
Сегодня основная задача для конструктора-любителя уже не сконструировать компьютер, а сконструировать процессор, - впервые после 70-х годов, когда можно было собрать приличный процессор из 1-2-битовых, как из кубиков «Лего».
3. Расширение рынка встроенных систем (embedded systems) - их создание тоже под силу любителям. Нынешний компьютер - это уже не обязательно большой перегретый ящик, он может быть одним из множества маленьких карманных устройств. Интересной считается не только та система, что превосходит мультипроцессорную плату в быстродействии или имеет тактовую частоту за гигагерц; это может быть маленькое дешевое устройство, имеющее новую область приложений. Существует множество встроенных плат, примером может служить LART, в которой Debian Linux работает на процессоре StrongArm и которая первоначально предназначалась для экспериментов с беспроводной передачей мультимедиа. Может быть, японский наладонник MorphyOne больше отвечает духу свободной разработки хардвера - он содержит универсальный блок программируемой логики (Complex programmable logic device, CPLD), благодаря которому пользователи могут создавать собственные дополнительные интерфейсы. Группа OpenH.org недавно начала переписывать пакет Sourceforge, чтобы создать равноценный программный инструмент для разработчиков встроенных систем.
4. Распространение Интернета из США и Европы по всему миру. В свободной разработке хардвера теперь участвуют японцы (пример - Morphy), индонезийцы (многие члены группы OpenCores), индийцы (группа Simputer), южноафриканцы (OpenH). Сфера интересов разработчиков, как и сфера различных приложений, сейчас шире, чем когда-либо прежде. Вместе с тем навязанное развивающимся странам законодательство об интеллектуальной собственности подтолкнуло их к развитию содружественных 2 технологий в качестве альтернативной стратегии (это видно из «Бангалорской декларации по информационным технологиям для развивающихся стран»).
Первой из перечисленных выше систем в массовое производство поступит индийский Simputer, который будет использоваться и в Африке.
Simputer имеет большие возможности персонализации (с помощью флэш-карт). Аналогичные системы - Pengachu, разрабатываемый в МТИ и рассчитанный на минимальное энергопотребление (возможно, это будет заводной компьютер), и бразильский LUAR. Последний, к сожалению, не имеет открытых спецификаций, но программное обеспечение к нему - открытое.
5. Существование мощного движения, связанного со свободным софтом. Здесь важны не столько ресурсы, имеющиеся у сообщества Open Source, сколько даваемый им пример успешного развития подобный идей. Устойчивость этого движения позволяет ожидать, что и свободная разработка хардвера на этот раз не будет поглощена коммерческими интересами, а, напротив, будет постоянно расширяться.
Будущее
Дальнейшее развитие событий зависит от того, будут ли найдены решения назревших проблем свободной разработки хардвера. К таковым, в частности, относятся: явно недостаточное развитие свободно распространяемого софта для автоматизации разработки (Electronics design automation, EDA), все еще не определившиеся отношения с производителями, недостаточное количество защищаемых законом лицензий.
Свободные разработки без свободного софта
Первым сайтом, посвященным свободному хардверу и оказавшим заметное влияние на развитие этого движения, был сайт Open Design Circuits, основанный Райнудом Ламбертом (Reinoud Lambert) из Технического университета Делфта. Кредо создателей сайта формулировалось так:
Open Design Circuits - аналог Open Source Software. Спецификации хардвера, как и исходные тексты, свободно распространяются среди разработчиков и пользователей. Намеченный здесь подход к «открытому дизайну» стремится использовать сильные стороны модели создания софта с открытым исходным текстом в сфере разработки хардвера. Он не требует крупных начальных инвестиций, обычных для проектов разработки хардвера, и позволяет быстро тестировать новые конструкции с учетом замечаний пользователей (что и стало ключевым фактором успеха в случае свободного софта).
Тем самым исходная идея полностью основывалась на успехе проектов разработки открытого софта. Это и стало причиной ее краха. Большинство участников предполагало, что открытый хард должен основываться на открытом софте. Но открытого софта для разработки схем на FPGA не существует, а секретность, которой производители FPGA окружают их «начинку», гарантирует, что его и не может быть. Разработчикам приходится использовать либо подаренное им коммерческое программное обеспечение, либо бесплатный, но не открытый коммерчески разработанный софт (commercial freeware).
Даже в тех случаях, когда существует необходимый открытый софт (например, для компиляции HDL [Hardware Description Language] до уровня логической схемы из вентилей [netlist] или симуляции HDL-схемы), он обычно значительно отстает от коммерческих продуктов. То же самое относится к софту для трассировки печатных плат. Из-за большой дополнительной работы, которой требует в связи со всем этим использование открытого софта при конструировании, почти никто из разработчиков свободного хардвера им не пользуется. Это лишает разработчиков такого софта обратной связи с сообществом пользователей и расшатывает движение разработчиков свободного хардвера, ослабляя его связи с сообществом свободного софта.
Со временем софт для EDA (по крайней мере, верхнего уровня) с открытыми исходниками должен достичь того уровня развития, на котором находятся коммерческие продукты. Практически вся информация о работах в этом направлении сосредоточена на сайте группы gEDA - в конференциях на этом сайте постоянно участвуют разработчики программ Icarus Verilog, Circuit Simulator(AI), Savant (инструменты VHDL) и др.
Главная проблема - нижний уровень. Библиотеки элементов ИС или FPGA очень быстро устаревают и часто «окутаны коммерческой тайной». Однако существует вероятность, что разработчики свободного хардвера сами создадут свой базовый слой. Например, группа OpenCores уже работает над новой и, можно надеяться, не защищенной патентами спецификацией FPGA, составляющей часть их «системы-на-кристалле».
Свободные разработки, которые невозможно запустить в производство
Первая реакция многих участников сообщества свободного софта на идею свободной разработки хардвера была такой: все это замечательно, но как вы будете производить разработанные вами чипы? Теперь эта проблема, которая изначально казалась самой сложной из всех, начинает терять остроту. Уже появились первые чипы, изготовленные по проектам, защищенным GPL: разработки SPARC-архитектур, сделанные Европейским космическим агентством (ESA), были реализованы в кремнии как для самого ESA, так и в качестве составных частей коммерческих продуктов (Metaflow и IROC). Группа OpenCores объявила, что надеется на скорый выпуск спроектированного ими процессора. Simputer на уровне платы уже выпускается одной из компаний, базирующейся на острове Маврикий, - с ориентацией на индийский и африканский рынки. Итак, производство вполне возможно, если разработка выглядит коммерчески перспективной.
Для разработок, не сулящих немедленного получения прибыли, ситуация сложнее. Один из возможных путей - подключиться к университетским программам, имеющим доступ к производственному оборудованию, используя для снижения стоимости стратегию Мида-Конвей (см. начало статьи в «КТ» #400) размещения множества чипов на одной пластине.
Изготовить платы проще, чем чипы, и это вполне по плечу многим группам. В перспективе неизбежна кооперация большого количества групп, координируемая такими организациями, как OpenCores или OpenH.
Свободные разработки, перестающие быть свободными
Коммерческие разработки защищены в первую очередь патентами. Разработчики свободного хардвера не могут себе позволить патентование, да к тому же их мотивирует в работе не стремление получить патент. Защита разработок должна достигаться применением некоей смеси авторского права, договорного права и актов о защите прав на полупроводниковые чипы.
В «традиционных» лицензиях, появившихся примерно в 80-е годы, писалось нечто вроде: «любой может использовать эту разработку, но не в коммерческих целях». Это, с одной стороны, противоречит духу свободного софта, а с другой - подрезает крылья разработчикам, так как единственный путь запустить разработку в производство - выполнить ее для коммерческих целей.
Идеальная лицензия должна быть чем-то вроде GPL, не запрещающей коммерческое применение, но обязывающей передавать все сделанные модификации в пул свободной разработки. Однако никто пока не разработал лицензию (во всяком случае, общепринятую), решающую эту задачу для всех аспектов разработки хардвера. FSF (Free Software Foundation) признает, что описание конструкций на HDL является софтом и, стало быть, может лицензироваться по GPL. Однако аналогичный подход к схемам, разметкам (layouts) ИС и т. д., по-видимому, невозможен в рамках существующего законодательства. Максимум возможного - лицензирование в духе BSD, не препятствующее фирмам вносить радикальные изменения в свободно разработанную спецификацию, держа эти изменения в секрете, - то есть, фактически, приватизировать исходную разработку.
Возможно, впрочем, что лицензии в стиле GPL могут заработать. Например, лицензия на Simputer - гибрид лицензии в духе GPL (основанной на авторском праве) в комбинации с творческим подходом к договорному праву и законах о торговой марке. Это - первая из таких лицензий, тщательно проверенная профессиональным юристом.
Что дальше?
Даже если ни одна из перечисленных выше проблем не будет разрешена, свободная разработка хардвера уже привела к крупным достижениям: сотни, если не тысячи людей, принимавших участие в этой работе, получали и получают от нее удовольствие, повысили свой профессиональный уровень. Благодаря этой деятельности одна из областей техники стала известна несколько большему числу людей, дав, в свою очередь, им чуть больше возможностей управлять своей жизнью. Среди процессов, которые теперь уже вряд ли остановятся, следует назвать:
-
создание свободных платформ для Linux;
-
свободные разработки процессоров, превосходящих коммерческие образцы;
-
создание конструкций, обладающих свойствами, о которых не заботятся коммерческие разработчики (это могут быть, например, открытые FPGA или реализации Ogg Vorbis 3);
-
разработки для рынков, не интересующие коммерческие фирмы (например, открытые разработки для развивающихся стран).
Возможно, впоследствии мы будем вспоминать о нынешних днях как о времени, когда из пассивных управляемых потребителей мы начали превращаться в активных творцов собственной жизни. У нас есть шанс создать альтернативную и по-настоящему содружественную технологию в обществе, которое, чтобы сохранить прибыли, решительно намерено навязать нам телевидение с оплатой просмотров 4, смехотворные криптосистемы и приватизированные знания.
[i40144]
Литература
[1] The Bangalore Declaration on Information Technology for Developing Countries, Nov. 4th, 1998.
[2] Lynn Conway, The MPC Adventures, 2nd Caltech Conference on Very Large Scale Integration, Jan. 19th 1981.
[3] Peter Clarke, Momentum builds for open-source processors, EETimes, Feb. 1 2001.
[4] Lee Felsenstein, How we fought the dinosaurs, Creative Computing, Vol. 10 No. 11, November 1984.
[5] Lee Felsenstein, interviewed in The Analytical Engine, Vol. 3, No. 1, November 1995.
[6] Ivan Illich, Tools for a Convivial Society, Marion Boyars Publishers, Dec. 1990.
[7] Diskussion auf der Oekonux-Liste.
Автор фотографии Грэма Симэна и Яна Гидона - Lionel, trollhunter Bouchpan-Lerust-Juéry <trollhunter@linuxfr.org>
1 (обратно к тексту) - Graham Seaman, «Free Hardware Design - Past, Present, Future», talk given at First Oekonux conference, Dortmund, May 2001, (с) Graham Seaman, 2001.
2 (обратно к тексту) - Пояснение термина «содружественный» (convivial) см. в первой части статьи («КТ» #400).
3 (обратно к тексту) - Ogg Vorbis - открытая технология для профессионального кодирования и передачи звука. - Л.Л.-М.
4 (обратно к тексту) - Pay-per-view TV.
Simputer - это не «персональный компьютер» в смысле традиционного PC. Архитектура Wintel, ставшая де-факто стандартной для PC, совершенно не подходит для продвижения на массовом дешевом рынке ни одной развивающейся страны. Simputer позиционируется как вычислительное устройство общего пользования для местного сообщества пользователей. У небольшой организации, такой как местный совет (panchayat), сельская школа или просто киоск, должна быть возможность выдавать это устройство в индивидуальное пользование на определенный период времени, а затем передавать другим членам сообщества.