23 сентября 2015 г.

История операционной системы BeOS (мамы Haiku)

Рубеж 80-х и 90-х годов - особенная эпоха для настольных ПК. Различные компании предпринимали последние попытки войти на этот рынок. Перед тем как Microsoft встала «у руля» на два с лишним десятилетия, успели выйти самые оригинальные и удивительные проекты. Одним из них была BeOS - уникальная система, значительно опередившая свое время и оказавшая большое влияние на индустрию IT.

1990 - 1993: Быть смелым

Компанию Be Inc. основал Жан-Луи Гассе (Jean-Louis Gasse) в 1990 году. В прошлом - руководитель представительства Apple во Франции, чуть позже занял должность начальника всех исследовательских и производственных подразделений компании. На его счету такие продукты, как Mac Plus, Macintosh II и Macintosh SE, что уже говорит о многом. Итак, покинув «яблочную» компанию с суммой 1,7 миллиона долларов, он занялся созданием совершенно нового компьютера, который, по его мнению, мог бы оставить след в истории IT-индустрии наравне с IBM PC и Macintosh. Тем более на слуху был успех Commodore, Silicon Graphics и других, поэтому идея не выглядела такой безумной, как может показаться сегодня.

Жан-Луи Гассе, основатель Be Inc.
Жан-Луи Гассе, основатель Be Inc. Его темпераменту BeOS обязана как своей интересностью, так и своей печальной судьбой.
Поначалу небольшая компания Гассе состояла из нескольких человек, но это с лихвой компенсировалось их талантами. За железную начинку отвечал Стив Сакоман (Steve Sakoman), один из бывших сотрудников Apple, создатель проекта Newton - первого карманного персонального компьютера в мире. За год упорной работы им удалось собрать первый прототип, который они назвали BeBox. Он базировался на весьма экзотическом железе для персонального компьютера: два процессора Hobbit по 20 МГц от фирмы AT&T и три цифровых вспомогательных сигнальных процессора (DSP), которые отвечали за обработку звуковых и видеоданных. Остальные комплектующие было решено использовать стандартные, IBM-совместимые. Основной особенностью BeBox было его быстродействие, стабильность системы и расширяемость мультимедийных возможностей, ведь его позиционировали именно как мультимедиасистему.

Компьютер BeBox
Be Inc. начали, как тогда еще было принято, с железа, а не софта. Так родился BeBox.
После того как разработчики заполучили достаточно мощную и работоспособную железную основу, пришло время выбрать операционную систему с графическим интерфейсом. Гассе пригласил на работу программистов Боба Герольда (Bob Herold) и Эрика Рингвальда (они тоже выходцы из Apple), а также Бенуа Шиллингса (Benoit Schillings). Основные требования, которые предъявляли к ОС, были следующими: поддержка многопроцессорной конфигурации; файловая система, которая поддерживала бы работу с большими мультимедиафайлами; стабильность; удобство и доступность для пользователей. Была попытка внедрить ОС NeWS от Sun Microsystems, но она не увенчалась успехом. В связи с этим было решено начать разработку собственной операционной системы, которая удовлетворяла бы всем требованиям.

Так как архитектура BeBox была родной и хорошо знакомой для разработчиков, то многозадачная операционная система BeOS удалась, как говорится, на славу. Ее быстродействию и надежности могли позавидовать многие. Операционная система была создана с чистого листа и не несла багажа устаревающих технологий. Чего нельзя было сказать о Windows, с ее наследием в лице устаревающей MS-DOS (хотя, конечно, уже появился WinNT).

