355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Алексей Федорчук » Вопросы истории: UNIX, Linux, BSD и другие » Текст книги (страница 24)
Вопросы истории: UNIX, Linux, BSD и другие
  • Текст добавлен: 11 октября 2016, 22:51

Текст книги "Вопросы истории: UNIX, Linux, BSD и другие"


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



сообщить о нарушении

Текущая страница: 24 (всего у книги 28 страниц)

... и начало Xorg

Если историю XFree86 уже в 2004 году можно было считать законченной (хотя она существует и доступна по сей день), то история Xorg только начиналась. И начиналась она весьма бурно.

Дабы отрешиться от старого мира, в проекте Xorg отказались от продолжения нумерации версий XFree86. И для начала продолжили нумерацию спецификаций оконной системы X вообще: первый релиз проекта (апрель 2004) именовался просто X11R6.7.0. Напомню, что предыдущая «общеиксовая» версия, X11R6.6, появилась на свет в апреле 2001 года. А спецификации «мажорные», то есть X11R6, на протяжении многих лет лежащие в основе XFree86, уходят в далёкий майский день 1994 года.

Со временем параллельно ей стала использоваться нумерация по версиям собственно сервера Xorg. В релизах X11R6.7.0 и X11R6.8.X в неявном виде подразумевалось, что он имеет номер версии 1.0. А далее к нему прибавлялась «мажорная» (1.X) или «минорная» (1.X.Y) единица. В настоящее время именование по версиям сервера Xorg является основным. Так, текущая его версия на момент сочинения этих строк – 1.15.

Итак, в апреле 2004 года появляется первая версия собственно Xorg – X11R6.7.0, основанная на исходниках XFree86 4.4 RC2 и мало чем от последней отличавшаяся. Точнее, не отличавшаяся ничем – имел удовольстве сравнивать их вживе. А далее версии сменяются с быстротой, заставляющей вспомнить ранние времена первозданных Иксов: 8 сентября 2004 – X11R6.8.0, 17 сентября 2004 – X11R6.8.1, февраль 2005 – X11R6.8.2.

В версии X11R6.8.0 впервые появляются такие ныне привычные вещи, как Composite – предварительная прорисовка изображения для вывода его на экран в уже готовом виде, прозрачность окон и прямая поддержка конфигураций с несколькими мониторами. «Минорные» же версии носили корректирующий характер.

Далее наступает некоторое затишье, продолжавшееся до 21 декабря 2005. Зато этот день ознаменовался выходом сразу двух версий – X11R6.9 и X11R7.0. Нет, это было не раздвоением личности, а окончательным разрывом со старыми традициями: переходом от Imake – системы автоматизации сборки, унаследованной от XFree86, к Autotools – аналогичной системе, развиваемой в рамках проекта GNU. Что вызвало и переход от монолитной сборки к модульной. В результате чего на одной кодовой базе и были созданы монолитная версия 6.9 и модульная версия 7.0. Во всех последующих релизах Xorg использовалась только система Autotools и, соответственно, все они были модульными.

Традиционно исходные коды XFree86 распространялись в виде нескольких крупных тарбаллов (в разных версиях – от трёх до семи). Которые при монолитной системе сборки и в бинарном виде собирались как серия крупных пакетов, таких, как Xbin, Xlib, Xxserv и так далее. Разумеется, бинарники можно было собрать и более дробно, и майнтайнеры ряда дистрибутивов, таких, как RedHat и Debian, прибегали к этому со стародавних времён. Но поначалу в Xorg штатно такая возможность не использовалась. Как не применялось «дробное» пакетирование и в дистрибутивах, придерживавшихся соответствия пакетов «авторских» и «дистрибутивных» – а такими на протяжении долгого времени были Slackware, Gentoo и идеологически близкие к ним, не говоря уж об LFS.

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

Впрочем, чтобы, как говорится, почувствовать разницу, достаточно сравнить древа исходных текстов версий X11R6.9 и X11R7.0 на официальном сервере проекта.

Следующая веха в истории Xorg – версия X11R7.3 (X-сервер 1.4), вышедшая в сентябре 2007 года: в ней, среди прочего, получает дальнейшее развитие автоопределение оборудования, в том числе и горячего подключения. Тогда это делалось через HAL (Hardware Abstraction Layer) – и делалось вполне успешно, и, что характерно, в сборках Иксов не только для Linux, но и для BSD-систем. В частности, автор этих строк неоднократно использовал HAL во FreeBSD.

