Повторит ли Linux печальную судьбу Unix?
Некоммерческая организация Free Standards Group выпустила версию 2.0 стандарта Linux Standard Base (LSB). Сможет ли принятие этого документа, наряду с другими общераспространенными стандартами, уберечь Linux от раскола на несовместимые «ветви»? Именно такой сценарий в свое время стал серьезным препятствием на пути развития системы Unix.
LSB 2.0 – залог успеха
Некоммерческая организация Free Standards Group объявила о выходе стандарта Linux Standard Base версии 2.0. По ее мнению, LSB – «существенный элемент долговременного рыночного успеха Linux». Этот стандарт при поддержке ведущих компаний призван обеспечить совместимость между версиями операционной системы от различных поставщиков.
Операционная система Linux, как известно, не имеет единого поставщика или руководящего центра. Ее компоненты создаются открытым сообществом, в котором участвуют как энтузиасты, так и работники многих компаний (например, IBM и Hewlett Packard). Правда, влияние «основателя Linux» Линуса Торвальдса достаточно велико – но оно относится в основном лишь к одной из частей операционной системы, ядру Linux. Полная рабочая версия системы включает в себя достаточно много частей. Специалист, конечно, может «собрать» ее из различных компонентов самостоятельно – но это делается достаточно редко. Как правило, используются дистрибутивы, в которых многочисленные части уже сведены воедино.
Разные дистрибутивы Linux могут быть совсем не похожи друг на друга, хотя состоят, в основном, из одних и тех же компонентов. Это создает заметные проблемы при установке программ – особенно если они распространяются в виде готовых бинарных пакетов, а не исходных кодов. Поставщикам ПО нередко приходится создавать несколько версий для наиболее распространенных дистрибутивов. Linux Standard Base позволяет им забыть об этой проблеме. Достаточно подготовить версию, рассчитанную на стандартную систему, описанную в LSB. Эта версия будет достаточна для любого дистрибутива, совместимого с LSB.
LSB версии 2.0 заметно облегчает установку программ, созданных на распространенном языке C++. По утверждению Free Standards Group, это весьма важно, поскольку большая часть современных программ создается на C++. Появление поддержки C++ в LSB позволит тысячам поставщиков ПО перевести свои приложения под Linux без излишних затрат. Еще одно важное улучшение в версии 2.0 – поддержка различных распространенных «архитектур» (т.е. аппаратных платформ). Прежние версии ориентировались преимущественно на x86 («IBM-совместимые» компьютеры); теперь имеются спецификации для архитектур IBM PowerPC64, S390, S390X, 64-битного процессора AMD Opteron и т.д.
О своей поддержке нового стандарта заявили такие компании, как AMD, IBM, Dell, Hewlett Packard, Red Hat, Red Flag (основной китайский поставщик Linux) и т.п.
Linux и стандарты
Linux Standard Base – важный, но далеко не единственный стандарт, применяемый в Linux. Более того – во многом эта система родилась из стандартов. На некотором этапе разработки самой первой версии ядра Linux Линус Торвальдс просто реализовывал, шаг за шагом, все системные вызовы, описанные в стандарте POSIX. Практически вся сетевая подсистема Linux – реализация открытых интернет-стандартов, известных как RFC. Графическая подсистема основана на стандарте X Windows, который, по мнению многих экспертов, давно уже устарел, и его эффективность сомнительна – но все же это стандарт, и (кроме как для карманных компьютеров и других специфических задач) мало кто позволяет себе отойти от него.
Почему же разработчики Linux – и не только Linux, но, в большинстве случаев, и свободного ПО в целом – с достаточно заметным пиететом относятся к принятым стандартам? Для этого есть несколько причин. Одна из них – сама структура разработки с открытым исходным кодом; несколько групп могут независимо разрабатывать части системы и их взаимодействие будет обеспечено благодаря соответствию стандарту. Но есть и другая, достаточно важная причина – память о «войнах юниксов» (Unix Wars), которые стали серьезным препятствием на пути развития Unix-систем.
Войны «юниксов»
Чтобы понять, сколь серьезны были эти «войны», совершим краткий экскурс в историю Unix-систем. Первоначально операционная система Unix была разработана в Bell Laboratories – подразделении компании AT&T; достаточно скоро к работе над системой присоединились также университетские ученые и студенты, прежде всего, в университете Беркли (Berkeley). В течение 70-х годов AT&T и Беркли достаточно плодотворно взаимодействовали. Ими совместно была создана знаменитая Unix Version 7 (1979 г.); в этой системе уже присутствовали многие идеи, которые и поныне являются определяющими для Unix-подобных систем (включая Linux).
Однако затем пути развития Unix в AT&T и Беркли несколько разошлись. В обоих случаях разработчики стремились наиболее эффективно решить те или иные проблемы – но находили разные решения. И первыми “войнами юниксов” стали технические дискуссии о том, какая из версий лучше. На этом этапе еще можно было бы договориться и найти единое решение. В конце концов, это и было сделано, но к этому моменту вокруг Unix-систем начал формироваться бизнес. И именно корпоративные конфликты и привели к окончательному оформлению нескольких несовместимых между собой вариантов Unix.
В 1982 году была основана компания Sun Microsystems, которая создала первые “рабочие станции” с операционной системой на основе версии Unix от Беркли. Компания Bell/AT&T в 1983 году была разделена на части постановлением суда на основании антимонопольного законодательства; после этого AT&T также начала коммерческое продвижение Unix. В это же время были предложены первые идеи стандартизации для обеспечения совместимости разных версий Unix. И AT&T, и Sun в 1984-85 годах в той или иной мере поддерживали эти идеи – но каждая предлагала свои стандарты.
Немалую роль в разработке стандартов сыграли некоммерческое инженерное объединение IEEE (Institute of Electrical and Electronic Engineers, существует еще с 1884 г.) и консорциум X/Open (позже Open Group), созданный в 1984 г. Особенно важной оказалась разработка IEEE – стандарт POSIX, описывающий, в частности, многие системные вызовы Unix. Первая версия POSIX появилась в 1990 г. Однако те стандарты (включая POSIX), которые все же были приняты, не предотвратили разделения Unix на несовместимые ветви.
Конфликт AT&T и Sun погас в 1988 году – AT&T приобрела 20% акций Sun, компании выпустили общую версию системы. Но к этому моменту появилось еще несколько поставщиков Unix – IBM, DEC, Hewlett Packard и другие. Они начинали работу, как правило, с версии AT&T, приобретенной по лицензии; но затем каждый поставщик добавлял свои “уникальные” функции, которые должны были обеспечить конкурентное преимущество. Новые поставщики не пожелали мириться с доминированием альянса AT&T/Sun. Они выдвинули лозунг “открытых систем” и создали организацию Open Software Foundation. Ее версия Unix, OSF/1, предполагалась как “стандартная” – но в ее разработке не участвовали AT&T и Sun. Они, в свою очередь, создали другую организацию для создания “стандартного” варианта системы – Unix International.
“Войны юниксов” продолжались до 1993 года. На рынке предлагалось множество систем, несовместимых между собой. Можно было в какой-то мере говорить о двух “стандартах”, предлагаемых OSF/1 и Unix International; но между системами этих стандартов о совместимости не могло быть и речи. За это время произошли ключевые события на рынке. Был выпущен процессор Intel 80386; шло активное распространение дешевых PC-совместимых машин, которым суждено было практически полностью вытеснить рабочие станции. Из-за “войн” Unix-системы в значительной мере упустили свой шанс на рынке.
В 1993 году “войны юниксов” официально закончились. В немалой степени этому способствовал уход с рынка Unix компании AT&T – ее группа по Unix (Unix System Labs, USL) была продана Novell. Вскоре все поставщики признали важность стандартизации и был разработан достаточно общий стандарт – Single UNIX Specification (SUS). Но момент, когда Unix-системы могли стать основой массового компьютерного рынка, был упущен. К этому моменту уже активно велась разработка систем с открытым исходным кодом (группа систем на основании BSD, т.е. Unix от Беркли, и Linux), ставших основой нынешней “второй волны” популярности Unix-подобных систем. И ныне их сторонники – как энтузиасты, так и коммерческие поставщики – стремятся не повторить ошибок прошлого.
Быть ли новым конфликтам?
Среди разработчиков систем с открытым исходным кодом есть свои технические дебаты, которые можно сравнить со спорами сторонников AT&T и BSD (Беркли) в начале 80-х годов. Так, хотя наиболее широко применяемой из таких систем остается Linux, немало последователей и у нынешних версий BSD (FreeBSD, NetBSD, OpenBSD). Есть разногласия и внутри сообщества Linux – например, о системах установки программных пакетов. Подобные расхождения очень хорошо поддаются “лечению” при помощи стандартов. Хорошо продуманный стандарт принимает за основу одно из решений по любому спорному вопросу, но не уничтожает возможности для остальных. И именно таким стандартом является Linux Standard Base.
Любая Linux-система сможет соответствовать LSB, не потеряв своей “индивидуальности”. Так, например, дистрибутив Debian (весьма уважаемый многими профессионалами) использует систему установки пакетов dpkg, а в LSB принят вариант другой системы, RPM, принятой в Red Hat и многих других дистрибутивах. Но Debian вполне может соответствовать LSB, обеспечив поддержку RPM особыми средствами. Следует отметить, что в следующей версии Debian предполагается наличие этой поддержки. Теоретически даже в BSD-системах вполне возможно обеспечить поддержку LSB. Будет ли это сделано – вопрос отдельный.
Однако действительно серьезные “войны юниксов” были порождены отнюдь не техническими дебатами, а конфликтом коммерческих интересов. И именно от ситуации в бизнесе зависит, повторятся ли они для Linux. На данный момент особых конфликтов в корпоративном Linux-сообществе, вроде бы, не предвидится. В 2002 году, правда, наметилось некое напряжение между Red Hat и группой поставщиков, создавших совместный проект UnitedLinux. Однако в эту группу входила компания SCO, которая в 2003 году устроила безобразный скандал с “судебным процессом против Linux”; после этого судьба UnitedLinux была решена – о проекте просто забыли. Главный ее участник, SuSE, теперь является частью компании Novell, которая ведет себя вполне миролюбиво.
Из всех сколько-нибудь крупных компаний, принимающих участие в продвижении Linux на мировом рынке, только одна публично готовится к “битве” с другим поставщиком Linux. Джонатан Шварц (Jonathan Schwartz), президент Sun Microsystems, периодически говорит о конкуренции с Red Hat. При этом он подчеркивает, что с “общественным движением” сторонников ПО с открытым исходным кодом Sun не конкурирует – более того, имеет с ним общие корни, но в данном случае речь идет о конкретной компании и “обычном бизнесе”. Именно “обычный бизнес”, и также с участием Sun, и привел к тяжелым “войнам юниксов”. Неужели компания повторит свои же ошибки?
Но, к счастью, выбранная Джонатаном Шварцем стратегия вряд ли предполагает “войны Линуксов”. Вместо этого Sun ограничит свою поддержку Linux лишь настольными машинами. А для серверного применения предлагается совсем другая система – Solaris. Sun планирует построить вокруг Solaris отдельное сообщество, связанное именно с разработкой ПО для высокопроизводительных серверов. Через некоторое время, возможно, исходные коды этой системы будут открыты.
Если Unix-подобные системы и встретятся снова с какими-либо “войнами” в ближайшем будущем, вероятно, это будет столкновение Linux и Solaris. Поставщикам серверного ПО, например Oracle, придется отдельно поддерживать эти две операционные системы. Но не несколько версий Linux. Компании, активно продвигающие Linux, заинтересованы, прежде всего, в расширении рынка этой системы как таковой – а для этого очень важна стандартизация, обеспечивающая совместимость различных решений. В частности, Free Standards Group была создана специально для разработки и продвижения стандартов на ПО с открытым исходным кодом. LSB – один из главнейших элементов в группе стандартов, призванных обеспечить совместимость версий Linux.
Четкое следование общим стандартам необходимо, чтобы составить заметную конкуренцию империи Microsoft. И пока все сторонники Linux – от топ-менеджеров до технических специалистов – это понимают, какой-либо серьезный раскол в их стане вряд ли произойдет.
Короткая ссылка на материал: //cnews.ru/link/a936