BeOS для РС — еще одна альтернатива

23 июль, 1998 - 11:15Андрей Зубинский

Продолжая публикацию архива нашего издания, предлагаем вашему вниманию статью из №28 (147) «Компьютерного Обозрения» от 23 июля 1998 г. Двадцать лет назад выбор операционных систем был не очень велик, поэтому появление BeOS вызвало большой энтузиазм. К сожалению, эта ОС не смогла завоевать рынок и в последствие была куплена Palm и ее разработчики заметно повлияли на webOS, которая все еще на рынке. Кроме того, в сентябре этого года вышел релиз Haiku OS, которая принадлежит семейству BeOS.

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

Вот такая безрадостная сказка, которая, впрочем, еще не закончена. Любая тоталитарная система, в том числе и информационная, неизменно сталкивается с растущей Стеной, имя которой — индивидуализм. Десятки миллионов не хотят быть «как все», не хотят быть Просто Пользователями. К радости индивидуалистов, в Стену основательно уложена новая глыба, монолитная и совершенная, как блоки египетских пирамид, — операционная система BeOS (Be Operations System; несколько возвышенный, но наиболее нравящийся автору перевод, — операционная система бытия). Однако перейдем от пафоса к чему-то конкретному.

КРАТКАЯ ИСТОРИЯ BE (БЫТИЯ)

В 1990 г. Жан Луи Гасси (Jean-Luis Gassee), бывший руководитель группы разработки программных продуктов фирмы Apple, до этого работавший в компаниях DataGeneral и 3Com, основал новую фирму — Be Inc. Небольшая фирма поставила перед собой на первый взгляд совершенно нереальные по сложности задачи — создание принципиально новой аппаратно-программной платформы симметричной мультипроцессорной архитектуры для эффективного решения мультимедийных интерактивных задач. Ключевые посты в новой компании заняли люди, хорошо известные в большом компьютерном бизнесе вице президентом стал Эрик Рингвальд (Erich Ringevald) (проработавший шесть лет в Apple, до этого — ведущий системный архитектор фирмы Tecmar), Алекс Осаджински (Alex Osadzinski) — экс-вице-президент Tektronix, MIPS и европейского под разделения Unix-систем AT&T. Молодая, агрессивная и вооруженная опытом небольшого штата сотрудников (на сегодняшний день их всего 52) компания Be громогласно заявила о себе в 1997 г выпуском одновременно двух новых продуктов — ВеВОХ и BeOS. Всего за семь лет в Be сделали почти невозможное, и сделали это просто превосходно. Пусть на сегодняшний день платформа ВеВОХ уже официально «похоронена», однако операционная система BeOS активно развивается как самой компанией Be, так и сообществом независимых разработчиков.

BeOS для РС — еще одна альтернатива

BEBOX — ПЕРВЫЙ БЛИН КОМОМ?

Разработчики компании Be абсолютно правильно полагали, что для достижения качественно новых показателей компьютера необходимо в первую очередь совершенствовать его архитектуру. Верным был и выбор подходящей архитектуры — симметричной мультипроцессорной, как самой недорогой. простой в управлении распределением ресурсов и производительной. Вероятно, единственной серьезной ошибкой в проекте ВеВОХ был выбор элементной базы/ Изначально ориентированный на процессоры PowerPC (далеко не самые производительные и дешевые, практически не имеющие клонов), проект ВеВОХ был обречен. Довольно хорошие рабочие характеристики двухпроцессорной системы никак не оправдывали ее стоимости (около $3000). Ситуация усугублялась и «детской болезнью» всех новых архитектур — отсутствием даже минимально необходимого набора программного обеспечения на стартовом этапе.

Однако печальная судьба ВеВОХ на сегодняшний день не кажется столь уж очевидной. Бесспорно другое — серьезная ошибка на этапе проектирования практически лишила нас возможности стать владельцами рабочих станций с огромной производительностью по цене обыкновенного ПК среднего класса. «Настоящий» ВеВОХ должен быть действительно мультипроцессорным (например, до восьми или даже шестнадцати чипов) с использованием дешевых RISC-процессоров сравнительно невысокой тактовой частоты. На роль последних сегодня могут претендовать, например, ЦПУ фирмы Advanced Risc Machines (ARM) и совместно разработанные ARM-Digital Equipment чипы StrongARM с совершенно уникальным соотношением цена/производительность (модель StrongARM 233 MHz стоимостью $40 имеет производительность, практически равную Intel Pentium 233 MHz). Кроме того, не исключено, что оптимальным решением в данном случае является использование чипов 100 MHz и шины с такой же тактовой частотой , что исключает потребность во внешней кэш-памяти (оперативная память уже работает на 100 MHz).