Тем не менее, в версии X11R7.6 (X-сервер 1.8.0, декабрь 2010) в управлении устройствами подсистема HAL была заменена менеджером устройств udev. Что, с одной стороны, привело к определённому прогрессу в этом деле. А с другой, поскольку udev – инструмент, специфический для Linux'а, отгородило последующие версии Xorg от остальных UNIX-подобных систем. Но на этом я поставлю точку: мой рассказ подошёл к своему логическому завершению. И вместе с ним близится и конец Иксов вообще: на горизонте маячат Wayland, с одной стороны, и Mir – с другой. Но это уже дела дней сегодняшних и грядущих.

Глава двадцать третья. Управители окон: извлечения из истории

Предыдущая глава была посвящена истории X Window System и её свободных реализаций, XFree86 и Xorg. Однако ни слова не было сказано об истории того, как эти протоколы, спецификации и реализации претворялись в те самые графические интерфейсы, с которыми непосредственно имеет дело пользователь.

Терминологическое введение

Протоколы, спецификации и реализации претворялись в виде двух классов программ – оконных менеджеров, иногда именуемых также диспетчерами окон (WM – Window Manager), и интегрированных графических рабочих сред (Graphic Deskton Environment), которые называют также средами рабочего стола (DE – Desktop Environment) или, в просторечии, десктопами.

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

По большому счёту от оконного менеджера ничего иного и не требуется. Однако, как мы скоро увидим, со временем развитые представители этого класса обрастали наборами привязанных к ним утилит и приложений, а также собственными средствами настройки и наборами предопределённых тем. Откуда оставался один шаг до интегрированных рабочих сред, то есть десктопов.

Десктопы также включают в себя средства оформления окон и управления ими, то есть оконные менеджеры, собственные (как в KDE и Xfce) или заимствованные (как в GNOME и LXDE). Однако средства собственного конфигурирования, наборы тем и стилей, штатные утилиты и приложения входят в них уже в обязательном порядке. Хотя количество последних может быть различным – от всеохватного в KDE до весьма скромного в Xfce или совсем уж бедного – в LXFE. Важно, что все штатные программы десктопов характеризуются единством интерфейса, настраиваемого собственными конфигураторами среды.

Настоящая статья, как и следующая за ней, будут посвящены истории менеджеров окон. В статьях же дальнейших я расскажу о драматической истории десктопов и о разворачивавшихся вокруг них «священных войнах».

Я не берусь рассказать про возникновение и развитие всех оконных менеджеров, когда-либо существовавших на свете – это задача непосильная для одного человека. Поэтому ограничусь только теми представителями семейства, с которыми работал непосредственно, или которые внимательно рассматривал на предмет практического применения.

Предтечи управителей

Практическая работа в X Window System без менеджера окон почти невозможна, или, по крайней мере, очень неэффективна Тому, кому доводилось видеть «голые Иксы», понятно, почему: это просто серое поле с курсором мыши в виде крестика. И никакое щёлканье мышиными кнопками не влечёт за собой ни малейшего результата.

Конечно, в пользовательском конфиге Иксового сеанса можно прописать автоматический запуск каких-либо приложений – например, собственного эмулятора терминала, xterm, и работать в его командной строке, как в текстовой консоли. Можно было открыть при старте Иксов много терминальных окон для одновременной работы. И я знаю применителей, которые вполне серьёзно полагали это главной сакральной функцией графического интерфейса – ибо ни в чём, кроме терминалов, не нуждались. Можно было, наконец, открыть много-много приложений – но радости это приносило мало: исключительно иксовыми средствами окна их нельзя было ни перемещать, ни масштабировать, ни даже закрывать, не говоря уж о сворачивании в пиктограммы.

Так что можно предполагать, что оконные менеджеры возникли одновременно с первыми реализациями X Windows System, однако память о них затёрлась. И первое о них упоминание обнаруживается только в X10 (конец 1985 года) под именами xwm и xnwm, но сведений о том, что они собой представляли, мне обнаружить не удалось. По косвенным данным можно предполагать, что управлялись они не мышью, а с клавиатуры комбинациями с участием клавиши Meta, и не имели средств конфигурирования.