Несмотря на то что BeOS получилась почти UNIX-совместимой и на нее можно было портировать программы из Linux, все же графический интерфейс был вшит в ядро. В конце 1991 года к Be Inc. примкнул Сирил Меуриллон (Cyril Meurillon), который начал работу над ядром для BeOS. В это же время в проект пригласили Доминика Джампаоло (Dominic Giampaolo), автора знаменитой файловой системы BFS. Бенуа Шиллингс совместно с Домиником написали первую версию графической подсистемы BeOS, которая позднее превратится в главную часть системы - AppServer. 1993 год ознаменовался выходом первой тестовой версии BeOS DR1 (Development Release). Уже через год вышла версия DR2, в которой добавили поддержку SCSI-дисков, и система обзавелась средствами разработки приложений. Можно выделить ключевые особенности операционной системы BeOS, которые выгодно отличали ее от конкурентов:

BeOS была построена на микроядерной архитектуре. Система состояла из микроядра и различных серверов, которые отвечали за выполнение отведенных им функций.

API (интерфейс программирования приложений) BeOS был объектно-ориентированным. Этот подход позволял программистам свободно использовать части кода в различных программах, что существенно ускоряло их создание.

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

Одновременный запуск десяти игр
Одновременный запуск десяти игр - так создатели демонстрировали невиданную по тем временам мультизадачность.
SMP (симметричная многопроцессорная обработка). Потоки могут использовать несколько процессоров, установленных в компьютер (BeOS поддерживала до восьми), переходя с процессора на процессор в зависимости от их загруженности. Например: во время загрузки системы один процессор отвечает за отображение на экране логотипа операционной системы, а второй — за поиск и подгрузку драйверов. Такой подход позволил BeOS выиграть в производительности до 80 - 100% по сравнению с однопроцессорными системами.

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

64-разрядная файловая система BFS с поддержкой расширенных файловых атрибутов (метаданных), индексируемая, что приближало ее функциональность к реляционным БД. Она поддерживала жесткие диски объемом до нескольких терабайт и благодаря журналированию транзакций предотвращала потерю данных.

1994 - 1996: Быть модным

Однако летом 1994 года AT&T сообщила о прекращении производства процессоров Hobbit, которые использовались в BeBox. И Be Inc. была вынуждена переделать свой компьютер на основе более дешевого, распространенного и мощного процессора PowerPC мощностью 60 МГц. В связи с этим отпала нужда в дополнительных DSP-процессорах, но от многопроцессорной конфигурации они не отказались, поэтому PowerPC трудились в паре. Новая конфигурация получилась даже лучше предыдущей по быстродействию, также в систему были внедрены все новинки того времени. К концу 1994 года финансовые запасы Be Inc. иссякли, и конец был близок, но Гассе решил представить BeBox публике в надежде найти инвесторов.

На выставке Agenta’95 BeBox с BeOS в качестве начинки произвел фурор. Стив Сакоман подготовил презентацию, которая демонстрировала одновременную обработку восьми AVI-видеофайлов и трехмерной графики. Все это работало одновременно и без малейшего торможения. Система демонстрировала производительность на уровне IBM RS/6000, которая стоила десятки тысяч долларов, в то время как BeBox стоил всего 1995 долларов. Эта выставка принесла Be Inc. дополнительные инвестиции на сумму 6 миллионов долларов. В апреле 1996 года была выпущена седьмая тестовая версия BeOS DR7, которая могла похвастаться поддержкой 32-битного цвета, новой файловой системой BFS, виртуальными рабочими столами, а также улучшенными сетевыми возможностями.