BeOS для РС — еще одна альтернатива

Единственная сложность на этом пути — создание относительно недорогой мультипортовой оперативной памяти, допускающей одновременное выполнение нескольких операций чтение/запись. Это позволит добиться огромной пропускной способности подсистемы оперативной памяти и, соответственно, всей архитектуры в целом. Мы немного отклонились от темы в рассуждениях об архитектуре, однако изложенное лишь подтверждает, что история ВеВОХ может получить в ближайшем будущем продолжение и, может быть, совершенно неожиданное.

Начинать знакомство с BeOS методом сравнения с другими операционными системами весьма непросто. Во-первых, с «массовыми» MS Windows 95/98 ее соотнести нельзя, точнее, неэтично по отношению к Microsoft (если производить сравнение MS Windows-BeOS с позиции программиста). Более целесообразно сопоставление с Linux и «родственной» с BeOS системой NEXTStep (также, кстати, имеющей косвенное отношение к Apple). Но перейдем от слов к делу и попытаемся сравнить.

  • BeOS — полностью 32-разряд-ная операционная система, доказавшая свою переносимость, на сегодня существуют две полнофункциональные версии для процессоров PowerPC и процессоров Intel. MS Windows 95/98 — частично 32-разрядная даже на уровне ядра операционной системы, а о мобильности ее ничего не известно. Linux — также полноценная 32-битовая ОС, реализованная на самых разных платформах.

  • BeOS — объектно-ориентированная операционная система со строго определенной архитектурой. В основе системы лежит микроядро (обещанное когда-то Microsoft в Windows NT), что как существенно упрощает операционную систему, так и увеличивает ее производительность Linux также имеет строго определенную и логичную архитектуру, отлично зарекомендовавшую себя во всех реализациях систем Umx-семейства Об архитектуре MS Windows 95/98 вряд ли можно сказать что-то конкрет ное, скорее, напрашивается вопрос «А есть ли вообще та ковая7».

  • BeOS — это воплощение архитектуры взаимодействующих по принципу клиент-сервер потоков на внутренних уровнях операционной системы. Linux -также архитектура взаимодей ствующих процессов. MS Windows 95/98... в общем, там какая-то другая архитектура.

  • BeOS (как и Linux) поддерживает так называемую виртуальную файловую систему, позволяющую смонтировать в единую систему каталогов файловые системы различной организации и в дальнейшем не замечать различия между ними. Кроме того, «родная» файловая система BeOS −64- разрядная с журнальной организацией и интегрированной подсистемой атрибутов/индек-сов файлов. 64-разрядность обеспечивает работу с файлами любых размеров, журнальная организация — безукоризненную гарантию надежности файловой системы (и, вообще, была свойственна только специализированным серверам для Mission Critical Application). Windows 95/98 радует нас только старой доброй FAT16 или непринципиально модернизированной FAT32.

ЧТО ЖЕ ТАМ ВНУТРИ?

Внутренняя архитектура BeOS изображена на рис. 1. Наиболее важные элементы архитектуры — микроядро и серверы. О самом микроядре практически ничего не известно, кроме того, что оно есть, однако очень основательны подозрения в принадлежности его к семейству Chorus, ведь именно микроядро этого семейства успешно использовалось в системе NEXTStep. Эти подозрения еще более подтверждаются мощной поддержкой потоков последними версиями Chorus. Концепция микроядра и ее реализация в проекте Chorus предусматривают со здание «минимальной операцион -ной системы», обеспечивающей только необходимые механизмы управления процессами, памятью и межпроцессным обменом. Микроядро создается на языке высокого уровня и существенно сокра щает машинно-зависимую часть операционной системы Более по дробную информацию о микроядре можно получить, обратившись на www.chorus.com.

О серверах BeOS известно немного больше В части программной реализации сервер — это объект некоторого класса-потомка базового класса «сервер».

BeOS для РС — еще одна альтернатива

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

Особое внимание следует уделить сквозной мультипоточности BeOS — от уровня микроядра до уровня прикладных программ. Полноценная мультизадачность (называемая также вытесняющей) присуща, конечно же, не только BeOS: она отлично реализована во всех Unix и их клонах. Но концепция вытесняющей мультизадачности основана на понятии процесса — программы, исполняемой в своем защищенном виртуальном адресном пространстве. Порождение нового процесса, столь просто осуществляемое в Unix (одним системным вызовом fork), — операция достаточно ресурсоемкая и продолжительная (конечно, в терминах времени центрального процессора).