В том же 1985 году компания DEC разрабатывает оконный менеджер uwm (Ultrix Window Manager). Он предназначался для её собственной реализации UNIX для платформы VAX – Ultrix (в последующем Tru64 UNIX), в которой Иксы не использовались. Однако был быстро портирован на них, и уже в X11R3 стал стандартным средством управления окон. Это был первый оконный менеджер, в котором с помощью файла конфигурации можно было настроить поведение кнопок мыши и привязать к ним меню управления окнами – функции, которые нынче кажутся столь тривиальными, что в гипермодернистских средах типа GNOMEShell и Unity они почти редуцировались.

У истоков управления окнами: twm...

Следующим этапом в развитии оконных менеджеров стал twm, разработанный Томом Ластрэйнджем (Tom LaStrange) в 1987 году и включённый в качестве стандартного компонента в Иксы, начиная с X11R4 (декабрь 1989 года). Откуда он и попал в XFree86, появившуюся, как помнить читатель, в феврале 1991 года (LXF#168).

В отличие от ранее упомянутых оконных менеджеров, twm могли бы наблюдать многие из ныне действующих линуксоидов. Хотя развитие его прекратилось, twm до недавнего времени в качестве стандартного средства управления окнами входил практически во все сборки Иксов – как в XFree86, так и в Xorg. А некоторым и довелось наблюдать его: именно twm запускался по умолчанию в ответ на команды startx, если в пользовательском конфигурационном файле Иксов не было определено ничего другого.

Создатель twm, Том Ластрэйндж (Tom LaStrange), разрабатывал этот оконный менеджер для себя – и, вполне естественно, назвал его собственным именем: первоначальной расшифровкой аббервиатуры было: Tom's Window Manager. Такая практика в те годы была обычной (вспомним, например, Joe – Joe's Own Editor, то есть Личный Редактор Джозефа Аллена, его создателя) и отражала не манию величия или стремление увековечить своё имя. А напротив, как бы говорила: эту программу я сделал для себя. Подразумевая в скобках: а подойдёт ли она вам – не знаю.

При включении twm в штатный комплект Иксов Том передал права на своё произведение X-Консорциуму, стоящему в то время у руля управления графическими интерфейсами в UNIX'ах. И twm перестал быть его личным инструментом, а стал всенародным достоянием (на условиях X-лицензии, разумеется). К тому же новые разработчики добавили в него функцию объединения заголовков окон в единую панель с закладками (позднее нечто подобное будет реализовано во FluxBox'е, а сама идея закладок нашла применение в бессчётном количестве прикладных программ; говорят, что не так давно закладки появились даже в Internet Explorer). Так что twm с полным на то правом был переименован в Tabbed Window Manager.

А через четверть века после своего возникновения получила распространение более иная расшифровка имени twm: Timeless Window Manager. Что, применительно к случаю, я перевёл бы как Оконный Менеджер Всех Времён (а возможно, и народов).

Ныне место «аварийного» оконного менеджера в ряде дистрибутвов Linux занял IceWM. Однако и twm до сих пор сохраняется во многих сборках, например, его можно обнаружить в стандартной установке openSUSE.

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

Собственного средства конфигурирования или каких-либо тем и стилей twm не имел: все настройки осуществлялись правкой единственного и весьма простого по устройству конфига – twmrc. Что, тем не менее, позволяло добиваться весьма причудливого и эффектного внешнего вида.

Современный оконный менеджер и, тем более, декстоп трудно представить себе без виртуальных рабочих столов – некоего аналога виртуальных терминалов консольного режима. Однако в twm их ещё не было. Зато допускалось применение виртуального разрешения экрана, и во времена, когда преобладали мониторы с физическим разрешением 640x480, а режим 800x600 считался предметом роскоши, это было более чем востребовано).

Отступление. Виртуальное разрешение экрана – функция не оконного менеджера или рабочей среды, а X-сервера, и задаётся в его конфигурационном файле. Оно может быть в полтора-два раза больше максимального физического разрешения монитора. Собственно, верхний его предел определяется только объёмом видеопамяти. При включении виртуального режима на экране видна только часть рабочего пространства (например, четвертинка, если виртуальное разрешение задано вдвое большим, чем физическое). Для доступа к невидимым его участкам достаточно подвести курсор мыши к правому или нижнему краю экрана, чтобы плавно переместиться как бы за его пределы.

