Изготовители периферийных аппаратных средств ЭВМ (карты Ethernet, контроллеры дисков, видеокарт и т. п.) исторически отказались открывать исходные тексты. Сейчас это положение изменяется в случае с фирмами наподобие Adaptec и Cyclades, начинающими систематически раскрывать спецификации и исходный код драйверов своих плат. Однако, все еще существует сопротивление этому процессу. В этом приложении мы попытаемся опровергнуть несколько неправильных с точки зрения экономики представлений, которые подкрепляют эту тенденцию.
Если вы — производитель аппаратных средств ЭВМ, вы можете бояться, что открытие кода может сделать известной важную информацию о том, как работает ваше оборудование и конкуренты смогут ее скопировать, таким образом получая несправедливое преимущество. Раньше, в эпоху трех — и пятилетних циклов разработки, это было весомым аргументом. Сегодня инженеры ваших конкурентов истратили бы на копирование и понимание копии существенную часть цикла разработки изделия, при этом не используя это время для нововведений или создания особенных функций для собственного устройства. Плагиат — западня, в которую Вы должны желать заманить Ваших конкурентов.
В любом случае, эти детали долго не останутся скрытыми в наши дни. Драйверы устройств ЭВМ не похожи на операционные системы или приложения; они маленькие, легко поддаются декомпиляции, и их легко клонировать. Даже подростки, новички в программировании могут сделать это — и часто делают.
Есть буквально тысячи программистов, пишущих под Linux и FreeBSD, которые способны написать драйвер для новой платы, и заинтересованы в этом. Для многих классов устройств, которые имеют относительно простые интерфейсы и известные стандарты (типа контроллеров диска и сетевых карт), эти нетерпеливые хакеры зачастую разрабатывают драйвер почти так же быстро, как ваши собственные программисты, даже без документации и не декомпилируя существующий драйвер.
Даже для сложных устройств наподобие видеокарт, Вы мало что можете сделать, чтобы воспрепятствовать умному программисту, вооруженному дизассемблером. Затраты на такую разработку низки, а юридические барьеры — зыбкие; Linux — международная разработка и есть всегда юрисдикция, в которой дизассемблирование будет законным.
Для того, чтобы убедиться, в верности всех этих утверждений, почитайте список устройств поддерживаемых ядром Linux или в поддеревьях драйверов на сайтах наподобие Metalab, и проследите за закономерностью добавления новых устройств.
Что из этого следует? Сохранение вашего драйвера в тайне сразу же после его выпуска выглядит привлекательным, но, в конечном счете, является плохой стратегией (конечно, если Вы конкурируете с другими продавцами, которые уже открыли код). Но, если Вы должны закрыть код, пропишите его в ПЗУ платы. После этого опубликуйте программный интерфейс к нему. Будьте открытым в максимально возможной степени, для того, чтобы построить свой сектор рынка и продемонстрировать потенциальным клиентам, Вашу веру в способность придумывать новое, и вводить больше новшеств, чем конкуренты.
Если вы остаетесь закрыты, это обычно будет худшим исходом — ваши тайны будут выставлены напоказ, вы не будете получать бесплатную помощь в развитии продукта, и не потратите впустую время ваших глупых конкурентов на клонирование. Наиболее важно то, что вы пропускаете дорогу, ведущую к быстрому распространению вашего оборудования. Большой и влиятельный рынок (люди, которые управляют серверами и всем Интернетом, а также более чем 17 % деловых центров данных), справедливо запишет вашу компанию в число невежественных и занимающих оборонную позицию, потому что вы не понимаете таких вещей. В этом случае они будут покупать оборудование у кого-то, кто это понял.