Потоки — это как бы подпроцессы, исполняемые в рамках одного и того же процесса. На их организацию не требуется значительных затрат ресурсов, что позволяет существенно сократить время реакции системы в целом. Потоки не являются чем-то принципиально новым в операционных системах. Они реализованы в Unix и в MS Windows. Но эти системы не являются поточно-ориентированными, и ни одна из них не имеет внутренней архитектуры клиент-сервер, где в качестве клиента выступает микроядро.

BeOS для РС — еще одна альтернатива

Потребителю информационных услуг, вообще говоря, безразлично, поддерживает ли его операционная система потоки, основана ли она на микроядре и т. д. Однако высокий профессиональный уровень системных архитекторов -создателей операционной системы — сказывается как на живучести ОС в целом, так и на разнообразии прикладного программного обеспечения, работающего под управлением ОС. Лучшим примером этого является ОС Unix, на сегодняшний день больше представляющая концепцию, чем конкретный программный продукт. По изяществу архитектуры, стройности и определенности всех архитектурных элементов BeOS смело можно назвать системой завтрашнего дня.

АФФЕКТ ОТ ЭФФЕКТА...

Благодаря любезно предоставленному компанией Be Inc. дистрибутиву BeOS версии 3.0 у автора появилась возможность попробовать операционную систему в действии. Сегодня владельцам лицензии на BeOS v.3.0 доступен для бесплатной загрузки upgrade к версии 3.1, который также был испытан.

Итак, начнем с выбора конфигурации компьютера, на который устанавливается BeOS. Незнакомая и «молодая» операционная система предполагает отсутствие драйверов для очень многих компонентов, поэтому остановимся на стандарте де-факто прошлого года: процессор Intel Pentium 166 MHz, материнская плата Asus ТХ97, оперативная память 32 МВ, видеокарта S3 Trio 64V+ 2 МВ.

Инсталляция BeOS на ПК подобной конфигурации доставит удовольствие кому угодно: длится она две-три минуты и практически не требует вмешательства. Но это только в том случае, если BeOS устанавливается на «чистый» винчестер или вместо любой другой ОС. Если же воспользоваться автоматически запускаемой с дистрибутивного диска утилитой Partition Magic и попытаться установить систему в созданный с помощью этой утилиты раздел на диске с Windows 95, то проблемы и головная боль гарантированы. Еще хуже обстоит дело с Windows NT: короткая и приятная процедура инсталляции превращается в длительную пытку, в конечном итоге, почти всегда заканчивающуюся переформатированием винчестера. Поэтому целесообразно использовать под подобную систему отдельный диск. Кроме того, потенциальные пользователи могут столкнуться с неразрешимыми проблемами при попытке инсталляции на ПК с процессорами Кб и IDT. Причина заключается в следующем: BeOS на все 100% использует аппаратную поддержку виртуальной памяти — одну из самых «неприятных» для производителей клонов подсистем процессора.

Первое, что поражает в ходе инсталляции, быстродействие файловой системы. Инициализация накопителя (так в BeOS называется процедура форматирования) проходит неправдоподобно быстро. Настолько быстро, что начинаешь сомневаться: а было ли форматирование вообще? Копирование 150 МВ файлов (собственно операционная система и поставляемые в дистрибутиве приложения) также почти не отнимает времени (правда, использовался 34х CD-ROM).

После инсталляции система перезагружается (всего один раз в ходе установки). При первой загрузке сразу обращаешь внимание на время. BeOS — абсолютный чемпион по скорости загрузки среди Linux, MS Windows 95/98 и NT. Кроме того, в ходе кратковременной процедуры загрузки можно «в последний раз» насладиться зрелищем текстового режима видеокарты. BeOS не поддерживает текстового видеорежима (если точнее, в ней он не используется, однако возможность заставить видеокарту работать в текстовом режиме из приложения, в принципе, есть).

Основная «область взаимодействия» пользователя и BeOS — рабочее пространство (в терминах BeOS) — возникает на экране сразу после загрузки. Рабочее пространство — это аналог рабочего стола в MS Windows. Первое существенное отличие от Windows: рабочих пространств может быть несколько (до девяти). Подобной организацией обладают и X-Windows (правда, фактически без ограничений на число пространств), но и здесь BeOS заметно отличается: каждое рабочее пространство может быть сконфигурировано со своим разрешением, глубиной цвета и частотой развертки. Диапазон поддерживаемых разрешений очень широк: от 640×480 (практически неприменяемого) до 4800×3600 с глубиной цвета от 8 до 128 бит на пиксел. Сразу следует предупредить, что для полноценного использования возможностей рабочих пространств необходима трехкнопочная мышь, в противном случае невозможно будет перетаскивать открытые окна с одного рабочего пространства в другое. Открывать же окна в различных рабочих пространствах можно с помощью обычной мыши или клавиатуры.

