Zenbook. Linux или GNU/Linux?

Автор: Алексей Федорчук

Жан-Филипп Гийомен в своих сочинениях (например, во вступлении к документации проекта, см. русский перевод) и выступлениях (например, недавнем интервью, также доступном по русски) постоянно подчеркивает, что Zenwalk — не «еще один» дистрибутив Linux, а операционная система GNU/Linux.

Термин «операционная система» применительно к дистрибутиву Linux (а что ни говори, а Zenwalk — всё-таки в первую очередь именно «еще один» дистрибутив этой системы) может выглядеть некоторым преувеличением. Однако он имеет под собой кое-какие основания.

Действительно, Zenwalk ближе к системной целостности в понимании BSD-систем, нежели подавляющее большинство иных дистрибутивов Linux. Да и пожалуй, более целостный, чем, например, FreeBSD, если выйти за пределы того, что в последней величается FreeBSD Distributions.

Это выражается и в ярко выраженной ориентации Zenwalk’а на настольную среду Xfce — наиболее целостную среди десктопов, и в подборе приложений установочного диска, твердо следующем принципу: «одна задача — одно приложение», и, как следствие, в его самодостаточности, и в устойчивости к «разбуханию» основного базиса — тенденции, породившей множество Linux-систем. Из известных мне дистрибутивов рядом с Zenwalk’ом я поставил бы только CRUX. Впрочем, последний, несколько превосходя первый в целостности, явно уступает ему в самодостаточности: если Zenwalk пригоден к практическому использованию сразу после инсталляции, то пользователю CRUX’а для этого придется дособрать через систему портов немало прикладных программ.

В общем, можно простить создателю Zenwalk’а некоторое преувеличение в титулатуре своего создания. Но вот с правомерностью префикса GNU я бы поспорил — и не только в титуле этого дистрибутива, но и в названиях всех прочих, его использующих.

Когда во второй половине 90-х годов прошлого века я впервые начал свое приобщение к Linux’у, система эта называлась обычно — Linux, и никак иначе. Из широко распространенных её дистрибутивов только Debian в полном своем титуле добавлял — GNU/Linux, большинство прочих ограничивались именем собственным. Но Debian уже тогда претендовал на нечто большее, чем быть просто «еще одним дистрибутивом» — его амбиции распространялись на роль глобальной инфраструктурной надстройки над ядрами и системным окружением любой Unix-подобной системы.

Однако ныне словосочетание GNU/Linux всё чаще мелькает на страницах «бумажной» прессы и онлайновых СМИ, всё большее число дистрибутивов использует этот префикс в своей официальной титулатуре, и вообще этот термин начинает претендовать на некий официоз. В настоящей интермедии я и хочу рассмотреть вопрос, насколько оправдан сам по себе термин как техническое понятие и, тем более, насколько обоснованы его претензии на официальное именование операционной системы. Той самой, которую большинство из нас с младых информационных ногтей привыкли звать просто Linux.

Насколько мне известно, оборот GNU/Linux был впервые употреблен Ричардом Столлманом (широко известным в узких, а ныне уже и не очень узких, кругах как RMS) и подхвачен его последователями из одноименного (GNU — GNU is Not Unix) проекта и FSF (Free Software Foundation). До появления Linux’а проект GNU занимался созданием собственной операционной системы — свободного аналога коммерческих UNIX-систем. Имя для этой грядущей ОС уже было готово — она должна была быть названа в честь родительского проекта.

В качестве ядра GNU ОС предполагалось использовать HURD — самый великий долгострой в истории ОСестроения, который за века лет своего, если так можно выразиться, существования, несколько раз поменяв лежащее в его основе микроядро, ни на шаг не приблизился к состоянию работоспособной, годной к практическому использованию системы.

Впрочем, основная деятельность участников проекта GNU носила более приземленный характер: реинжиниринг классических UNIX-утилит и воспроизведение их функциональности в комплексе свободных аналогов. И эта задача решалась гораздо успешнее — на момент появления Linux’а все системные и пользовательские утилиты UNIX-систем существовали в свободном исполнении, и не только с воспроизведением, но и с существенным расширением функциональности.

Справедливости ради надо заметить, что участники проекта GNU не первыми занялись этим делом. С первых же дней развития берклианской ветки UNIX, в последующем давшей сначала BSD Unix, а потом и современные BSD-системы, ее разработчики вплотную озаботились усовершенствованием канонического набора системных и пользовательских утилит первозданного UNIX, и немало в этом преуспели. Результаты их трудов так и вошли в историю как BSD-расширения, которые были в значительной мере аккумулированы и разработками проекта GNU.

Так или иначе, работа над воспроизведением UNIX-окружения в свободном исполнении была в основном закончена к началу 90-х годов. Что дало основания Столлману неоднократно высказываться в том смысле, что к этому времени операционная система GNU уже существовала, и ей не хватало только ядра.

