Книга: Вопросы истории: UNIX, Linux, BSD и другие
Глава двадцать четвёртая
В настоящей главе мы поговорим об истории комплексов программ, задумчиво именуемых интегрированными, или графическими, рабочими средами, они же – окружения (по английски – Graphic, или Intergated Desktop Environment). Впрочем, в народе их величают гораздо короче – просто декстопами или даже аббревиатурой DE.
Вступление
Если функции оконных менеджеров, о которых рассказывалось в предыдущей главе, сводятся, как следует из их названия, к управлению окнами, то задачи, стоящие перед десктопами, гораздо шире. Они в обязательном порядке включают в себя средства конфигурирования как самих себя, так и штатных приложений. Некий непременный круг таких приложений, более или менее обширный, обладающих похожим по виду и функциональности интерфейсом, настраиваемых одним и тем же образом, также является неотъемлемой принадлежностью десктопов – почему они и носят имя интегрированных сред.
Средства конфигурирования десктопов изначально работали в графическом режиме, прямое редактирование настроек в них требовалось лишь в исключительных случаях. Ибо, вспоминая словам маршала Ланна, можно сказать, что GUI, который не может настроить себя своими GUI'ёвыми средствами – не GUI, а... нехорошее слово.
Что же до штатных приложений, то они, кроме оконного менеджера (оригинального или заимствованного) и всяких служебных утилит типа часов, регулятора звука, средств мониторинга, непременно включали в себя малый джентльменский набор, необходимый любому применителю: файловый менеджер (своего рода сердце среды), эмулятор терминала, простой текстовый редактор. Остальными приложениями разные десктопы комплектовались по разным принципам – от полного минимализма до собственного браузера и даже офисного пакета.
Оба эти фактора – простота и «всеобщность» конфигурирования, во-первых, и набор приложений, более или менее достаточный для начала работы большинства применителей, да ещё и выглядевших единообразно и столь же унифицированно настраиваемых, и обусловили мгновенную популярность интегрированных сред в широких народных массах – и не только среди начинающих пользователей. По сути дела, чистые оконные менеджеры остались уделом последователей Агафьи Тихоновны, то есть любителей
... губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколь-нибудь развязанное, какая у Балтазара Балтазаровича, да, пожалуй, прибавить к этому ещё дородности Ивана Павловича…
Так что история десктопов, хотя и более короткая, чем у оконных менеджеров, оказалась весьма насыщенной событиями и куда как более драматической. Впрочем, и предыстория их также глубоко уходит в дебри прошлого.
Предыстория десктопов
Разумеется, в этой статье будет говориться только о тех десктопах, которые работают в открытых и свободных UNIX-подобных системах, и сами принадлежат к миру FOSS. И потому за точку отсчёта времени в истории интегрированных сред можно принять осень 1996 года – начало работы Маттиаса Эттриха (Matthias Ettrich) над средой KDE. Однако рассмотрение предыстории вопроса опускается куда глубже, в недра проприетаризма.
Отдалённым прототипом современных интегрированных сред были первые, ещё до-иксовые графические интерфейсы фирмы Sun – SunView (Sun Visual Integrated Environment for Workstations, изначально SunTools), затем NeWS (Network extensible Window System) и, наконец, OpenWindows, о которых я упоминал в главе про историю Иксов. Они предназначались для операционной системы SunOS – фирменного варианта UNIX: именно здесь впервые была реализована идея интеграции операционной системы, GUI и пользовательских приложений, получившая дальнейшее развитие не только в мире UNIX, но и далеко за его пределами.
Именно графические интерфейсы, пришедшие из совершенно других миров – не UNIX'овых и не свободных, миров OS/2, Macintosh'а и Windows, оказали определяющее влияние на десктопы, о которых вскоре пойдёт речь.
Ныне мало кто помнит, но OS/2 не включала графический интерфейс пользователя как непременный атрибут операционной системы, однако обладала оригинальной и весьма совершенной графической оболочкой, Presentation Manager, позднее Workplace Shell (WPS). Она отличалась исключительной аккуратностью и вылизанностью, благодаря чему и послужила образцом при создании первого собственно Иксового десктопа – среды CDE.
Среда CDE (Common Desktop Environment) была разработана в 1993 году под эгидой The Open Group и при участии Hewlett-Packard, IBM, Novell и Sun. Она основывалась на библиотеках Motif и включала в себя оконный менеджер VUE (или HP-VUE – Visual User Environment), ранее применявшийся в HP-UX. Она быстро стала стандартным графическим интерфейсом для всех проприетарных UNIX'ов.
Как легко догадаться, CDE (как и лежащие в её основе библиотеки Motif) не была ни свободной, ни открытой. Именно потому влияние её на дальнейшее развитие десктопов, за единственным исключением (и, разумеется, самой идеи интеграции), оказалось не очень большим. Не изменило ситуации и открытие в начале десятых годов исходников и Motif'а, и CDE, ибо состоялось оно по принципу: возьми, боже, что мне не гоже. В то время, когда DOSS-десктопы давно превзошли своего первопредка и по функциональности, и по удобству.
Отступление. Среда CDE основывалась на библиотеке Motif – в те времена стандартном наборе для графических интерфейсов проприетарных UNIX. На нём же основывалось и множество приложений графического режима, некоторые из них были открытыми. Но, поскольку сами библиотеки были закрытами, свободными эти приложения быть не могли.
Поэтому был изобретён свободный аналог – библиотека OpenMotif. Правда, функционально обеднённый – и не все Motif-приложения могли быть с ним собраны.
В дальнейшем, уже в начале текущего десятилетия, и библиотека Motif, и среда CDE были последовательно открыты для народа. Но к тому времени они вышли из моды, морально устарели, и казалось что народу не нужны. Однако буквально в то время, как в эту книгу вносилась последняя правка (1 марта 2014 года), мир облетела весть о выходе первой, со времён открытия исходников (и, следовательно, первой свободной), версии CDE, за номером 2.2.1. Пока она доступна только в виде исходников, адптированных, как говорят разработчики, для сборки в любом дистрибутиве Linux или BSD-системе. Что из этого получится – поживём, увидим.
Ранние версии Windows, с версии 1-й по 3.X, представляли собой обычные графические псевдомногозадачные надстройки над DOS, хотя нынче об этом и не любят говорить вслух. Имя графическим DOS-надстройкам тогда было – легион: достаточно вспомнить такие среды, как GEM (много лет служившую для запуска Ventura Publisher), DesqView, GEOS и GeoWorks. И это не говоря уже о том, что многие популярные приложения, вроде Lotus 123, QuattroPro или WordRerfect, располагали собственными графическими оболочками. Влияние этих Windows за пределами своего мира также было невелико. Звёздный час Windows наступил в 1995 году, с выходом версии его имени. Но к этому вопросу мы ещё вернёмся.
В отличие от OS/2 и DOS/Windows, операционная система Macintosh'а, именовавшаяся в те времена просто и скромно – System 4, 5, 6 и так далее, – изначально в качестве неотъемлемого компонента включала в себя графическую среду, неотделимую от собственно операционки. На десктопы свободных UNIX-подобных систем она поначалу оказала влияние сугубо косвенное. Хотя и в те времена, как и по сей день, выступает в качестве своего эталона графического интерфейса пользователя.
Очень важной вехой в развитии графических интерфейсов оказалась система NeXTStep, о которой упоминалось в предыдущей главе . Однако это стало ясно годы спустя, после того, как её достижения были инкорпорированы в недра MacOS X.
Воистину судьбоносным в истории графических сред стал август 1995 года – момент выхода Windows 95. Именно в ней впервые появляется центральный элемент большинства графических интерфейсов последующих лет – сакраментальная кнопка Start (она же Пуск), располагающаяся на главной управляющей панели и вызывающая каскадное меню приложений.
Справедливости ради надо отметить, что прообраз этой кнопки, нёсший на себе изображение надкусанного яблока, появился в Macintosh'евских System. Управляющая панель в Windows 95 также в значительной мере унаследована от графической среды Macintosh'а, хотя нельзя исключить и влияние ранних оконных менеджеров Иксов. Наконец, из Иксов же, прямо или косвенно, в «девяностопятке» заимствуется идея контекстных меню рабочего стола.
Я надеюсь, никто не заподозрит меня в излишних симпатиях к Самой Великой ОС всех времён и народов. Однако, вопреки расхожему мнению, я не склонен считать, что разработчики Windows 95 взяли и просто так потибрили все перечисленные компоненты откуда бы то ни было. Во-первых, многие из них восходят к далёким временам экспериментальных графических интерфейсов, разрабатывавшихся в Исследовательском центре Пало-Альто компании Hewlett-Packard (PARC) и оказавших огромное влияние на все последующие графические системы и среды без исключения.
Во-вторых, интеграция всех указанных компонентов в виде, доступном для восприятия тем самым пресловутым простым пользователем, о котором так любят говорить и в проприетарной сфере, и в мире FOSS – это неоспоримая заслуга разработчиков Windows 95.
Так или иначе, Windows 95 создал тот образ графического интерфейса, который быстро завоевал популярность среди широких народных масс. И с этим образом приходилось считаться разработчикам любых десктпопв, ориентированным на ту же целевую аудиторию.
Рождение KDE
Не стал исключением и Маттиас Эттрих – создатель первого интегрированного десктопа для свободных UNIX'ов, когда он в 1995 году приступил к разработке KDE. Маттиас, в то время студент университета в Тюбингене, уже приобрёл известность как разработчик LyX – системы компьютерной вёрстки, которую с некоторой условностью можно считать надстройкой над TeX. И первые шаги по сбору команды для работы над KDE он предпринял в списках рассылки своего проекта.
Согласно легенде, Эттрих занялся разработкой интегрированного десктопа – делом тогда ещё новым и неосвоенным, для того, чтобы его девушка чувствовала себя в Linux'е так же комфортно, как и в Windows 95, к которой она, видимо, успела привыкнуть.
Так что, создавая KDE, Эттриху пришлось включить в неё и управляющую панель в стиле Windows 95, и кнопку Start. Однако было бы неправильно считать, что он тупо скопировал интерфейс Самой Великой ОС, о чём любят говорить несознательные (или неосведомлённые) граждане. Ибо гораздо больше в интерфейсе KDE было унаследовано от старых добрых оконных менеджеров для Иксов. В ней были и развитая система контекстных меню, и множественные виртуальные декстопы.
Как мы помним по прошлой главе, про оконные менеджеры, всё это в совокупности имело место быть и в оконных менеджерах, воспроизводивших внешность Windows 95, таких, как FVWM95 и IceWM. Однако в KDE имелось и кое-что ещё, и кое-что другое, а именно – набор штатных приложений. Набор этот включал в себя файловый менеджер kfm в стиле пресловутого Windows Explorer, эмулятор терминала konsole, сразу два текстовых редактора – KEdit типа Notepad'а и более «продвинутый» KWrite. Все эти приложения имели интерфейс в едином стиле, хорошо вписываемый в среду.
Отступление. Как показывают многочисленные вопросы на форумах, нынче мало кто помнит расшифровку названия KDE. А расшифровывалась эта аббревиатура очень просто: Kool Desktop Environment. Впрочем, это не прибавляет ясности и помнящим те времена почти былинные. Ибо никто так и не знает, что же вкладывалось создателем в слово Kool – его нет ни в английском языке, ни в немецком. Разве что если воспринимать его как попытку записать по немецким правилам английское слово Cool? Намёки на что можно найти в ранних обзорах этой среды.
Видимо, разработчики быстро поняли это, и ныне литера K в имени этого десктопа не означает ничего, кроме самой себя. То есть его название можно перевести на русский язык как «Рабочее окружение некоего гражданина K» – и не более того.
Самое же главное – в KDE имелось средство тотальной настройки, KDE Control Center (KCC), позволяющее настраивать параметры как самой среды, так и всех штатных приложений – этого в столь интегрированном виде ни у одного из оконных менеджеров для Иксов тогда не было и в помине.
Отступление. В традициях раннего KDE было называть все приложения для неё именами, начинающимися с заглавной буквы K, или, в редких случаях, ею оканчивающихся. В случае с эмулятором терминала это послужило основанием для многолетней путаницы, продолжающейся по сей день.
KDE создавалась как среда не исконно немецкая, а интернациональная, и потому имела английский интерфейс. По английски тектовая консоль, или виртуальный терминал (console) и терминальная программа из KDE (Konsole) пишутся несколько по разному. По немецки же они пишутся абсолютно одинаково (konsole) и столь же одинаково произносятся. Кстати, в русском языке ситуация аналогичная.
В результате многие пользователи, и не только начинающие, явно или не явно, но не делают различия между работой в текстовой консоли и в командной строке эмулятора терминала Konsole.
С самого начала KDE задумывалось как среда самодостаточная, снабжённая комплексом приложений, необходимых для практической работы. Создание вокруг проекта сообщества разработчиков позволило реализовать эту идею на ранних его стадиях.
Кроме перечисленных ранее приложений, ней очень быстро появились собственные средства для работы с сетью, комплекс мультимедийных программ, кстати, едва ли не первый в своём роде, наборы для украшательства рабочего стола.
Всё это было очень логично организовано в несколько «авторских» пакетов, таких, как kdelibs – библиотеки, дополняющие основополагающую библиотеку Qt, kdebase – базовые приложения среды, kdenetworks – сетевые средства, kdemultimedia очевидного назначения, kdeartworks – набор украшательств, и так далее. А вскоре для KDE был создан даже офисный пакет KOffice, развиваемый и поныне под именем Calligra.
Среда KDE, как и все её приложения, основывалась на библиотеках Qt, разработанной незадолго до этого (также в 1996 году) норвежской фирмой Trolltech. Библиотека эта распространялась с открытыми исходниками, но не была свободной в понимании GNU/FSF. Ибо имела две версии – платную для коммерческого использования и бесплатную – для использования некоммерческого. Последняя и была положена в основу KDE и её собственного набора библиотек – kdelibs.
Не вполне свободный характер библиотеки Qt и послужил завязкой всего последующего сюжета, стержнем которого стало противостояние KDE и GNOME. Не смотря на то, что вскоре (осенью 1998 года) некоммерческий вариант Qt/X11 стал распространяться под лицензией GPL, работа над GNOME уже началась. Так что если бы Эттрих выбрал бы для своего десктопа любую другую библиотеку (а дальнейшие события показали, что он сделал лучший выбор), был бы найден более иной повод для создания «истинно свободной» интегрированной среды.
На самых ранних стадиях разработки KDE вокруг проекта собралась небольшая, но сплочённая группа товарищей, в основном вполне студенческого возраста. Они создали и некоммерческую организацию KDE e.V. (eingetragener Verein – зарегистрированное объединение, по немецки), уставной фон для которой набрали из карманных денег. И, как свидетельствуют очевидцы, например, один из соучередителей, Маттиас Далхаймер (Matthias Kalle Dalheimer), процесс разработки KDE проходил весьма весело, в лучших традициях университетских буршеншафтов.
К слову, Маттиас Далхаймер в те далёкие годы работал в фирме ?Star Division – той самой, в которой разрабатывался кросплатформенный офисный пакет StarOffice, предшественник современных OpenOffice и LibreOffice. И занимался он там как раз его портированием на Linux – исходно тот был предназначен для OS/2. Но эту историю я расскажу как-нибудь в другой раз.
А ещё Маттиас – один из авторов последних изданий знаменитой книжки «Запускаем Linux» (?Running Linux). ? Написанная в 1995 году Ларом Кауфманом (Lar Kaufman) и Мэттом Уэлшем (Matt Welsh), она, обрастая соавторами, за десять лет выдержала 5 изданий. И стала настольной книгой многих поколений линуксоидов, как начинающих, так и действующих.
KDE – в жизнь
Вследствие не вполне свободного характера библиотеки Qt, основанная на ней среда KDE была настороженно принята столпами дистроения, в первую очередь ревнителями идеологической чистоты, такими, как Debian и Red Hat.
Так что поначалу KDE самостоятельно собиралась исключительно энтузиастами в рамках более иных дистрибутивов. Однако звёздный час её был недалёк: в июле 1998 года выходит первая версия первого по настоящему юзерофильного дистрибутива – Mandrake Linux, потомком которого является современная Mandriva и ряд её дериватов.
Первая версия Mandrake, как ни странно, носила номер 5.1, ибо представляла собой достаточно точный клон Red Hat 5.1, появившегося на свет незадолго до того, весной 1998 года (кажется, с тех пор и пошла традиция для клонов – наследовать номера версии прародительской системы). Но её «юзерофилия» как раз и заключалась в том, что она штатно включила в себя среду KDE с её штатными приложениями, в том числе графическими и мультимедийными.
Более того, среда KDE была в первом Mandrake десктопом по умолчанию. А сам дистрибутив этот оказался первым, вообще получившим умолчальный десктоп. Ранее такого понятия просто не существовало – и тому было много причин, одна из которых – отсутствие свободных десктопов вообще (оговорки на счёт Qt будем считать юридическим крючкотворством, тем более что и повод для них скоро пропал).
Вслед за Mandrake, осенью 1998 года, среда KDE в качестве умолчальной была включена в версию 5.3 SUSE. И с тех пор судьба обоих этих дистрибутивов оказалась тесно с ней связанной. Хотя, разумеется, ни в том, ни в другом KDE не был единственным десктопом, да и простыми оконными менеджерами они не оскудели. Но, как говорится, оба они «затачивались» в первую очередь под KDE.
А затем, на рубеже тысячелетий, поднялся первый вал «Linux'ов с человеческим лицом», или, точнее, первых систем быстрого развёртывания, начиная со StromLinux'а. За которым последовал вал второй – VectorLinux, MEPIS и другие, ряд которых существует и сегодня. И во всех этих системах в качестве десктопа, теперь уже не просто умолчального, а единственного штатного, задействовалась среда KDE. Хотя в то время она была уже не единственным представителем своего класса, имелись и альтернативы, о которых пойдёт скоро пойдёт речь.
Среда для холериков
Как было только что сказано, к рубежу тысячелетий доминирование KDE в ряду графических интерфейсов свободных UNIX-подобных систем. Однако KDE существовало не в безвоздушном пространстве, в чём мы сейчас и убедимся.
Буквально через несколько месяцев после выхода KDE, появляется среда XFce. Говорят, что первоначально название её расшифровывалось как XForms Common Environment – разделяемая среда на библиотеке XForms. К тому времени, как я её впервые увидел, та же аббревиатура трактовалось как The Cholesterol Free Desktop Environment – «обезжиренный» свободный десктоп. Хотя мне больше нравилась трактовка названия как среды для холериков – её действительно отличала не просто быстрота реакции на действия пользователя, но именно порывистость. Однако давно уже в Xfce не осталось и следов от библиотек XForms, да и того взрывного впечатления, как некогда, она уже не производит. Так что, подобно большинству аббревиатур FOSS-мире, ныне Xfce не расшифровывается никак.
Среда Xfce была создана французом Оливером Форданом, и не столько под впечатлением и по примеру KDE, сколько как попытка создания свободного аналога CDE. И в интерфейсе её ранних версий чётко прослеживается влияние первой рабочей среды UNIX'ов.
И строилась она по совершенно другим принципам, нежели KDE. Если последняя стремилась стать самодостаточной средой со всеобъемлющим набором пользовательских приложений, то в Xfce, кроме средств управления окнами и сквозной настройки, имелся лишь очень небольшой комплект базовых утилит и приложений, типа файлового менеджера и эмулятора терминала. Благодаря этому Xfce была средой очень компактной и быстродействующей.
Среда Xfce основывалась на наборе библиотек XForms весьма сложного происхождения, но восходившем в конечном счёте к IRIS GL, проприетарной графической библиотеке компании Silicon Grahics (ныне SGI). Да и сама XForms в то время не была свободной, а только лишь бесплатной для личного некоммерческого использования (настоящую свободу в понимании FSF она обрела годы спустя). И потому отношение к ней дистроителей было не менее настороженным, нежели к KDE. То есть её существование игнорировалось и Red Hat'ом, и Debian'ом. А поскольку по своей функциональности Xfce не намного превосходила развитые оконные менеджеры, то и большого интереса энтузиастов она тоже не вызывала.
Отчётливо маргинальное положение занимала среда Xfce во время жизненного цикла своей 1-й и 2-й версии. Версию же 3-ю Фордан весной 1999 года полностью переписал с использованием библиотек Gtk – тех самых, которые, как мы скоро увидим, перед тем легли в основу среды GNOME. В результате этого «освобождения» Xfce стала включаться как дополнительный десктоп в ряд дистрибутивов, в частности, в ту же Mandrake и её русскую редакцию. Однако дистрибутива, в котором она выступала бы десктопом по умолчанию, не существовало вплоть до середины нулевых, когда появились первые «лёгкие» системы быстрого развёртывания, такие, как Zenwalk, в которых она пришлась очень ко двору. Но это уже переход к следующему этапу нашей истории.
А пока – несколько слов об Xfce версии 3. Именно в отношении её название среды трактовалось «с холерическим уклоном» – и к тому были все основания. Она работала чрезвычайно быстро и, так сказать, «импульсивно». Ощущение это передать словами почти невозможно, но оно осталось незабываемым – больше нигде и никогда мне такого испытать не довелось.
Да и интерфейс её тогда сильно отличался от уже примелькавшихся к тому времени KDE и GNOME, не обнаруживая ни малейшего намёка на «Windows-подобие», и скорее вызывая в памяти WPS из OS/2 эпохи «Кривого Мерлина».
Завершая этот раздел, ещё раз подчеркну: появление Xfce не оказало большого влияния на мир рабочих сред для свободных UNIX-подобных систем. Ибо ось развития их проходила по линии противостояния KDE, о котором уже шла речь, и GNOME, к рассмотрению истории которого мы сейчас перейдём.
Disclaimer, он же – отмазка. Однако прежде чем перейти к истории GNOME я должен принести слова покаяния. Настоящая книга, как неоднократно декларировалось, написана, по мере возможности, в соответствие с заветом Тацита – «без гнева и пристрастия». Один раз, в главе девятнадцатой, я уже отступил от этого завета. И ныне вынужден сделать это вторично.
Ибо, когда речь заходит о среде GNOME, мне этого завета придерживаться трудно. Разумеется, никакого гнева против этого десктопа я не испытываю. Нет и особого пристрастия или противострастия – одно время я даже был его пользователем. А все предыдущие годы честно (хотя и безуспешно) пытался найти те самые его несравненные достоинства, о которых столько говорили его приверженцы.
Нет, речь идёт не о гневе или пристрастии, а скорее о чувстве недоумения: почему такая эклектическая, неорганизованная и даже не очень оригинальная в идейном плане среда завоевала столь широкую популярность. Разумеется, к тому были некоторые объективные предпосылки, о которых я скажу по ходу дела. Но во главе угла всё-таки стоял субъективный фактор – тот самый, который можно назвать кредитом доверия пользователей. И который, как мы увидим, оказался фактически безграничным, хотя разработчики GNOME раз за разом подвергали его испытанию на прочность. Причём таким, на какие не решалась даже компания Microsoft, чья Windows даже на заре своего существования имела несоизмеримо большую пользовательскую базу.
В общем, говоря об истории GNOME, мне очень трудно сохранять объективность – что и прошу учитывать читателя.
Радетели свободы
Однако вернёмся к истории. Пока и KDE, и Xfce базировались на не вполне «идеологически выдержанных» библиотеках, истинные радетели свободы готовили удар по проприетаризму. Во главе этих радетелей встали Мигель де Икаса (Miguel de Icaza) и Федерико Мена-Кинтеро (Federico Mena-Quintero), основавшие в 1997 году проект GNOME (GNU Network Object Model Environment). Его можно рассматривать как ответ «твёрдых искровцев»... пардон, истинных Freesoftware'овцев прихлёбным плюралистам из проекта KDE.
Целями проекта, насколько можно понять замысел его создателей, были (в порядке убывания приоритетов):
1. создание полностью свободной, в терминах FSF, интегрированной рабочей среды;
2. создание интегрированной среды, не похожей ни на одну из существующих сред;
3. создание интегрированной среды, доступной для всех пользователей, вне зависимости от уровня их технической подготовки.
Достижение первой цели требовало выбора соответствующей библиотеки, на которой базировалась бы новая среда. А единственной по настоящему свободной графической библиотекой в то время была базовая xlib из штатной поставки XFree86, функционала которой для построения интегрированного десктопа было явно недостаточно. Более развитые же библиотеки, о которых я упоминал – Motif, XForms, Qt, – имели те или иные ограничения в использовании распространении.
И тут на помощь пришёл случай. Начиная с 1995 года Спенсером Кимбеллом и Питером Маттисом велась разработка растрового графического редактора, который получил название GIMP, что первоначально означало General Image Manipulation Program (буковка G приобрела значение GNU в 1997 году, года эта программа удостоилась чести войти в данный проект).
В ходе своей работы авторы программы столкнулись с острой потребностью в высокоуровневой графической библиотеке. Каковую они и создали, назвав её Gtk – GIMP ToolKit. Её первая стабильная версия была выпущена весной 1998 года под архисвободной лицензией LGPL. Библиотека эта создавалась с вполне конкретной, и достаточно узкой, целью. И в этом качестве она показала себя самым лучшим образом. Но как основа для интегрированной среды она не планировалась. Однако требование свободы оказалось сильнее технологических соображений, да и выбора-то особого у создателей GNOME не было: все остальные высокоуровневые графические библиотеки (Motif, Xforms, Qt) в то время несли на себе пятно тлетворного влияния проприетаризма. И это наложило отпечаток на всё дальнейшее развитие среды.
Второй целью, не намного менее важной, нежели свобода, было создание среды, ни на что не похожей. По этой причине в качестве оконного менеджера GNOME был выбран Enlightenment – невероятно эффектный, но не очень эффективный в работе и очень неудобный в настройке.
Так что третья цель – создание простой в использовании рабочей среды – по уровню приоритености оказалась где-то тридцать третьей. Да, первая версия GNOME, вышедшая весной 1999 года, была фантастически красива, загружаясь с заставкой в виде анимированного театрального занавеса. Вот только настраивать её было не очень просто. Да и до настройки обычно дело не доходило. Ибо среда эта в те годы хорошо умела делать только одно: свопировать саму себя на винчестер. По крайней мере, при работе в GNOME индикатор его активности обычно не гас ни на мгновение.
Тем не менее, GNOME получил активную поддержку со стороны дистроителей – тех самых, которые в штыки встретили KDE и просто проигнорировали Xfce. Практически сразу после выхода первого релиза он становится десктопом по умолчанию в Debian'е (март 1999 года) и в Red Hat'е (апрель 1999 года). Не побрезговали им и разработчики Mandrake, включив GNOME в качестве опциональной рабочей среды – именно в составе русской редакции этого дистрибутива я и пытался ознакомиться с его первыми версиями.
Однако, насколько я могу судить, объявление GNOME умолчальным десктопом в Debian'е и Red Hat'е было скорее теоретическим (или, если угодно, политическим). Среди лично мне знакомых в те годы дебианистов и редхатчиков пользователей этой среды я не припоминаю. Ну а в Mandrake он вообще присутствовал для галочки – чтоб было. И причина была в практической непригодности GNOME к реальному применению. Именно в те годы и родилось высказывание:
KDE разработали обычные программисты для удобства собственного и пользователей. А GNOME создали крутые программеры для доказательства собственной крутизны.
Надо сказать, что в те годы для такого утверждения были все основания. Да и ныне, во времена GNOME 3 и GNOMESell, оно не выглядит совсем беспочвенным.
Великое противостояние
Разумеется, так продолжаться не могло: одно из знамён свободного софта практически не применяется его сторонниками. И разработчики GNOME вынуждены были, поступившись своей крутизной, пойти по пути упрощения.
Началось всё со смены оконного менеджера – место красивого, но непрактичного Enlightenment'а занял непритязательный, но пригодный к употреблению Sawfish. А поскольку собственного оконного менеджера у GNOME не было никогда, смена «управителей окон» с тех пор стала в этой среде традиционной.
Следующим шагом на пути упрощения стал выход 2-й версии GNOME, в которой простота настройки и использования были объявлены высшими приоритеами. А поскольку эталоном простоты в некоторых кругах в то время считалась Windows, в сети прозвучал лозунг:
Сделать GNOME большей Windows, чем сама Windows.
Правда, популярности этот девиз не снискал, и о нём постарались поскорее забыть. Однако репутация среды, в которой может работать даже кухарка, за GNOME закрепилась прочно. Хотя функционал штатных приложений его оставлял желать лучшего. А большинство хороших приложений, включавшиеся майнтайнерами в состав GNOME, разрабатывались независимо от него.
С другой стороны, KDE, при всех его многочисленных недостатках (а старым верным пользователям этого десктопа они были известны лучше, чем любым критикам), обладал тремя несравненными достоинствами:
1. обильным функционалом в отношении управления окнами и приложениями;
2. абсолютной настраиваемостью всего и вся;
3. набором штатных приложений и приложений от примкнувших сторонних разработчиков.
За средства настройки KDE подвергалась критике. И местами справедливой: они были запутанными, интуитивно не очень понятными, настройки связанных, казалось бы, параметров, часто оказывались раскиданными по противоположным пунктам меню. Но они были – и охватывали абсолютно все опции системы. Причём всё это поддавалось конфигурированию штатными средствами: необходимости в ручной правке конфигов практически не возникало. Разве что, как это часто бывало в истории (и неоднократно повторялось впоследствии – в том числе и в GNOME), она требовалась при настройке русской раскладки клавиатуры и её переключателей.
В силу перечисленных факторов первой половине нулевых годов вокруг KDE сплотилось сообщество пользователей-прагматиков, нуждавшихся в качественном софте для решения своих задач в среде, поддающейся стопроцентной индивидуальной настройке. В том числе и пользователей, никакого отношения к компьютерам не имеющих – юристов, переводчиков и прочих гуманитариев. Нельзя сказать, что таких не было среди пользователей GNOME – однако в этом сообществе до некоторого момента всё-таки доминировали компьютерные гики, вынашивающие планы изменения мира.
Отступление. В шутке про изменение мира есть только доля шутки. Одна бывшая наша соотечественница, будучи уволенной из NASA чуть ли не по подозрению в шпионаже (в пользу русской мафии, надо полагать), в поисках работы обратилась в том числе и в GNOME Foundation. Где на собеседовании её спросили: хотите ли вы участвовать в изменении мира? Вопрос этот показался ей смешным, и в результате в этот самый фонд её не взяли. Пришлось идти на работу в маленькую заштатную конторку, которая тогда называлась (да и сейчас называется) Google. А после капитализации последнего пришлось стать очень богатой женщиной. Так что политика GNOME подчас благотворно отражается на судьбах людей, с ней соприкоснувшихся.
Не случайно все опросы, касающиеся используемого десктопа, приносили в те годы чистую победу KDE – и с большим, подчас двухкратным, перевесом. Правда, в таких опросах, как правило, не участвовали представители так называемого корпоратива, использующие, как правило, не тот софт, который хочется, а который прикажут. И потому картину эту нельзя считать совсем точной. Ибо с момента зарождения GNOME его интенсивно поддерживала самая мощная Linux-компания – Red Hat, в те годы бесспорный лидер корпоративного поля. А в 2003 году, после того, как фирма SUSE, выпускавшая одноимённый дистрибутив, была приобретена компанией Novell, за внедрение GNOME взялся игрок номер два. Ибо после расщепления этого дистрибутива на две ветки – коммерческую SLE (Suse Linux Enterprise) и развиваемую сообществом openSUSE, в первой как десктоп по умолчанию был принят GNOME.
Почему – можно только гадать: ведь, как уже говорилось в предыдущеразделе, именно SUSE была одним из основных оплотов KDE. В качестве одной из причин указывалось то, что незадолго перед тем Novell прикупила команию Ximian, занимавшуюся разработкой Mono – свободной реализации Microsoft .NET Framework. А поскольку основателем Ximian'а был Мигель де Икаса, технологии Mono были тесно завязаны на GNOME.
Не скидывая со счетов этого факта, можно предложить и более простое объяснение. Приобретя SUSE, Novell ориентировала коммерческую ветку этого дистрибутива на корпоративный сектор американского рынка. Где, как уже было сказано, главным игроком была компания Red Hat со своим RHEL (Red Hat Enterprise Linux) и его десктопом GNOME. Так что Novell просто пришлось равняться на конкурента.
Тем не менее, при несомненных успехах RHEL и SLE в корпоративном секторе, на пользовательских десктопах результаты их деятельности по продвижению GNOME были не очень заметны. А началом коренного перелома в этом продвижении стал конец 2004 года, когда в мировом масштабе развернулось распространение дистрибутива Ubuntu, в качестве рабочей среды по умолчанию использовавшей GNOME. Однако предпосылки этого перелома закладывались ещё ранее, году в 2002, в то время, когда Марк Шаттлворт только приступал к реализации своего проекта. И когда он принял судьбоносное решение – использовать в новом дистрибутиве не KDE, а GNOME.
О возможной причине этого я уже говорил в главе шестнадцатой. К сказанному там добавлю только одно. Настройка KDE усложнялась от версии к версии (пропорционально росту функционала), тогда как GNOME как раз в это время резко сменил вектор развития: как недавно было сказано, если его позиционировали как крутейший десктоп от крутейших программеров, то теперь было решено сделать простейший десктоп, который может настроить и кухарка. А поскольку Ubuntu ориентировался (в том числе и) на эту категорию пользователей, выбор GNOME представлялся вполне логичным.
Однако главным фактором для предпочтения GNOME, как мне кажется, было всё-таки стремление выделить Ubuntu из ряда развивавшихся тогда (и, как казалось, не без успеха) Систем Быстрого Равёртывания (СБР), в качестве десктопа использовавших KDE.
Так или иначе, но вследствие сочетания обоих факторов – массовой бесплатной рассылки дисков с Ubuntu и «упрощения» GNOME – началось широкое распространение последнего. Причём первый фактор был, безусловно, более весом: в ряды линуксоидов влилось свежее пополнение, которое ничего, кроме Ubuntu и GNOME, в глаза не видело, и для них эти понятия стали, по крайней мере по первости, тождественны понятию Linux. Однако и второй фактор нельзя сбрасывать со счетов: если бы GNOME показался неофитам слишком сложным, диски с Ubuntu были бы выброшены ими на помойку без всякого сожаления, ибо халява. Так что тогдашний расчёт Марка оказался точным. Хотя более поздние события показали неоднозначность его последствий.
От KDE 4 до GNOME 3
Следующее судьбоносное событие, повлиявшее на распределение пользователей по десктопам (или десктопов по пользователям?) произошло в начале 2008 года. Это был выход KDE 4.0.
Эта версия KDE разрабатывалась примерно столько же времени, сколько хватило, чтобы смениться KDE 1, KDE 2 и KDE 3. И в анонсах на ранних стадиях разработки обещались если и не золотые горы, то по крайней мере серебряные. В частности, там содержались толстые намёки на то, что KDE 4 будет обходиться без Иксов (хотя каким образом – не уточнялось). Правда, со временем анонсы становились всё скромнее (в частности, из них исчезло упоминание об отказе от X-сервера), но по прежнему оставались многообщещающими.
Тем большим было разочарование, я бы даже сказал, шок, по выходе релиза KDE 4.0. Вместо стабильной, функциональной, настраиваемой среды с привычным интерфейсом мы увидели нечто глюкавое и падучее, лишённое половины функций и настроек. Причём уменьшение вариантов конфигурирования вовсе не сопровождалось его упрощением – напротив, оно стало ещё более запутанным. Но зато всё это было обвешано, как новогодняя ёлка, всякими красивостями в виде плазмоидов.
Надо сказать, что разработчики KDE 4.0 честно предупреждали, что эта версия предназначена ещё не для практического применения, а лишь для ознакомления с новыми возможностями и их тестирования. Но сделали они это достаточно невнятно, и майнтайнеры дистрибутивов дружно бросились включать её в свои новые релизы (обычно, правда, параллельно с предыдущей, 3.5.X). А пользователи, приняв всё это за чистую монету, столь же дружно стали «нулевую четвёрку» устанавливать.
Результат оказался более чем предсказуем. Поскольку было вполне очевидно, что дни 3-й ветки сочтены, начался массовый отток пользователей KDE на запасные аэродромы. Для кого им стал XFce, кто вернулся ко временам информационной юности – на менеджеры окон. Но немало бывших пользователей KDE попросило политического убежища в стане GNOME.
Отступление. Сейчас, по прошествии нескольких лет, становится понятно, что разработчики KDE почти всё сделали правильно. Допустив лишь одну маленькую тактическую ошибку: они обозвали релизом достаточно сырую тестовую версию. И никакие объяснения, что это не совсем таки настоящий релиз, не в силах были преодолеть магию Слова. Хотя, с другой стороны, не пойди KDE'шики на такой отчаянный шаг, разбудивший здоровую рабочую злость и пользователей-тестировщиков, и сторонних разработчиков – кто знает, может быть, 4-я версия KDE отлаживалась бы и по сей день в тестовом режиме.
Тут-то и выяснилось, что в GNOME образца 2008-2009 годов жить можно. Конечно, огорчал подход к конфигурированию среды, когда в интерактивном режиме был доступен лишь самый минимум, необходимый, по мнению разработчиков, «простому» пользователю, а для реализации более сложных (по их же представлениям) опций следовало лезть в нечто вроде реестра, ещё менее интуитивно понятного, чем опции настройки KDE, и гораздо более бедного. Видимо, разработчики GNOME руководствовались старым советским принципом:
Что позволено парторгу – не позволено бичу.
Поначалу удручало убожество убожество штатных приложений – например, Gedit'а в сравнении с Kate или Nautilus'а – в сравнении с Konqueror'ом старого образца. Однако в этом оказались и свои плюсы: в GNOME органично интегрировались любые сторонние приложения, основанные на Gtk. И Gedit для всамделишней работы легко заменялся Geany, а Nautilus – дополнялся PCManFM'ом. Кроме того, GNOME оказался органично интегрированным с такими дистрибутивами, как Fedora.
Так что на рубеже первых десятилетий нынешнего века между KDE и GNOME был достигнут примерный паритет. Хотя KDE и сохранял некоторое преимущество – за счёт а) стойких его приверженцев и б) энтузиастов новаторства. Тем более, что на месте эта среда не стояла, а постепенно допиливалась до юзабельного состояния, сама по себе, во-первых, и портированием на 4-ю ветку «трёшечных» приложений – во-вторых. Я, утратив в то время всякий интерес к KDE, не следил за этим процессом. Но, по слухам, примерно к версии 4.4 KDE стал вполне похожим на настоящий как сам по себе, так и в отношении своих штатных компонентов.
Тем не менее, отток пользователей от KDE казался необратимым, и GNOME утвердился с ним на одной ступеньке пьедестала почёта, может быть, ну на полступеньки ниже. Повторяю, заслуги самого по себе GNOME в приближении к вершине пьедестала были минимальны, ибо главные роли в этом спектакле сыграли уже упомянутые факторы – массовое распространение Ubuntu и ошибки команды KDE в продвижении новой версии своей среды. К этому надо добавить неожиданный рост популярности дистрибутива Fedora, тесно интегрированного с GNOME. Причём рост этот начался не благодаря GNOME, а скорее вопреки ему: многие пользователи готовы были смириться с этой средой ради достоинств самого дистрибутива. Который как раз в это время временно отказался от своей роли «тестовой площадки» коммерческого RHEL'а и обратился лицом к пользователю.
Отступление. Была и попытка реанимации KDE 3 в виде, привычном для пользователей этой ветки (и всех ей предшествовавших версий). Это – проект Тимоти Пирсона (Timothy Pearson) под названием Trinity KDE. Он представлял собой дальнейшее развитие 3-й ветки с некоторыми заимствованиями из 4-й – теми, что не шли в разрез с исконной идеологией KDE.
Увы – начатый во второй половине 2010 года, он явно запоздал. За два с половиной года, прошедшие с момента выхода KDE 4.0, эта среда в своём традиционном виде растеряла изрядную часть своих некогда преданных поклонников: одни, скрепя сердцем, погрузились в мир плазмоидов 4-й ветки, другие же мигрировали на более иные десктопы. А новые пользователи воспринимали «четвёрку» как данность – тем более, что к этому времени она стала пригодной к употреблению. И Trinity оказалась просто невостребованной широкими народными массами. Хотя некоторое число приверженцев и обрела.
Сказанное выше касалось распространения GNOME в мировом масштабе. А в нашей стране дело его укрепилось благодаря успеху проекта Russian Fedora, деятельность которого воплощена была в сборках RFRemix, кардинально улучшавшихся от версии к версии, вплоть до RFRemix 14 – апофеоза отечественного дистроения. Который (и это не только моё мнение) можно было смело рекомендовать русскоязычным пользователям любой сферы деятельности и почти любого уровня подготовки.
Казалось бы, вот он – тот самый готовый к десктопу Linux, наделённый человеческим лицом в виде интегрированной среды GNOME. То есть то самое, о чём говорили со времён первой версии Mandrake с его KDE. Однако – увы, это только казалось.
Ибо свежий ветер перемен затронул и GNOME, да так, что обрушился с ураганной силой. Потому что в апреле 2011 года принёс он с собой GNOME 3 с его GNOME Shell. Если и раньше, во времена GNOME 2, среда эта не утомляла своего пользователя изобилием настроек, даже в собственном реестре, то с переходом к 3-й ветке настройки практически исчезли как класс – или, позднее, в очень ограниченном количестве стали доступны благодаря сторонним утилитам-твикерам. Что же до интерфейса – он выглядел настолько революционным, что от привычных рабочих сред, казалось бы, не осталось просто ничего.
Однако большинство нового – это хорошо испорченное старое. Так, оверлейный режим GNOME Shell'а вызывал в памяти времена, когда не было ещё фиксированных множественных рабочих столов, но был зато единый рабочий стол с виртуальным разрешением в два и более раз выше физического (см. главу двадцать третью). А вертикальный ряд пиктограмм вдоль левого края экрана выглядели как реплика Window Maker'а, который, в свою очередь унаследовал эту идею от NeXTSTEP'а.
Не известно, позаимствовали разработчики GNOME Shell'а эти идеи у предшественников, или изобрели свои велосипеды независимо от них. Но в любом случае – ничего ультра-революционного в плане интерфейса эта среда не содержала. Разве что слияние виртуального рабочего стола с вертикальными пиктограммами. В результате чего получилось бы, возможно, вполне удачное нишевое решение – например для планшетов и прочих устройств с сенсорным экраном. Да вот беда – никто из производителей таких гаджетов использовать GNOME 3 не торопился: ниша эта была прочно оккупирована Android'ом. А для использования на обычном десктопе или ноутбуке решение это было мало пригодно. По крайней мере, для тех применителей, которые на десктопе или ноуте преимущественно работали, а не развлекались.
Однако разработчики GNOME Shell'а с этим не согласились. И попытались представить своё нишевое решение как универсальное. Причём с такой агрессивностью, с какой я не сталкивался за полтора десятка лет соприкосновения с миром Open Source. На любую критику в адрес своей среды у её фанатиков (не фэнов, не фанатов, а самых натуральных фанатиков) существовал универсальный ответ: всё это гениально и прогрессивно, а кто того не понимает --- ретроград и обскурант.
Было среди пользователей GNOME и другое течение – страстотерпцев. Не будучи приверженцами модерна, но сохраняя приверженность GNOME, они полагали, что надо смириться и привыкать к новомодному GNOME Shell'у, по принципу «Стерпится – слюбится». И надо сказать, что не все они смирились с положением «терпил»: некоторые стали активно создавать всякого рода твикеры для настройки «третьегнома» – то есть того самого, чем его собственные создатели пренебрегли, вполне цинично возложив эту миссию на «самих утопающих».
Наконец, возникло и третье течение – приверженцев старого и доброго GNOME. Тех, кто не хотел привыкать к GNOME новому и недоброму. И они пошли своим путём, да не одним, а сразу двумя.
Первый путь был ультраконсервативным и заключался просто в создании форма GNOME 2, получившего имя MATE. В отличие от близкого по идее проекта Trinity KDE, этот проект был начат практически сразу по выходе «третьегнома», когда запас спортивной злости пользователей его 2-й версии ещё не был растерян в дискуссиях на форумах и блогах. И потому MATE развивался (и развивается) вполне успешно.
Отступление. Название десктопа MATE происходит от слова mate (с ударением на первом слоге) – латиноамериканского (в первую очередь аргентинского и парагвайского) чаеподобного напитка, изготовляемого из листьев Падуба парагвайского. В указанном регионе он пользуется очень большой популярностью. Антони Арлетти в своей книжке Трампеадор свидетельствует, что знатоки
...могут почувствовать разницу между мате «этим вечером на том же самом месте» и мате «муж что-то подозревает». Ооо, это дьявольский мате!
А вот почему название десктопа принято писать целиком заглавными буквами – покрыто тайной.
Второй же путь в рамках третьего течения был более радикальным. Ряд пользователей 2-го GNOME, понимая, что для него слова, некогда увиденные царём Валтасаром, уже написаны, занялись стилизацией интерфейса GNOME 3 под внешний вид предшествующей версии. И, надо сказать, тоже не без успеха. Однако проект этот, получивший имя Cinnamon, быстро перерос первоначальные рамки. Но это уже не история, а современность, о которой сейчас сочиняется цикл на Блогосайте.
Здесь можно было бы сказать и о среде Unity – однако и она ещё не стала историей.
А что же другие?
Этот фрагмент истории десктопов был начат кратким рассказом о Xfce и ею же уместно его и завершить. Мы оставили её на уровне 3-й версии, которая, будучи переписана на основе библиотек Gtk, обрела статус свободной среды. Но на этом её история не закончилась.
При подготовке релиза 4.0 Xfce снова была полностью переписана – теперь на основе следующей, 2-й, версии Gtk. И не просто переписана изнутри, а кардинальным образом сменила интерфейс. От былого сходства с CDE не осталось и следа – внешности её по умолчанию было придано GNOME-подобие, а со временем, в версии 4.6, она обрела и своего рода реестр xfconf, также представляющий собой аналог GConf из среды GNOME.
Потеряла Xfce и свой «холерический темперамент», хотя по прежнему оставалась достаточно «лёгкой» и быстрой (хотя по этим двум пунктам можно найти и возражения). Однако её компактность трудно подвергнуть сомнению. И благодаря этому она стала десктопом по умолчанию ряда систем быстрого развёртывания, строившихся по принципу «одна задача – одно приложение». Среди таких систем наибольшую известность получили, пожалуй, Zenwalk и его родственник – Salix. А затем она была задействована в Xubuntu – одном из представителей семейства дистрибутивов Ubuntu. Хотя сборки с Xfce нынче можно видеть и в большинстве «больших» дистрибутивов, таких, как Fedora, openSUSE, Debian и ряде других.
Однако, как я только что сказал, разрастание Xfce вызывало нарекания – хотя, на мой взгляд, не вполне обоснованные. Тем не менее, в противовес ей были созданы ещё более «лёгкие» десктопы – сначала LXDE, а затем Razor-qt, основанные на библиотеках Gtk 3 и Qt, соответственно. Ныне их разработчики обозначили намерение слить оба проекта воедино. Но здесь мы уже окончательно покидаем историю и переходим к современности.
- Часть I. Двадцать лет восхождения
- Двадцать интервью… одиннадцать выводов Предисловие к изданию
- Двадцать тысяч лье под корой
- Двадцать семь идей для лид-магнитов
- Двадцать типов контента
- Глава двадцать первая. История shell'ов
- Двадцать два нуля
- Глава двадцать вторая. Из истории Иксов
- Глава четвёртая. Рождение Linux
- Глава двадцать третья. Управители окон: извлечения из истории
- Двадцать навыков идеального презентатора
- Глава девятнадцатая. Двадцать «никогда»