Ныне, в эпоху больших LCD-мониторов, виртуальное разрешение экрана устанавливается редко, обычно для каких-то специальных задач, и многие современные лиунгксоиды даже не подозревают о его существовании. Однако во времена, когда самым ходовым размером экрана было 14, много 15 дюймов, это была палочка-выручалочка при использовании таких нагруженных интерфейсными элементами рабочих сред, как KDE.

Кстати, оверлейный режим GNOME Shell, которые создатели «третьегнома» продают как последний писк прогресса, – ни что иное, как гальванизированная идея виртуального разрешения. Воистину, если не всё, то многое новое – это основательно испорченное старое.

В сущности, уже в twm почти в современном виде сложилась парадигма работы в графической среде, которая и поныне применяется в большинстве оконных менеджеров и рабочий сред. И, хотя развитие его прекратилось очень давно, ещё в прошлом тысячелетии, он оставил несколько прямых потомков и немало косвенных. А идейное его влияние в той или иной мере прослеживается абсолютно во всех оконных менеджерах и рабочих средах.

... и его линия

Как уже было сказано, twm не поддерживал виртуальных рабочих столов. Однако эта функция появилась в его ближайших прямых потомках – vtwm (Virtual TWM) и tvtwm (Tom's Virtual Tab Window Manager – опять же разработка Ластрэйнджа для личного пользования). Которые, в сущности, только ею и отличались от родителя.

Из косвенных потомков twm наибольшее распространение и известность приобрёл FVWM, что изначально расшифровывалось как Feeble Virtual Window Manager (то есть хилый виртуальный менеджер окон), однако в дальнейшем значение первой литеры забылось, и она стала восприниматься символически. Он был создан в 1993 году Робертом Нэйшном (Robert Nation). И сначала – также для личного применения. Однако, будучи также автором эмулятора терминала rxvt, он начал распространять их совместно – и FVWM был принят народом «на ура».

Вскоре Роберт прекратил заниматься FVWM, и его на посту основного разработчика сменил Чарльз Хайнс (Charles Hines), который внёс изменения в формат конфигурационного файла, дополнив его рядом новых возможностей. Получившийся в результате оконный менеджер стал известен в народе как FVWM2, хотя до сих пор оба названия часто употребляются как синонимы.

FVWM, особенно в варианте FVWM2, прославился своей поистине безграничной настраиваемостью как функционала, так и внешнего вида. Правда, достигалась она кропотливой правкой конфигурационного файла, причём далеко не очевидной, требующей вдумчивого чтения документации. В этом отношении его можно сравнить с позднейшим KDE: хотя в нём настройка выполняется через собственный графический интерфейс, однако он тоже далеко не прозрачен и требует освоения. Впрочем, в обоих случаях затраченные усилия окупаются неизменно превосходным результатом.

Вследствие своей конфигурабельности FVWM2 завоевал большую популярность, и до сих пор широко распространён в узких кругах терпеливых и аккуратных применителей. И почти неизвестен за их пределами. Однако он сыграл большую роль в становлении следующей волны оконных менеджеров.

По стопам Windows 95

Летом 1995 года появляется Windows 95 со своей сакраментальной кнопкой Пуск (она же Start). И сразу обретает бешенную популярность среди windows-профов (windows-профи в это время продолжают применять Windows 3.1/3.11 для офисных задач и NT 3.X – для задач всамделишних).

По закономерной случайности в это же примерно время Linux делает первую попытку обратиться лицом к пользователю в корпоративном его исполнении (LXF#150), а энтузиасты-линуксоиды начинают первую волну пропаганды своей любимой системы частным порядком, среди широких народных масс. А так как последние уже вкусили от прелестей кнопки Пуск, предпринимаются попытки обеспечить их таковой и в графических оболочках Иксов.

Отступление: про win-профи и win-профов. Вопреки устоявшемуся мнению, победное шествие Windows той линии, которую в фольклоре именовали «оболочкой дешёвой», началась не сразу с появлением Windows 95. Свидетельством чему – появившаяся в «Компьютерре» колонка тогдашнего её главного редактора, Георгия Кузнецова, о профи и профах. В которой прозвучала пророческая фраза (цитирую по памяти): «Профы поустанавливают Windows 95» дома, потом притащат её на работу, и профи придётся с этим разбираться.

Так оно и случилось. Хорошо помню время, когда на моей тогдашней службе проходила массовая замена незадолго перед тем внедрённой в качестве «фирменного стандарта» OS/2 на Windows 95 и затем на Windows 98. И проходила она по пожеланиям трудящихся. А поскольку среди трудящихся велик был процент не только простых докторов наук. но и академиков с член-коррами, пожелания эти по силе своей были близки к армейскому приказу.

Кстати, именно тогда мы впервые на практике массово применили Linux в условиях производственного десктопа. Оказалось, что самый быстрый и простой способ искоренения OS/2 – загрузка Linux'а с дискеты и запуск в нём команды # dd if=/dev/zero of=/dev/hda

В результате в 1996 году на свет божий появляется fvwm95 – весьма причудливая имитация интерфейса Windows 95. Она была образована из несколько облегчённого FVWM с прикрученной к нему панелью задач в win-стиле и, разумеется, кнопкой Пуск. Собственных средств его конфигурирования по прежнему не было, но настраивать стало легче, стало веселей. Потому что конфигурируемых параметров стало меньше, по сравнению с прототипом. В общем, на меня некогда этот оконный менеджер произвёл впечатление откровенной пародии – причём и на FVWM, и на Windows 95. Судя по тому, что он очень быстро сошёл со сцены – я был не одинок в своём мнении.

Однако дело кнопки Пуск не пропало. Его подхватили... и так далее, по Ульянову в скобках Ленину, разработчики других GUI, начиная с IceWM и кончая героями... Но о героях речь пойдёт в следующей главе. А здесь поговорим о IceWM.

Если fvwm95 выглядел поделкой, слепленной на скорую руку на потребу win-профам, IceWM, разработка Марко Мачека (Marko Maček), начатая им в 1997 году, производил впечатление продукта, сделанного не только с умом, но и с любовью. Кроме того, он был написан «с нуля», а не основывался на коде FVWM, хотя без идейного влияния последнего и не обошлось (в частности, в плане гибкости конфигурирования).

Основных особенностей, выделявших IceWM в ряду прочих оконных менеджеров (а я выше упомянул далеко не всех его современников – одних только эпигонов FVWM тогда существовало с полдюжины), изначально декларировалось три:

   • интуитивно понятный интерфейс (кто видел умолчальный FVWM, поймёт, о чём речь) с возможностью гибкой индивидуальной настройки (в этом отношении если IceWM и уступает FVWM, то не намного);

   • доступность полного функционала интерфейса с клавиатуры, без использования мыши, что для большинства современников было затруднительно: в те времена мне приходилось слышать высказывания, что в Иксах без мыши работать вообще невозможно; так вот, IceWM был живым их опровержением;

   • быстродействие и минимизация в использовании ресурсов.

Все эти цели были достигнуты – и плюс ещё ряд дополнительных. Например, хотя исходно предусматривалась только настройка IceWM традиционным путём правки конфигов (их довольно много, но они просты и понятны), очень быстро он был дополнен средством собственной настройки – графической утилитой IcePref. А простота создания тем для IceWM привела к тому, что таковых было создано много: кроме умолчальной стилизации под Windows 95, в сети можно было найти множество тем, воспроизводящих внешний вид OS/2, Motif и многих других систем. При наличии желания и толики свободного времени не составляло труда сделать и собственную тему.

Оконный менеджер IceWM продолжает своё развитие до сих пор: очередные его версии выходят не часто, ибо кардинально улучшать в нём уже нечего, но регулярно – в соответствие с необходимостью подгонки под новые версии библиотек, с которым он связан зависимостью. И, как уже было сказано, в сборках Xorg некоторых некоторых дистрибутивов IceWM сменил twm в качестве «умолчального» (или «аварийного») оконного менеджера, который может быть запущен, вне зависимости от наличия или целостности любых других графических сред.

Однако, как мы увидим в следующей статье, свет клином не сошёлся на линии FVWM и Windows-подобии. Напротив, наиболее яркие представители семейства оконных менеджеров представляли собой линии более иные.


    Ваша оценка произведения:

Популярные книги за неделю