BeOS для РС — еще одна альтернатива

Главным элементом рабочего пространства является окно программы Tracker. Концептуально оно очень сильно похоже на TaskBar Windows 95: та же кнопка «Пуск» с названием «Ве», те же индикаторы активных задач. По умолчанию все это располагается в правом верхнем углу экрана, по желанию его можно поместить где угодно. Окно Tracker — одно из немногих, автоматически появляющихся при переключении в любое рабочее пространство.

Несмотря на достаточно сильную схожесть с MS Windows 95 в части взаимодействия с системой, что дает возможность практически сразу же начинать работу, в остальном BeOS отличается просто разительно. Первое, что бросается в глаза, — это великолепная реализация мультизадачности и мультипоточности во всей системе: окна, в которые направляется графический вывод, «перетягиваются» по экрану, при этом вывод в них продолжается, одновременно с этим происходит копирование с CD-ROM на винчестер и, что самое неожиданное, форматирование дискеты (!). Интересные результаты показал небольшой эксперимент: при запуске одновременно нескольких одинаковых ресурсоемких приложений был исследован характер снижения производительности системы. В качестве ресурсоемких приложений использовался стандартный тест OpenGL «вращающиеся чайники». Деградация производительности оценивалась с помощью маленькой программки на С, бесконечно выводящей одну и ту же строку. Только после запуска пятого OpenGL-теста при снижении скорости вывода в каждом тесте до трех кадров в секунду тест вывода строки заметно замедлился. При использовании утилиты Монитор возможностей (Performance Monitor) в ходе этого теста также выявилось много интересного, в частности, очень низкая загрузка процессора непосредственно операционной системой и графической оболочкой.

Мы предприняли попытку серьезно испытать и файловую систему BeOS. Для проверки надежности в системе запускались одновременно 20 процессов, взаимодействующих с разными аппаратными устройствами компьютера. А затем... просто выключалось питание. После загрузки компьютера мы проверяли целостность файловой системы. Подобную процедуру повторили десять раз подряд, после чего не было обнаружено ни одного потерянного кластера, а при загрузке или в ходе работы не произошло ни одного сбоя

Администрирование BeOS осуществляется посредством графического интерфейса предельно просто. Глубина погружения в «оконное дружелюбие» практически всегда не превышает двух: для того, чтобы что-то сделать, больше двух окон последовательно открывать не нужно.

Встроенные (в Windows — поставляемые с системой) приложения не отличаются разнообразием, однако почти все самое необходимое здесь есть: аналог Проводник/Explorer, броузер Internet (с поддержкой Java и VRML), очень понятная, простая и удобная почтовая программа, графическая оболочка для упаковщиков/распа-ковщиков, все, что нужно для мультимедиа, редактор пиктограмм, простой графический редактор, текстовый редактор и т.д.

В BeOS реализованы OpenGL, виртуальная Java-машина с поддержкой технологии Just-In-Time (компиляция Java-кода в машинные коды «на лету»). Однако аппаратная акселерация OpenGL практически не поддерживается: в последней версии ОС появился единственный драйвер для видеокарт ATI 3D.

Естественно, после первых впечатлений от работы с BeOS захотелось «научить» ее великому и могучему русскому языку. Процедура эта оказалась также не сложнее всего прочего. BeOS работает с кодировками символов Unicode. Программа конфигурирования клавиатуры позволяет выбрать русскую «раскладку» клавиш (например, йцукен), и после этого нужно только установить Unicode TTF-шрифты. Неприятность здесь только одна — неудобство переключения между регистрами рус-ский/латинский.

Тем, кто решит попробовать BeOS в качестве второй ОС после Unix-клонов, непременно захочется получить доступ к старой и доброй командной строке. В BeOS эта возможность есть: достаточно запустить приложение Terminal, и сразу окунаешься в знакомый интерпретатор bash. Вообще, в BeOS достаточно сильны Unix-корни, это заметно при просмотре директории bin/: большинство находящихся здесь утилит наверняка покажутся знакомы всем, кто имел дело с Unix.

BeOS для РС — еще одна альтернатива

