Аппаратура тонет в программной пучине

До сих пор в мире программного обеспечения было два доминирующих направления: Unix и Windows. Оба лагеря имели собственных специалистов, стандартные инструменты, правила программирования и действовали в мире, населенном ОЕМ-производителями с самыми разными бизнес-моделями. Однако, из-за взрывного роста популярности Linux ситуация меняется.

[Джон Кэролл (John Carroll)]

Аппаратура тонет в программной пучине


Джон Кэролл (John Carroll), специально для ZDNet
26 февраля, 2003, 13:14

КОММЕНТАРИЙ - До сих пор в мире программного обеспечения было два доминирующих направления: Unix и Windows. Оба лагеря имели собственных специалистов, стандартные инструменты, правила программирования и действовали в мире, населенном ОЕМ-производителями с самыми разными бизнес-моделями.

На одном фланге Windows OEM, пользующиеся операционной системой, предоставляемой одной компанией, Microsoft. Эта модель обеспечивает высокий уровень совместимости разной аппаратуры, и такое вдохновляемое программным обеспечением соперничество выступает в качестве силы, заставляющей OEM, лишенных возможности выделяться аппаратурой, конкурировать друг с другом.

На другом фланге Unix OEM, у которых нет единого источника операционной системы. Исторически аппаратура Unix поставляется с несовместимыми вариантами ОС. Эта несовместимость отчасти вызвана различиями в архитектурах машин (Solaris работает на процессорах SPARC, а HP-UX - нет), но много различий и в API, что затрудняет написание универсального ПО Unix.

Однако из-за взрывного роста популярности Linux ситуация меняется. Если существующие тенденции продолжатся, есть все основания ожидать, что Linux погонит своих Unix-родственников и станет де-факто центром мира Unix-программирования. Linux не привязана к особой торговой марке аппаратуры. В этом смысле она заполняет ту же рыночную нишу, что и Windows, являясь силой, унифицирующей аппаратуру, так как становится стандартом создания ПО в стиле Unix.

Эволюция стандарта программирования
Большую часть истории вычислительной техники стандарты программирования определяла аппаратура. Операционные системы существовали, но обеспечивали гораздо меньше возможностей, чем современные, и, что еще важнее, создавались специально под аппаратуру той или иной торговой марки. Хотя COBOL, например, в некотором роде являлся стандартом, не было гарантии, что программа на COBOL, написанная для мейнфрейма IBM, будет нормально компилироваться компилятором Burroughs, и можно было точно сказать, что Job Control Language (JCL) не станет работать на разных платформах.

Это объяснялось в некоторой степени простым прагматизмом. Скорость обработки была значительно меньше, чем теперь, так что с точки зрения быстродействия имело смысл подгонять операционную систему под определенную конфигурацию аппаратуры. Конечно, отчасти причиной служили и попытки дифференциации оборудования. Так как все крупные компьютерные компании являлись поставщиками аппаратуры, программное обеспечение играло вторую скрипку после аппаратуры и рассматривалось, скорее, как дифференциатор, а не как источник дохода.

По мере роста объемов продаж компьютеров удельная стоимость ПО в расчете на одну машину понижалась, так как расходы на его создание относительно фиксированы. Это означает, что субъекты экономики - покупатели, которые стараются сэкономить деньги, и продавцы программных продуктов, стремящиеся увеличить свои доходы, заинтересованы в образовании как можно большего рынка. Таким образом, в мире, где среду программирования определяет аппаратура, существует естественная тенденция к тому, что один поставщик становится доминирующим и унифицирует рынок за счет массовости.

Иными словами, IBM стала доминировать на пространстве ИТ в силу экономии масштаба. В конце концов продукты IBM создали ту платформу, на которой была построена экономика унифицированного программного обеспечения. Это позволило IBM колонизировать мир своими мейнфреймами и периферией.