Но деньги снова заканчивались, и следующей целью была выставка MacWorld Expo, проходившая летом 1996 года. Главной задачей было показать, как отлично BeOS работает на компьютере Power Macintosh, кроме того, система также работала на клонах Macintosh (в то время Apple лицензировала платформу другим производителям). Вытесняющая многозадачность и защищенный режим памяти - это то, чего ждали от операционной системы Copland фирмы Apple. Но этого у нее не было, зато было у BeOS. И после выставки Apple предложила Гассе продать его компанию Be Inc. Жан-Луи запросил слишком высокую цену в 300 миллионов долларов, в то время как Apple предложила лишь 100 миллионов. Переговоры были прекращены. Стоит отметить, что позже, после краха проекта Copland в 1997 году, Apple приобрела компанию NEXT Inc., возглавляемую Стивом Джобсом, за 430 миллионов долларов. Остальное, как говорится, уже история.
Существует и более интересная точка зрения на то, почему провалились переговоры между Apple и BeOS. Когда переговоры были в самом разгаре, Гассе дал следующий комментарий прессе: «Мы держим их за яйца. Мы будем сжимать их, пока они не закричат от боли». Напомним, что к этому моменту он пытался получить за свою компанию втрое больше того, что предлагала Apple. По слухам, выпад Гассе выдал его с головой, и заметка с комментарием дошла до руководства Apple. Сделку немедленно отменили.
В конце августа 1996-го вышел в свет новый BeBox, а вместе с ним и новая версия BeOS DR8, в которой появилась библиотека 3D Kit, позволявшая разработчикам наделить свои приложения интерактивной трехмерной графикой. Также появилась библиотека Game Kit, предоставляющая прямой доступ к графическому адаптеру компьютера, новый веб-браузер NetPositive и новые элементы графического интерфейса, а также улучшенная поддержка аппаратного обеспечения. 26 ноября 1996 года Power Computing стала первой компанией, которая лицензировала BeOS. За ней последовали DayStar, Motorola и UMAX. В мае 1997 года свет увидел BeOS PR1 (Preview Release), который включал в себя улучшенную и обновленную файловую систему BFS, ставшую 64-разрядной, программный режим ускорения OpenGL, новый интерфейс под названием Tracker, улучшенный стек TCP/IP.

1997 - 1998: Быть глупым

Дела у Be Inc. шли очень хорошо: распространено более 500 тысяч копий BeOS, а также налажены партнерские отношения с производителями клонов Macintosh. Плюс увеличивающееся с каждым днем количество разработчиков приложения для BeOS, на тот момент около 4400 разработчиков. Но не тут-то было. У руля Apple к тому моменту встал Стив Джобс, который решил покончить с рынком клонов Macintosh, лишив тем самым сразу всех потенциальных клиентов Be Inc. Гассе не оставалось ничего, кроме как искать новые рынки для продажи BeOS. И единственным таким рынком был рынок компьютеров, построенных на архитектуре x86.

На выставке Software Development’98 компания Be Inc. представила публике BeOS 3.0, которая работала на компьютерах с процессорами Intel. Даже несмотря на то, что были представлены новые процессоры Pentium II, BeOS очень шустро работала и на простых Pentium. Корпорация Intel и ряд других фирм вложили в Be Inc. 25 миллионов долларов. В 1998 году первым официальным дистрибьютором BeOS стала Microdata AB, вслед за ней на американском рынке дистрибьютором стала фирма Gobe Software, а в Японии и другой части Азии Hitachi.

Однако нужно было налаживать контакты и заключать партнерские соглашения с производителями ПК. Все компании отвечали отказом, и немудрено, ведь рынок полностью принадлежал Microsoft. Но все же откликнулся один вендор - Hitachi Ltd., согласившийся предустановить BeOS на три своих компьютера из серии Hitachi Flora Prius. Как только соглашения были подписаны, юристы Microsoft прибыли в Hitachi. И дали им понять, что если они будут поставлять свои компьютеры с двумя операционными системами - Windows и BeOS, то Microsoft лишит их лицензии на свою систему. Это предупреждение получили все производители персональных компьютеров. Строго говоря, в OEM-соглашении Microsoft шла речь о том, что нельзя изменять порядок отображения на экране после инициализации BIOS, вплоть до появления надписи «Добро пожаловать в Windows 98». Таким образом Be Inc. лишилась рынка x86.