О графической подсистеме BeOS также нет исчерпывающей информации, известно, что она базируется на некоторых концепциях X-Windows, однако исходные тексты последней в ней не используются. Как и вся BeOS, ее графическая подсистема (называемая ВеХ) — объектно-ориентированная и мультипоточная. С одной стороны, такой подход фирмы Ве позволил создать очень быструю графическую подсистему, с другой, - существенно ограничил удобство портирования приложений с других платформ (в первую очередь, с Unix и Linux) и несколько сократил возможности самой BeOS, в частности. ВеХ не поддерживает протоколов удаленного взаимодействия. Впрочем, для персонального компьютера это. может быть, и не нужно, зато упрощение графической подсистемы значительно повысило скорость. По быстродействию графической подсистемы BeOS является бесспорным лидером, с большим отрывом оставляющим позади Linux/X Windows и MS Windows 95/98 Создателей программного обеспечения — первой потенциально заинтересованной в BeOS категории — ждет некоторое разочарование. Такого обилия мощных средств разработки, как в Linux, для BeOS не найти. Существует портированная в BeOS интегрированная среда разработки (IDE) компании MetroWerks для языков С и C++, вездесущий и надежный компилятор C/C++ GNU -вот почти и все. Зато документация по всей операционной системе, включая системные вызовы, механизмы взаимодействия процессов и потоков, библиотеки классов, отличная Выполненная в HTML-формате, она предельно информативна и удобна. Под стать ее качеству и почти библейское название — ВеВООК («Книга Бытия»).

В общем, первые впечатления от работы с BeOS вызывают состояние аффекта: похоже, что у старенькой Pentium-машины вдруг открылось второе дыхание мегагерц этак на сто.. А саму ОС через час вообще перестаешь замечать ~ лучшее, чего можно ожидать от операционной системы.

ДЛЯ КОГО И ЗАЧЕМ ВСЕ ЭТО?

BeOS хороша для фанатов Internet — Web-серферов, но не у нас: все ее скоростные достоинства, VRML/OpenGL и прочее, будут сведены на нет пропускной способностью отечественных каналов связи.

BeOS — отличный инструмент для разработчиков коммерческого программного обеспечения операционная система «молодая», перспективная и очень удобная для программиста.

Из BeOS может получиться великолепный сервер для рабочей группы, но для этого надо портировать некоторые Unix-приложения, зато высочайшая производительность и надежность файловой системы полностью оправдают эти затраты.

BeOS ~ отличный выбор для Internet/intranet-серверов благодаря своей мультипоточной организации. Чисто теоретически на сегодняшний день ни одна операционная система не может сравниться с BeOS по быстродействию на подобных задачах.

Ну и наконец, BeOS — второй достойный «учебник» после Unix, на котором можно вырастить целое поколение профессиональных и талантливых программистов.

 

ГДЕ И КАКОЕ ПО ЕСТЬ ДЛЯ BEOS?

Весьма обширный перечень ссылок на различные сайты: http://www.yahoo.com/Computers_and_Internet/Software/Operating_Systems/BeOS/

Загляните на http://www.bedepot.com

Но, пожалуй, самый интересный сайт (более 250 наименований загружаемого freeware/shareware) — http://www.be.com/beware/index.html

СКОЛЬКО СТОИТ BBOS?

На сегодняшний день чуть меньше $100 (продукт можно заказать через Web).

 

Ложка дегтя, или Почему я выбрал все-таки Linux... пока

Замечательная система эта BeOS... Как явление, возможно, третье по значимости после Unix и X-Windows. Но...

  1. BeOS — коммерческое программное обеспечение без надежды на переход в категорию shareware (о freeware и речи быть не может: не позволяет лицензированное микроядро). А это в наше время — отнюдь не достоинство (вспомните недавнюю акцию Netscape с полным открытием исходных текстов Communicator и переводом его во freeware).

  2. Из пункта 1 следует, что поддержку системы Be Inc. возлагает, в основном, на себя. Ну и когда я дождусь драйвера для любимой видеокарты #9 Imagine 128? А для Linux фирмой Xi Graphics производится замечательный Accelerated X-Windows с поддержкой более 500 самых свежих видеокарт, OpenGL с аппаратной акселерацией «на чем угодно» и Common Desktop Environment CDE — то, что, вероятнее всего, будет в «той самой ОС» для LA-64.

  3. Я знаю, кто является пользователем Linux: студенты. инженеры, ученые, программисты. Поэтому хорошо понимаю, что нужно писать под Linux, чтобы это хоть кого-то заинтересовало. Сейчас сложно определить, кто будет пользователем BeOS, а программа, написанная «вообще», обречена.

  4. Для Linux у меня есть такой набор средств разработки. что самое трудное — выбрать. К сожалению, под BeOS нет даже реализации Tcl/Tk, а «ковыряться» в классах и потоках с графическим интерфейсом крайне неэффективно.

  5. BeOS проще Linux, а «просто» и «неинтересно» со временем становятся синонимами.