Однако аппаратура служила плохой основой для стандартизации. Если какое-то ПО нужно было заменить другим, работающим на компьютере другой марки, то существующую аппаратуру приходилось выбрасывать. По мере повышения быстродействия появилась возможность перейти на более гибкую платформу, основанную на программном обеспечении. У ПО практически бесконечные возможности в смысле разнообразия, что делает его гораздо лучшей платформой стандартизации, опирающейся на определенную конфигурацию аппаратуры.

Естественным местом для такой универсальной программной платформы служит уровень операционной системы. Она может обеспечить общий внешний API для любых прикладных программ, независимо от аппаратуры, на которой работает. Когда большая часть программ стала разрабатываться под операционную систему, а не под аппаратуру (точнее, аппаратуру со специализированной ОС), экономика масштаба стала развиваться вокруг базового ПО.

Windows как стандарт программного обеспечения
Как это часто бывает, решающую роль в успехе Gates & Co сыграло то, что они оказались в нужное время в нужном месте. Microsoft стала той компанией, которую IBM выбрала в качестве поставщика операционной системы для своего нового персонального компьютера.

В 1980 году компанией, к которой мир обращался за решениями ИТ, еще была IBM. Но этот мир менялся: экспоненциальный рост быстродействия процессоров позволил положиться на ПО промежуточного уровня. Однако перемены редко замечают вовремя, и есть много свидетельств тому, что IBM их упустила. Как еще объяснить решение IBM не связывать Microsoft контрактом на эксклюзивную поставку? Это оставило Microsoft свободу лицензировать свою операционную систему любому производителю аппаратуры, готовому заплатить, что в мире, движущемся в направлении софтверных стандартов, стало роковой стратегической ошибкой.

Конечно же, Microsoft не преминула воспользоваться этим, превратив операционную систему, купленную за 50 тыс. $, в основу для рынка ПО стоимостью в миллиарды долларов. Унификация вокруг программного стандарта привела к ожесточенной конкуренции аппаратуры под Windows, и ОЕМ наперегонки снижали цены на рынке с ограниченными возможностями дифференциации. Результатом стал рынок ПК, которые можно купить по цене чуть ли не 500 $ и которые работают быстрее, чем всего пять лет назад работали многие серверы.

О стандарте Unix
Unix появилась на свет в 1969 году в результате работы, выполненной Bell Labs, научного подразделения AT&T. Большую часть своей истории Unix оставалась проприетарной операционной системой - права на которую принадлежали AT&T (позднее они были проданы Novell, затем SCO и, наконец, оказались в руках Caldera). Однако контроль сохранить не удалось, главным образом потому, что AT&T охотно и почти бесплатно лицензировала исходный код Unix университетам.

Результатом стал инновационный взрыв вокруг Unix. Unix вызвала первую настоящую революцию open-source, так как программисты всего мира пользовались доступом к исходному коду для распространения его на новые области вычислительной техники. Наиболее известными плодами всей этой работы стала BSD (Berkeley Standard Distribution), операционная система, которая легла в основу Apple Mac OS X. (Подробнее об истории Unix читайте в статье Иэна Ф. Дарвина (Ian F. Darwin) и книге Ника Моффитта (Nick Moffitt) <История Unix за 7 $>).

К сожалению, поиск стандарта ПО на базе Unix напоролся на сук. Unix <разветвилась>, что привело к размножению мини-стандартов, во многом похожих друг на друга, но достаточно разных, и для обеспечения совместимости с ними нужно было работать. Вина за это отчасти ложится на AT&T, чьи судебные иски из-за клонов Unix вынудили многих переделывать код, чтобы избавиться от интеллектуальной собственности AT&T. Отсутствие централизованного контролирующего органа тоже явно не способствовало делу (им могла бы стать AT&T, не будь она так занята другими важными делами), а таких сетей, как теперь, не было, что значительно затрудняло сотрудничество.