В середине ноября 1998 года на выставке COMDEX 98 была выпущена BeOS 4.0. Добавлена новая библиотека Media Kit для работы с потоковыми медиаданными, добавлена возможность чтения и записи с разделов FAT16 и FAT32, увеличена общая производительность до 30%, а также аппаратное ускорение OpenGL. Отдельно стоит отметить скорость работы OpenGL на BeOS: если сравнивать с Windows 95 и 98, прирост составлял два-три раза. В апреле 1999 года вышла новая версия BeOS 4.5, в которой было не так много изменений. Был добавлен новый экран загрузки, отображающий порядок загрузки компонентов системы, обновили панель настроек конфигурации звуковых и видеокарт, а также появились хранители экрана. В это же время количество разработчиков приложений под BeOS перевалило отметку в десять тысяч.

1999 - 2001: Быть лишним

В мае 1999-го Be Inc. меняет стратегию развития и пытается выйти на рынок ПК для доступа в интернет. И выпускает операционную систему BeIA - урезанную версию BeOS, в которую добавили новый сетевой стек BONE (BeOS Network Stack), медиапроигрыватель Real Player и браузер Opera 4, а также виртуальную машину Java. Система занимала всего 16 Мб на жестком диске и требовала всего 16 Мб ОЗУ. BeIA могла бы с успехом применяться в веб-планшетах, медиасерверах, хранящих различную фото, аудио и видеоинформацию, миниатюрных ПК, игровых консолях и подобном. Множество компаний лицензировали BeIA в 1999 году, среди них была и Compaq Computer. Однако в конце года все эти фирмы отказались от лицензирования BeIA в пользу Windows CE. Microsoft снова надавила на поставщиков и предоставила выгодные скидки на Windows CE. Be Inc. снова вытеснили с рынка.

В это же время пользователи BeOS выразили недовольство тем, что компания не уделяет должного внимания системе. Было решено открыть исходный код некоторых частей системы, так появились OpenTracker (файловый менеджер) и OpenDeskbar (панель задач). Тем самым дали возможность сообществу программистов BeOS самим улучшать возможности системы. Но исходные коды всей системы BeOS так и не открыли, так как слишком много чужих лицензированных технологий использовалось внутри системы.

В марте 2000 года выпущено сразу две версии системы BeOS 5.0 - Personal и Professional Edition. Первая была бесплатной, поставлялась в виде инсталлятора и устанавливалась прямо в Windows, создавая образ BFS внутри файловой системы FAT32. Вторая была платной и содержала лицензированный MP3-кодек, проигрыватель RealPlayer, видеоэнкодер Indeo 5, руководство пользователя и техническую поддержку. В первые три месяца было скачано больше миллиона копий BeOS PE, а также компьютерные журналы помещали дистрибутив на свои диски и распространили более 6 миллионов копий.

Но все же финансовое положение Be Inc. ухудшалось, несмотря на продажи BeOS Pro, принесшие 480 тысяч долларов. В августе 2001 года Be Inc. объявила об увольнении сотрудников и начала искать покупателя. И через пару недель Palm Inc. приобрела Be Inc. за 11 миллионов долларов. Позднее Palm использует все наработки BeOS и BeIA в собственной системе для КПК PalmOS.

2001 - 2012: Быть HAIKU

Летом того же 2001 года Майкл Фипс (Michael Phipps), почувствовав, что BeOS скоро канет в Лету, решился на дело вполне разумное, с его точки зрения, а именно воссоздать BeOS с нуля, но в качестве проекта с открытым исходным кодом. Он рассудил, что раз проект открытый, то он не может принадлежать какому-либо человеку или компании, а следовательно, система не исчезнет просто потому, что фирма обанкротилась или проект покинули основные разработчики. Создать операционную систему - это чрезвычайно тяжелая работа, а если еще учесть, что разработчики будут работать над ней абсолютно бесплатно, то это покажется чем-то фантастическим.