К правомерности такого рода заявлений я еще вернусь. А пока продолжим исторический очерк.

И вот на фоне развития проекта GNU, как Бог из машины, появляется Linux — ядро операционной системы в обрамлении тесно интегрированных с ним системных утилит, которые по сей день так и называются — util-linux, а также некоторых дополнительных низкоуровневых программ, непосредственно обеспечивающих взаимодействие ядра и оборудования. И всё это распространяется на условиях лицензии GPL, которая была принята для всех разработок проекта GNU.

Надо сказать, что первую версию Linux’а Линус Торвальдс выпустил в свет под лицензией собственного сочинения. Однако, как можно понять из его книги Just for Fun (по удачному выражению Максима Отставного, наиболее правильным переводом её названия на русский было бы — Для прикола), в дальнейшем Линус решил не заморачиваться юридическими тонкостями, а просто принял ту лицензию, которая показалась ему адекватной его задачам, без всякого идеологического подтекста.

Кроме собственных разработок, а также разработок своих многочисленных соратников по всему миру, Линус использовал ряд компонентов из проекта GNU. В первую очередь это были компилятор gcc, общесистемная библиотека glibc и командная оболочка bash. В дальнейшем эта сцепка обросла комплексом пользовательских утилит и дополнительных библиотек, большая часть которых были также разработаны в рамках проекта GNU. Однако в этот комплекс угодили и компоненты, разрабатывавшиеся независимо от GNU и, более того, не всегда распространявшиеся под лицензией GPL.

Именно сложение комплекса из ядра, системных утилит, системной библиотеки, компилятора и пользовательского окружения, значительная (и принципиально важная) часть которого вела своё происхождение из проекта GNU, и послужило основанием для высказываний Столлмана, смысл которых был передан выше.

Однако рискну высказать такую аналогию. Предположим, что авиа- или судоконструкторы заявили бы: мы создали замечательный самолет (корабль), в котором есть всё — не хватает только двигателя. Но ведь согласитесь, что сколь бы ни были совершенны обводы судна или аэродинамика самолетного крыла и фюзеляжа, без адекватного двигателя это не более чем груда металла. Так и в нашем случае: как бы совершенны и необходимы для функционирования ОС ни были утилиты проекта GNU (а как я уже говорил, базовый комплекс Linux’а ими не ограничивался), без мотора, то есть ядра, называть их операционной системой было бы несколько опрометчиво.

Так что же, разработчики проекта GNU с радостью ухватились за пламенный мотор в лице ядра и системного окружения Linux? Да ничего подобного. Они «с упорством муравья лесного» продолжали попытки создания ядра HURD, а ядро Linux рассматривали как временный паллиатив. Но, как известно, нет ничего более постоянного, чем временное. И ядро Linux полноценно живет и успешно развивается по сей день, находя практическое применение в самых разных областях — от суперкомпьютеров и серверов до десктопов и встраиваемых устройств. В то время как разработка ядра HURD и поныне не вышла из младенческой стадии — по крайней мере, реально работающей и, тем более, используемой системы на его основе пока никто не видел.

То есть не GNU-утилиты обеспечили успех Linux’а. А как раз наоборот — привлечение их в качестве обрамления ядра сделало проект GNU известным за пределами узкого круга GNU-хакеров и открыло им сферы для практического применения — сначала среди разработчиков Linux’а же, а затем — среди администраторов серверов и сетей.

Это — первая причина, по которой я полагаю неправомерным использовать термин GNU/Linux в качестве официального названия нашей любимой операционной системы. Ибо она, как системная целостность, создана не благодаря усилиям проекта GNU, а где-то даже вопреки оным. И создана силами Линуса Торвальдса и его многочисленных соратников, помощников, последователей, большинство из которых меньше всего думали об идеологических вопросах.

Ну а то, что в этой системной целостности значительную роль всё же играют компоненты, заимствованные из проекта GNU — так тут Линус поступил в полном соответствие с буквой и духом GPL. Ведь и ядро, и все его окружение в качестве единой системы стало таким же общественным достоянием, как и наработки предшественников. «Мы стоим на плечах гигантов» — эту фразу Ньютона Линус цитирует на протяжении всей своей книги.

Кроме того, большинство пользовательских утилит, заимствованных из проекта GNU, отнюдь не были незаменимыми. Если бы их не было или по каким-то причинам их нельзя было использовать, то для большинства из них нашлась бы замена в виде BSD-утилит. Я думаю, что различие лицензий Линуса, известного своим идеологическим пофигизмом (в самом хорошем смысле этого слова), вряд ли смутило бы.

Пожалуй, единственным незаменимым GNU-компонентом на момент разработки первых версий ядра Linux был компилятор gcc, использовавшийся, за неимением другой свободной альтернативы, также и при сборке BSD-систем. Но это не значит ведь, что Linux должен называться Gcc/Linux, верно? Тем более, что нынче при необходимости можно найти и замену gcc — так, Линус поговаривал, уж не знаю, насколько всерьёз, о возможности использования Icc (Intel C Compiler) для сборки ядра. За ядро не скажу, но эксприменты, проводившиеся на iXBT показали, что сборка приложений этим компилятором вполне возможна и, более того, при этом нередко генерируется более быстрый код, чем при сборке посредством gcc.