Так или иначе, Unix стала операционной системой, сильно привязанной к аппаратуре, с которой она продается, что способствовало сохранению бизнес-модели IBM и позволило ориентированной на Unix аппаратуре избежать <коммодизации>, которая потрясла индустрию ПК. Это знакомо каждому, кто годами наблюдал за заоблачными ценами на Unix-серверы.

Linux, следующий шаг в эволюции Unix
Linux появилась как средство сделать Unix-подобную операционную систему доступной на рынке, заполненном дорогими продуктами, которые не по карману простому пользователю (читай: физическому лицу). Из столь скромного начала она выросла в операционную систему, обеспечившую ту унификацию, которую обещала Unix. Программы, действующие под Red Hat Linux, обычно работают и на аналогичной конфигурации Mandrake (если используется тот же процессор). Но даже там, где совместимости нет, уже образовался лидер дистрибуции Linux в виде Red Hat, предлагающий ту же форму гарантии совместимости от одной компании, которую Microsoft предлагает заказчикам Windows.

Сегодня те же силы коммодизации аппаратуры, которые перепахали индустрию настольных ПК (и практически выбили из нее IBM), хозяйничают на рынке Unix-серверов. Все больше производителей поставляют серверы с Linux, заметно понижая цены. Более того, низкая стоимость разработки Linux сделала ее совместимой с оборудованием из высококонкурентного бизнеса ПК (с аппаратурой, которую, как мы знаем, удешевила унификация под Windows). Linux-серверы могут работать на процессорах Intel и имеют доступ к широкому спектру аппаратных средств, существующих в системах Wintel.

Это серьезное испытание для бизнес-моделей тех компаний, которые привыкли выделяться за счет специализированных вариантов Unix. Переход на Linux сопряжен с низкими прибылями и яростной конкуренцией на стандартной платформе Linux, характерными для рынка аппаратуры Wintel. Но это чрезвычайно выгодно заказчикам, поэтому усиление Linux должно приветствоваться всеми, кто предпочитает стиль программирования Unix.

Дополнение
Хотя все мои рассуждения основаны на стандартах программного обеспечения, существует компания, связавшая индустрию стандартом де-факто, относящимся к сердцу большинства компьютеров: это Intel. Пока Windows и Linux сражаются за умы и сердца разработчиков и пользователей, Intel знает, что сможет делать деньги, кто бы ни победил (если таковой найдется), так как обеим сторонам потребуются процессоры Intel (да, с технической точки зрения Linux поддерживает и другие процессоры, но массовый рынок ассоциируется с чипами Intel).

Если история чему-нибудь учит, то и Intel не следует расслабляться. Более быстродействующие процессоры сделали выгодной ориентацию на стандарт программного обеспечения, а не аппаратуры. Однако роль процессора как последнего бастиона аппаратно-ориентированной стандартизации сохранится лишь до тех пор, пока не появится возможность применять во всех случаях абстрагированную виртуальную машину.

Java и .NET создают основу для ухода от стандарта одного процессора. Пока трудно представить себе реализацию на Java или .NET чего-нибудь типа игр, которые требуют огромной производительности. Но не за горами день, когда эти среды станут достаточно хороши для самого ненасытного, виртуального мира. Тогда придется задуматься даже Intel.

Джон Кэролл - инженер-программист из Ирландии. Он специализируется на проектировании и разработке распределенных систем с применением Java и .Net и является основателем компании Turtleneck Software.


Версия ZDNET на русском языке издается по лицензии CNET Networks, Inc., San Francisco, CA, USA.
Статьи в "ZDNET Россия", источниками которых служат публикации американской редакции ZDNET, а также GameSpot и CNET, являются предметом авторского права CNET Networks, Inc. или ее партнеров.
Copyright ® 2001, 2002 CNET Networks, Inc. и Algorithm Online. Все права защищены.
ZDNET, GameSpot и CNET - торговые марки CNET Networks, Inc.

[ опубликовано 23/09/2004 ]

Джон Кэролл (John Carroll) - Аппаратура тонет в программной пучине   Версия для печати