Автор: Сергей Тихомиров (Sklif) [email protected]
«Не думай иначе - сам будь другим» - таков был девиз авторов операционной системы BeOS. Несмотря на то что компании Be Inc. давным-давно нет, ее детище до сих пор живет и работает на компьютерах пользователей. И не только живет, но и развивается.
Поначалу BeOS не была отдельным продуктом, она поставлялась с компьютером BeBox, и ее главной задачей было представить этот компьютер с наилучшей стороны. BeBox был ориентирован на домашний сектор и мультимедийные приложения, что не могло не отразиться на архитектуре операционной системы, проектировавшейся «с нуля». Следствием этого стали и интуитивно понятный графический интерфейс, и хорошо реализованная многозадачность, необходимая для стабильной работы с несколькими медиапотоками. Учли проектировщики операционной системы и то, что BeBox был многопроцессорным, - BeOS дает практически линейное увеличение производительности при использовании нескольких процессоров.
Во многом BeOS похожа на Mac OS, а Mac OS славится своим пользовательским интерфейсом. И это не случайно: обе системы решают схожие задачи, да и разработчики BeBox и BeOS ранее работали в Apple. В свое время BeOS чуть было не стала новой Mac OS - но не стала. Трудно сказать, к худшему это или к лучшему, - возможно, если бы сделка все-таки состоялась, мы лишились бы этой системы на PC.
Как известно, пользователя не нужно заставлять долго думать, как выполнить то или иное действие, - в идеале для решения любой задачи должно хватать повседневного опыта и логического мышления. И разработчики BeOS поставили себе цель - сделать интерфейс, сочетающий простоту и логичность. Насколько им это удалось, можно судить по следующим примерам.
Рассмотрим такую распространенную задачу, как копирование аудиодиска на компьютер. Пользователи Windows не раз меня спрашивали: «Почему я скопировал(а) файлы с компакт-диска, а они не играются?» Скопированы, конечно, были только имена треков (файлы с расширением cda), и приходилось долго рассказывать про специализированный софт, предназначенный для «ограбления» музыкальных CD. Как обстоит дело в BeOS? Открываем аудиодиск, видим файлы с расширением wav и переносим их на жесткий диск. Все! Никаких других программ не нужно[Справедливости ради скажем, что функция «ограбления» компакт-дисков в Windows XP все-таки есть. - Прим. ред.].
Другой пример: копирование файла. Что требуется сделать в Windows? Нажать на правую кнопку мыши и выбрать «Копировать»; перейти в нужный каталог, еще раз нажать на правую кнопку, выбрать «Вставить». Для выполнения этой операции приходится сделать не менее пяти кликов мышью, на деле гораздо больше. В BeOS: щелкаем правой кнопкой на нужном файле, наводим курсор на «copy to», и сразу же раскрывается список каталогов - остается только выбрать нужный и щелкнуть на нем левой кнопкой.
Еще одно достоинство BeOS - быстрота загрузки, при том что она не хранит список работающих устройств, а сканирует их на старте и автоматически запускает необходимые драйверы. В результате BeOS легко переносима - при подключении диска к другому компьютеру не требуется переустановка или, чего доброго, перекомпиляция.
Эта простота и логичность вкупе со стабильностью и скоростью работы действительно подкупает - такой подход в сообществе BeOS принято называть «BeOS-подходом». Его стараются применять и при разработке программ - так что часто возникают обсуждения на тему: «Нужно ли для BeOS портировать программы из других ОС?» Дело в том, что портированные приложения не показывают всей красоты и возможностей BeOS, и она становится похожей на другие системы. Мнения тут высказываются самые противоречивые.
Казалось бы, к чему все эти разговоры, если Be Inc. давно прекратила существование?
«Собор и Базар» в стиле BeOS
Надежда, однако, умирает последней. Перед самым банкротством Be Inc. немецкая компания YellowTab (www.yellowtab.com) выкупила у нее лицензию на выпуск собственной операционной системы на основе BeOS 5.1 «Dano» (так и не вышедший релиз). Вскоре немцы объявили, что их ОС будет продаваться под названием Zeta (прав на оригинальную торговую марку «BeOS» у YellowTab не было).
В то же время некоторые поклонники BeOS решили, что «спасение утопающих - дело рук самих утопающих», и задумали написать операционную систему, не просто основанную на тех же принципах и архитектуре, но даже бинарно совместимую с их любимицей. Так родился открытый проект OpenBeOS (OBOS), впоследствии переименованный в Haiku. В идеале должна была получиться система, неотличимая от BeOS R5. Учитывая модульную архитектуру, эта работа разделялась на несколько этапов, причем отдельные части новой системы можно было отлаживать на самой BeOS.
Итак, практически одновременно стартовали два проекта развития BeOS, но пошли они разными путями.
Количество разработчиков для BeOS всегда было небольшим, так что обе команды столкнулись с дефицитом людских ресурсов. Трудно сказать, кому из них было тяжелее. «Хайковцы» занимались системой для собственного удовольствия, и их доходы (до недавних пор) не были связаны с этой работой, так что к ним мог присоединиться любой человек, пожелавший выделить часть свободного времени. Совсем другое дело - профессиональные программисты. Им следовало десять раз подумать, прежде чем связать судьбу с операционной системой, перспективы которой были очень туманны. Поэтому нередко один и тот же человек работал в обеих командах: большей частью разработчики Haiku подрабатывали в YellowTab. И влияние этих двух систем друг на друга оказывалось очень большим. Неудивительно, что в Zeta используется множество наработок Haiku - прежде всего драйверы и приложения. В свою очередь, YellowTab занималась портированием открытых разработок из других ОС (в частности, из FreeBSD и Linux) и впоследствии, как и положено, открыла портированный код, так что теперь он может использоваться в Haiku.
Тем не менее эти проекты являются прямыми конкурентами, нацеленными на один и тот же рынок, - и кто выйдет победителем, пока неясно.
Текущий год стал переломным для обеих команд. YellowTab выпустила финальный релиз и начала продажи Zeta 1.0, а Haiku вплотную подошла к состоянию альфа-версии.
Шестая буква алфавита
Итак, минувшей весной YellowTab представила результат своего труда - Zeta 1.0. По заявлениям YellowTab, ей уже удалось продать 80 тысяч копий ОС (для сравнения заметим, что Be Inc. в свое время сумела продать только 60 тысяч копий BeOS), что стало следствием агрессивной рекламной кампании в ФРГ.
Что же представляет собой эта наследница BeOS.
Требования, предъявляемые Zeta, весьма демократичны: по минимуму нужен лишь процессор уровня Pentium 200 МГц и 32 Мбайт оперативной памяти, рекомендуется Pentium III 1 ГГц и 256 Мбайт памяти. Zeta требует для себя отдельный логический раздел, так что о нем стоит позаботиться заранее. Дальше можно загружаться с компакт-диска и начинать установку.
В самом начале инсталлятор просит указать желаемый язык интерфейса. Отрадно, что система хотя бы отчасти русифицирована - в основном силами , которое занималось переводом года два назад. Потом, правда, нашим «беосовцам» надоело ждать выхода периодически задерживавшейся Zeta, и они бросили это занятие. Похоже, с тех пор ничего не изменилось, поэтому многие меню не переведены или переведены не полностью. Сразу же бросается в глаза странный русский шрифт с широко расставленными буквами, так что многие надписи не влезают в отпущенное дизайнерами место. Но поначалу с этим можно смириться.
Есть три типа установки: полный, минимальный и выборочный. Для знакомства я выбрал полную установку. Она заняла минут 20-25, после чего я имел работающую систему, требующую только пользовательских настроек (рис. 1).
Оборудование на моем не самом древнем ноутбуке определилось без особых проблем, и Zeta приветствовала меня в цвете и со звуком. Однако для комфортной работы пришлось зайти в настройки системы, чтобы подобрать разрешение экрана: делается это в панели настроек, напоминающей аналогичный элемент рабочего стола KDE. Здесь же можно изменить параметры сети, локализации и т. д.
Zeta, как и BeOS, позиционируется в качестве системы для домашнего компьютера. А что чаще всего нужно обычному пользователю? Посмотреть фильм, послушать музыку, набрать текст (реферат, курсовую и т. п.), выйти в Интернет и поиграть. Что же предоставляет нам Zeta в этом плане?
Для просмотра фильмов есть MediaPlayer и DVD Player (рис. 3), причем последний на поверку оказался хорошо знакомым VLC[ ]. Кроме того, есть утилиты для конвертирования видео и простенький редактор VideoEditor. С музыкой проблем тоже не возникло, тот же MediaPlayer прекрасно справился с mp3 и wav. Отдельные программы позволяют проигрывать CD и midi-файлы. Единственное, что подкачало, - это отсутствие поддержки ogg, - особенно если учесть, что формат открытый и не новый и в BeOS он давно реализован в качестве кодека системы. Почему разработчики не включили его в состав Zeta, остается загадкой.
Для работы с Интернетом имеется порт Firefox (рис. 5), который позволяет привыкшим к нему юзерам почувствовать себя в родной стихии. Также есть ICQ, менеджер закачек и e-mail-клиент.
Вместе с Zeta поставляется полная версия офисного пакета Gobe Productive (рис. 6), включающая текстовый редактор, электронные таблицы и другие привычные инструменты. Имеется даже некоторая совместимость с форматами MS Office - вот только последняя версия Gobe Productive вышла в 2000 году и уже несколько устарела. Кроме того, в состав Zeta входят средства для чтения pdf, записная книжка и пр.
Остаются игры. Их немало, но все давным-давно известные: Zeta подойдет скорее для ностальгирующих геймеров. Здесь вы найдете кучу простеньких игрушек, а также можете скачать из Интернета первые части Doom, Quake 1 и 2, игрушки серии Elite. Есть также несколько эмуляторов, таких как DOSBOX, в которых можно запускать некоторые DOS’овские игры. Недавно появился порт эмулятора компьютера ZX Spectrum, благодаря чему стало доступным богатое игровое наследие этой платформы.
Итак, Zeta поставляется с довольно внушительным набором программ. Однако большую часть из них можно найти еще в старых версиях BeOS. Что же Zeta дает нам нового?
Прежде всего - возможность локализации приложений, которая реализована на уровне системы. Специально для этого был выпущен программный набор LocaleKit - он должен помочь разработчикам писать мультиязычные приложения, что, безусловно, является необходимым требованием в наш глобальный век.
Стоит упомянуть и модернизированное ядро системы. Не секрет, что BeOS не очень хорошо работала на компьютерах с процессорами последних моделей. Zeta лишена этого недостатка. Впрочем, у нее до сих пор остается предел используемой памяти в 728 Мбайт: она умеет работать на машинах и с бо’льшим объемом оперативки, но использовать будет только чуть меньше гигабайта.
Также расширена аппаратная поддержка - правда, это не совсем заслуга команды YellowTab, большая часть драйверов взята из Haiku. Добавились и некоторые полезные программы, вроде утилиты для записи CD под названием JABBA, сменившей не всегда стабильно работающий Helios.
Копнув глубже, мы наткнемся и на некоторые не очень приятные нововведения. Структура каталогов изменилась, что может привести к тому, что программы, написанные под Zeta, не будут работать под BeOS/Haiku. Более того, библиотека libzeta.so во многом дублирует стандартную библиотеку libe.so, описывающую функции для работы с AppServer. Следовательно, приложения, написанные с использованием этой библиотеки, тоже не будут работать под BeOS. Не знаю, насколько это было продиктовано необходимостью, - больше похоже на маркетинговый ход, искусственную попытку нарушения совместимости с BeOS R5 PE/Haiku, сделанную для победы в конкурентной борьбе.
Подводя итог, можно сказать, что Zeta - вполне целостная система, которой в наследство от BeOS достались многие плюсы, такие как быстродействие, стабильность и пользовательский интерфейс. Однако с выходом она запоздала. Если в 2000 году BeOS во многом была лучше Windows, то теперь Zeta находится в стане догоняющих. Впрочем, все шансы «догнать и перегнать» у нее есть, и дело здесь за малым: нужна лишь поддержка независимых разработчиков.
Zeta очень не хватает современного офисного пакета, который мог бы сделать ее прекрасной офисной системой. Правда, YellowTab сейчас занимается портированием OpenOffice 2, что не может не радовать пользователей (хотя это и не «путь BeOS»). Будем надеяться, что появится и коммерческий пакет - по словам YellowTab, этим тоже занимается один из производителей ПО.
Уже летом YellowTab выпустила первое обновление системы до версии 1.1, что говорит о внимательности компании к мнению пользователей и желанию работать над ошибками.
Для тех, кто не хочет покупать кота в мешке, есть Zeta 1.1 LiveCD - запускаемый с компакт-диска вариант, в котором вы увидите не весь набор ПО, а только демо-версии.
Немного японской поэзии
Пожалуй, сейчас уже можно с уверенностью говорить о существовании ОС под названием Haiku - она перешла ту грань, за которой код становится работающей программой. Теперь это не набор отдельных модулей, а система, способная загружаться без посторонней помощи (в том числе и с CD) и поддерживающая Hyper-Threading и многопроцессорные системы.
Желающие могут поэкспериментировать с ней уже сейчас. Каждые шесть часов на сайте разработчиков haiku-os.org выкладывается последняя сборка Haiku в виде образа диска, который можно запустить или на виртуальной машине (QEMU), или на реальной - перенеся образ на винчестер и загрузившись с него. К сожалению, в виртуальной машине система работает очень нестабильно, хотя немного «поковыряться» можно и там. Для запуска Haiku на реальной машине потребуется иметь уже установленную BeOS, чтобы подготовить раздел для установки и перенести Haiku с образа диска на реальный диск. Еще можно скачать последний вариант исходников Haiku и самому скомпилировать их, например, в Linux.
Я выбрал первый вариант - он оказался самым простым, поскольку BeOS у меня уже стояла. Достаточно было создать раздел bfs[Файловая система, используемая в BeOS], подмонтировать образ диска Haiku при помощи утилиты imagemounter и скопировать все файлы с подмонтированного диска в этот раздел. Можно загружаться! Честно говоря, не ожидал, что после таких простых действий все заработает, но, как оказалось, тревожился я зря. Haiku запустилась (рис. 8) и порадовала меня своим рабочим столом (даже в цвете!) и открывшимся окном терминала[Haiku, как и BeOS, - система со встроенным графическим интерфейсом, и для работы с командной строкой требуется запустить терминал].
Как видим, интерфейс пока очень аскетичный, но мы это исправим. Структура каталогов в Haiku такая же, как и в BeOS, так что мы без труда можем найти и запустить два основных приложения: Tracker (менеджер файлов) и Deskbar (панель задач).
Ну вот, теперь чувствуем себя совсем как в BeOS (рис. 9).
Продолжим. Оказывается, здесь не так уж мало стандартных программ: впрочем, бОльшая их часть была написана для повторения функциональности BeOS и тестирования работы системы (рис. 10). Однако главная цель Haiku - создание ОС, бинарно совместимой с BeOS R5. Как видно из рис. 11, Haiku с этим уже частично справляется. Также отметим, что множество приложений из BeOS доступны в исходном коде, и с портированием трудностей возникнуть не должно. Как правило, достаточно перекомпиляции.
Теперь поговорим об отличиях. Haiku уже сейчас сделала несколько шагов вперед по сравнению с BeOS R5. В частности, появился новый сетевой стек, основанный на сетевом стеке FreeBSD, а также новый USB-стек. В Haiku в настоящий момент пишутся API для работы с OpenGL 1.5 (BeOS поддерживала только версию 1.1). Драйверы Haiku для видеокарт с графическим процессором от nVidia поддерживают аппаратное 3D-ускорение. Также во второй версии этой операционной системы планируется использовать третью и четвертую версии компилятора gcc, что предоставит разработчикам более широкие возможности.
Пути развития
Итак, мы рассмотрели две системы, которые претендуют на звание наследниц BeOS. Давайте попробуем сравнить если не сами разработки (это пока преждевременно, учитывая альфа-статус Haiku), то по крайней мере выбранные подходы.
Zeta в полной мере демонстрирует эволюционный путь развития системы. Наверное, такой или похожей была бы BeOS R6, если бы Be Inc. продолжала ею заниматься. Однако, похоже, YellowTab не поспевает за развитием компьютерной индустрии. По сути, Zeta (с небольшими улучшениями) осталась на том же уровне, что BeOS в 2001 году, а на дворе уже 2005-й. Zeta идет по пути коммерческого ПО и поэтому в меньшей степени руководствуется подходами BeOS, что может привести к загромождению кода и программ.
А вот Haiku можно назвать перерождением BeOS в полном смысле слова. Система полностью написана «с нуля». Почти готов уникальный API, позволяющий писать очень эффективные программы с графическим пользовательским интерфейсом. Расширена аппаратная поддержка.
Что можно ожидать в будущем? Мне видятся два варианта дальнейшего развития событий:
1. Zeta будет все меньше и меньше совместима с Haiku, чтобы коммерческие приложения, способные заинтересовать корпоративного клиента, не работали под управлением конкурирующей ОС. Однако команде Haiku ничто не мешает написать модули совместимости с Zeta - благо возможности для этого есть. Более того, наверняка появятся желающие перенести Haiku на другую аппаратную платформу (уже идут разговоры о Mac [PowerPC] и PlayStation 3), что может способствовать популярности системы. Для Zeta с ее закрытым кодом и ограниченными ресурсами это менее вероятно.
2. С выходом Haiku YellowTab подключается к работе над нею, используя собственные наработки, осуществляет поддержку корпоративных пользователей этой системы - то есть перестраивается на бизнес-модель, используемую поставщиками open source-решений.
Второй путь был бы, наверное, идеальным для нас, потребителей. Но, как говорится, поживем - увидим.
BeLinux?
Haiku не единственный открытый проект, нацеленный на создание BeOS-подобной операционной системы. Другая инициатива в этом направлении - система , основанная на ядре Linux. Она не является «клоном BeOS» в полном смысле слова - автор не ставил честолюбивых целей добиться бинарной совместимости, так что для запуска BeOS-программ под Cosmoe потребуется как минимум перекомпиляция. Хотя разработка практически свернута (последний релиз датируется декабрем 2004 года), кое-какая активность в списке рассылки все же наблюдается, - так что не исключено, что в будущем мы увидим несколько открытых операционных систем, основанных на идеях Be Inc.
В исследовании Haiku автору помогал Герасим Троеглазов, разработчик таких программ для BeOS, как Djvu Viewer и словаря Paradigm.