Возможность альтернативной замены почти всех GNU-компонентов в составе базового комплекта Linux — вторая причина, почему я полагаю название GNU/Linux неправильным.

Если уж говорить о незаменимости, то практически единственной безальтернативной составляющей любого Linux-дистрибутива общего назначения является оконная система X в лице ее свободных реализаций, каковой сначала была Xfree86, а ныне — Xorg.

Конечно, существуют специализированные дистрибутивы Linux (например, сервеные), Иксов не содержащие. Однако именно оконная система X вместе с менеджерами окон, а в дальнейшем — и интегрированными средами, открыла Linux’у путь на пользовательские десктопы. Иначе, не смотря на все утилиты и приложения проекта GNU, Linux не сдвинулся бы с серверов и машин энтузиастов-разработчиков. Ни о каком настольном применении Linux’а без полноценной поддержки графического режима просто не пришлось бы говорить. А таковую и в прошлом, и в настоящем, обеспечивали только Иксы. Не случайно момент, когда оконная система X заработала под Linux (весна 1992 года), сам Линус называет скачком в развитии своей операционной системы.

И тем не менее, никому не пришло в голову настаивать на том, чтобы операционная система Linux именовалась бы X/Linux, XFree86/Linux или Xorg/Linux. Робкая попытка команды разработчиков XFree86 потребовать просто упоминания имени их системы во всех дистрибутивах, её использующих, вызвала такую бурю протестов и обвинений в нарушении свободы, что срочно пришлось создавать Xorg — полностью свободный форк проекта XFree86, ответвившийся от последнего на той стадии (версия 4.3), когда тот еще свято придерживался буквы лицензии MIT, признававшейся совместимой с GPL.

В результате в короткий промежуток времени все (по крайней мере, все известные мне) дистрибутивы Linux, а также Free- и OpenBSD переориентировались на Xorg. Хотя, например, Патрик Фолькердинг при этом оговорился, что делает это не из каких-то идеологических соображений, а исключительно ради совместимости с другими дистрибутивами. Тео де Раадт же, основатель и один из основных разработчиков OpenBSD, напротив, обосновывал переход своей системы на Xorg именно идеологическими причинами — отступлением XFree86 от первоначальных целей, ради которых создавалась оконная система X.

Дольше всех верность XFree86 сохраняла NetBSD, но и она, «под давлением общественности», как говаривали в советские времена, вынуждена была мигрировать на Xorg. И ныне нет ни одной системы и ни одного дистрибутива, штатно поставляемых с XFree86. Хотя в рамках последнего проекта со времен «раскола» было выпущено несколько релизов, последний из которых (сентябрь 2007 года) имел номер версии 4.7. И, что самое парадоксальное, новая лицензия XFree86 в настоящее время признаётся совместимой с последней, третьей, версией лицензии GPL.

Итак, для официального именования Linux’а GNU/Linux’ом оснований гораздо меньше, чем для использования любого другого префикса, например, в форме X/Linux. Для меня дополнительным аргументом против первой формы является просто чувство языка — уж больно коряво она звучит по русски. Про ассоциации с «Антилопой гну» из всем известного романа я уже и не говорю.

Что же до позиции Столлмана, настаивающего на обязательном использовании названия GNU/Linux, то она весьма противоречива и не лишена того самого подхода двойных стандартов, в котором он обвиняет противников этого имени. Например, приведу цитату из интервью, взятом у Ричарда Столлмана Максимом Отставновым для тематического номера журнала Домашний компьютер (2002#12, онлайновая версия доступна здесь):

М.О. Графическая подсистема (как X Window System) — часть ОС или прикладная платформа? А Web? А электронная почта?
RMS. Все это части ОС.

Весьма опрометчивое заявление в устах человека, настаивающего на определяющей роли GNU-утилит в ОС Linux. Ведь если признать Иксы неотъемлемой составной частью этой операционки, то поневоле придется согласиться и с тем, что роль Иксов для конечного пользователя несоизмеримо важнее всего, сделанного в рамках проекта GNU. Соответствующие оргвыводы относительно официального названия сделать уже не трудно.

Однако я предлагаю от любых оргвыводов отказаться. И именовать операционную систему Linux так, как привыкли её величать многие и многие поколения линуксоидов. Или кто из коллег желает зваться гнулинуксоидом? Или, компактности ради, гнусоидом?

P.S. Кстати, в ходе упомянутого выше интервью Максим Отставнов задал Столлману вопрос (предложенный Виктором Вагнером aka Витус), не читал ли он случайно Золотого телёнка. Выяснилось, что нет…


[Назад] [Главная] [Вперёд]