Итак, целью было полностью воссоздать последний официальный релиз BeOS R5 - идея воистину сумасшедшая. Изначально проект назывался OpenBeOS (сокращенно OBOS), но позже путем голосования было решено переименовать проект в Haiku. Новое название проекта было выбрано в честь сообщений об ошибках, которые выводил браузер NetPositive. Они представляли собой японские трехстрочные стишки-нескладушки, которые называются хайку.

Благодаря тому что BeOS имела модульную структуру, была возможность по отдельности воссоздать и заменить каждый элемент системы, а также попутно тестировать и отлаживать. Как упоминалось ранее, Be Inc. открыла такие компоненты, как Deskbar и Tracker. Первый является аналогом панели задач в Windows, а второй файловым менеджером. Одним из первых компонентов, который был заменен, стал хранитель экрана (ScreenSaver Kit). Когда все части нового компонента были закончены, Фипс просто заменил его в системе BeOS и он заработал. Это лишний раз доказало разработчикам, что они избрали верный путь и таким образом смогут заменить все элементы системы. В апреле 2002 года был создан прототип AppServer (сервер приложений), который отвечает за отрисовку графического интерфейса.

Итак, работа над Haiku шла полным ходом. И Майкл Фипс в 2003 году создал некоммерческую организацию Haiku Inc., которая занималась организационной частью проекта. Она контролирует развитие проекта, принимает пожертвования, а также обладает правами на торговую марку Haiku, логотип, веб-сайт и, конечно же, исходный код. Кстати говоря, исходный код распространяется под весьма либеральной лицензией MIT. Данная лицензия разрешает полное использование кода всем желающим, даже частным компаниям в коммерческих целях.

В конце марта 2005 года в Haiku было запущено первое самостоятельное графическое приложение. К этому моменту Haiku уже не использовала код или бинарные файлы, которые бы принадлежали BeOS, другими словами - она уже стала самостоятельной системой, включая сетевой стек и драйверы. Сетевой стек был разработан полностью свой, а также был создан слой совместимости с сетевым стеком FreeBSD. В декабре 2005 года был нанят Аксель Дёрфлер (Axel Drfler) для работы над Haiku. Аксель остается одним из основных разработчиков системы и по сей день. Тогда он работал над загрузкой с CD, SMP, AppServer и непосредственно ядром системы. Ядром системы является слегка модифицированное ядро NewOS, которое было написано бывшим инженером Be Inc. Тревисом Гейзельбрехтом (Travis Geiselbrecht). Также стоит отметить, что в отличие от BeOS, которая была основана на микроядерной архитектуре, Haiku имеет гибридное ядро.

В 2007 году Майкл Фипс заявил, что вынужден покинуть проект по семейным обстоятельствам, и бразды правления Haiku Inc. перешли в другие руки. Во главе стали: Аксель Дёрфлер в качестве президента, Бруно Альбукерке (Bruno G. Albuquerque) в качестве вице-президента компании (кстати, Бруно работает в Google), казначеем был назначен Райан Ливенгуд (Ryan Leavengood), секретарем - Матью Мадиа (Matthew Madia), пятым членом совета директоров стал Юриас Маккалоу (Urias McCullough). В октябре 2007 года был готов к тестированию драйвер AHCI SATA. В 2008 году Haiku достигла self-hosting’а, то есть систему можно было собрать из исходных кодов прямо в самой же Haiku. Это событие стало знаковым, так как теперь Haiku не зависела от других систем. Также в этом году была добавлена поддержка Bluetooth.

2013 - ????: Быть дальше

Итак, чем же сегодня нас может удивить Haiku? Как минимум, скоростью загрузки: даже на компьютерах пятилетней давности Haiku загружается с холодного старта за 10–15 секунд и занимает всего 150 Мб в оперативной памяти.

