4. Шон Харгривс (Shawn Hargreaves) написал хороший анализ применимости методов открытого программирования к теории игр; Playing the Open Source Game (http://www.talula.demon.co.uk/games.html
).Несколько обсуждений стимулирования с Дэвидом Д. Фридманом (David D. Friedman) помогли мне усовершеноствовать модель «общин наоборот» применительно к сотрудничеству в области открытых разработок. Я также весьма обязан Маршалу Ван Эльстину (Marshall van Alstyne), который указал на концептуальную важность конкурирующих информационных ресурсов. Рей Онтко (Ray Ontko) из Indiana Group снабжал меня полезной критикой. Очень много людей при встречах, с которыми я беседовал до июня 1999 года, также помогли мне; если Вы — один из них, Вы знаете, за что я Вам благодарен.
Еще одно свидетельство в пользу открытой модели — то, что эта работа была существенно улучшена благодаря обратной связи с помощью электронных писем, которые я получил в течение нескольких дней после ее публикации. Ллойд Вуд (Lloyd Wood) указал на важность открытого программного обеспечения, являющегося «защищенным от будущего» (future-proof), а Дуг Данте (Doug Dante) напомнил мне о деловой модели «открой потом». Вопрос от Адама Мурхауса (Adam Moorhouse) спровоцировал обсуждение исключений, при которых лучше оставить исходный текст закрытым. Лайонел Оливира Гресс t (Lionel Oliviera Gresse) дал мне лучшее название для одной из деловых моделей. Стивен Тернбалл (Stephen Turnbull) обозвал меня глупым из-за небрежной трактовки «эффектов халявщика».
17. Приложение: почему закрытие драйверов ведет к убыткам
Изготовители периферийных аппаратных средств ЭВМ (карты Ethernet, контроллеры дисков, видеокарт и т. п.) исторически отказались открывать исходные тексты. Сейчас это положение изменяется в случае с фирмами наподобие Adaptec и Cyclades, начинающими систематически раскрывать спецификации и исходный код драйверов своих плат. Однако, все еще существует сопротивление этому процессу. В этом приложении мы попытаемся опровергнуть несколько неправильных с точки зрения экономики представлений, которые подкрепляют эту тенденцию.
Если вы — производитель аппаратных средств ЭВМ, вы можете бояться, что открытие кода может сделать известной важную информацию о том, как работает ваше оборудование и конкуренты смогут ее скопировать, таким образом получая несправедливое преимущество. Раньше, в эпоху трех — и пятилетних циклов разработки, это было весомым аргументом. Сегодня инженеры ваших конкурентов истратили бы на копирование и понимание копии существенную часть цикла разработки изделия, при этом не используя это время для нововведений или создания особенных функций для собственного устройства. Плагиат — западня, в которую Вы должны желать заманить Ваших конкурентов.
В любом случае, эти детали долго не останутся скрытыми в наши дни. Драйверы устройств ЭВМ не похожи на операционные системы или приложения; они маленькие, легко поддаются декомпиляции, и их легко клонировать. Даже подростки, новички в программировании могут сделать это — и часто делают.
Есть буквально тысячи программистов, пишущих под Linux и FreeBSD, которые способны написать драйвер для новой платы, и заинтересованы в этом. Для многих классов устройств, которые имеют относительно простые интерфейсы и известные стандарты (типа контроллеров диска и сетевых карт), эти нетерпеливые хакеры зачастую разрабатывают драйвер почти так же быстро, как ваши собственные программисты, даже без документации и не декомпилируя существующий драйвер.
Даже для сложных устройств наподобие видеокарт, Вы мало что можете сделать, чтобы воспрепятствовать умному программисту, вооруженному дизассемблером. Затраты на такую разработку низки, а юридические барьеры — зыбкие; Linux — международная разработка и есть всегда юрисдикция, в которой дизассемблирование будет законным.
Для того, чтобы убедиться, в верности всех этих утверждений, почитайте список устройств поддерживаемых ядром Linux или в поддеревьях драйверов на сайтах наподобие Metalab, и проследите за закономерностью добавления новых устройств.
Что из этого следует? Сохранение вашего драйвера в тайне сразу же после его выпуска выглядит привлекательным, но, в конечном счете, является плохой стратегией (конечно, если Вы конкурируете с другими продавцами, которые уже открыли код). Но, если Вы должны закрыть код, пропишите его в ПЗУ платы. После этого опубликуйте программный интерфейс к нему. Будьте открытым в максимально возможной степени, для того, чтобы построить свой сектор рынка и продемонстрировать потенциальным клиентам, Вашу веру в способность придумывать новое, и вводить больше новшеств, чем конкуренты.