Haiku довольно быстрая и отзывчивая система даже на устаревших компьютерах, которые не в силах справиться с перегруженными современными системами. Это достигается благодаря тому, что она переняла лучшие стороны BeOS, а именно максимальное использование потоков. Обычно выделяется по потоку на каждое приложение плюс дополнительные на пользовательский интерфейс. В Haiku вы не увидите сообщения «Приложение не отвечает», как в Windows, или «пляжный мячик» в OS X. Интерфейс не подвисал в BeOS и не подвисает в Haiku. Еще одним козырем системы является ее файловая система, которая похожа на базу данных. Она позволяет любому файлу иметь различные атрибуты (метаданные). Например, любой e-mail в Haiku хранится со следующими атрибутами: имя и адрес отправителя, тема, имя получателя и адрес. Вы можете произвести поиск по любому из этих атрибутов. Таким образом вы сможете организовать музыкальную или видеобиблиотеку, а также адресную книгу. И вы больше не будете привязаны к какому-либо приложению. Все это позволит сделать лишь файловая система и файловый менеджер Tracker.

Также стоит отметить системные трансляторы - это интерпретаторы файловых форматов. То есть если в системе имеется, допустим, транслятор JPG, то любое приложение в системе будет уметь работать с таким типом файлов. Haiku является целостной системой, с продуманным графическим интерфейсом. Все компоненты Haiku изначально спроектированы для совместной работы, включая такие приложения, как медиапроигрыватель и веб-просмотрщик.

Исходный код выдержан в строгом стиле, что оценят разработчики - это позволит им быстро освоиться. Разработчик, который напишет код для Haiku, может быть уверен, что код будет работать и вести себя одинаково на всех машинах с Haiku. Графический интерфейс и сетевой стек «вшиты» в ядро.

Проект Haiku каждое лето участвует в программе Google Summer of Code. И каждый год оказывается в списке организаций, которым выделяют студентов. Возможно, кто-то в Google неравнодушен к Haiku. В 2012 году GSoC оказался особенно успешным для Haiku. Система была портирована на архитектуру x86_64, и был полностью портирован проект OpenJDK. Благодаря появлению Java, в полку приложений для Haiku прибыло. Стоит особенно отметить, что на Haiku наконец-то появилось офисное приложение ThinkFree Office, которое способно открывать и сохранять файлы в формате Microsoft Office. Также в данный момент ведется портирование Haiku на архитектуру ARM, а именно на популярный мини-компьютер Raspberry Pi.

В следующем релизе Haiku, скорее всего, перейдет в фазу беты. Haiku R1B1, вероятно, будет включать в себя аппаратную поддержку 3D, ведь в данный момент ведется портирование Gallium3D из Linux. Для этого также придется переписать AppServer, чтобы он поддерживал аппаратное ускорение. Вдобавок стоит ожидать завершения портирования всех приложений на архитектуру x86_64. Ну и основным новшеством следует выделить появление пакетного менеджера, который будет не только выполнять функции установки приложений, но и будет являться инструментом обновления системы. Пакетный менеджер Haiku будет непохожим на Linux-решения, он будет представлять собой нечто среднее между линуксовыми пакетными менеджерами и бандлами OS X. А именно в иерархию файловой системы добавят специальную папку packages, за которой будет следить специальный daemon. И если скачать приложение в формате hpkg и положить в эту папку, то оно автоматически примонтируется поверх файловой системы и станет доступно пользователю. То есть чтобы установить приложение, будет достаточно переместить пакет в эту папку, а для удаления - просто его удалить. Также планируется написать daemon, который будет отслеживать зависимости того или иного пакета и подгружать нужные. Разработка пакетного менеджера началась в феврале текущего года, наняты два основных разработчика Haiku - Инго Вайнхолд (Ingo Weinhold) и Оливер Тапп (Oliver Tappe). Будем надеяться, что разработчики справятся и Haiku обзаведется инструментом автообновления и средством установки приложений. Выход беты стоит ожидать осенью этого года, после завершения очередного GSoC.

Ну а пока бета-релиз не состоялся, рекомендуем тебе скачать и попробовать "ночные" тестовые сборки Haiku.

Комментариев нет:

Отправить комментарий