Обзор: Альтернативные ОС (часть3)
12.04.11Инкунабула
MenuetOS десять лет назад произвела настоящий фурор среди разработчиков всего мира. Это была очень маленькая операционная система, занимавшая чуть меньше мегабайта. Для ее развертывания хватало одной трехдюймовой дискеты, но при этом пользователь мог работать в полноценном графическом интерфейсе, выполнять одновременно несколько задач и даже работать в сети. В 2002 году она дополнилась модулем соединения с Интернетом, не сильно при этом увеличив свой объем. Она по-прежнему занимала всего одну дискету.
Создали эту компьютерную миниатюру два программиста — финн Вилле Турьянмаа и эстонец Мадис Кальме. Они не хотели повторять успех Линуса Торвальдса, им просто захотелось написать операционную систему на чистом ассемблере. Турьянмаа интересовался границами применения ассемблера для создания быстрой и компактной системы, а Кальме увлекался построением графических интерфейсов. Результат превысил все их ожидания. В настоящее время система имеет 64-битную версию, в нее интегрирован солидный набор драйверов, а также поддержка мультимедиа.
Наиболее пристальный интерес эта операционная система вызвала у разработчиков на территории бывшего Советского Союза. Во-первых, она была маленькой. Во-вторых, ассемблер является одним из наиболее простых языков, а имея в своем распоряжении такой компактный и мощный программный интерфейс, который заложили в MenuetOS ее авторы, можно было при минимуме затрат получить прекрасный результат. В-третьих, в отличие от Linux или иной альтернативной операционной системы, здесь не нужно было придерживаться жестких норм стандарта. В 2005 году благодаря русскому программисту Ивану Поддубному появился «форк» (то есть ответвление) MenuetOS под названием Kolibri, который вскоре сравнялся по возможностям с материнской системой, а потом и превзошел ее. Кроме того, в 2005 году Вилле Турьянмаа увлекся 64-битной версией системы, а 32-битный вариант был им заброшен. Продолжение разработки Kolibri вызвало раскол в сообществе, и новосозданная группа KolibriOS Project Team отправилась в самостоятельное плавание.
Получив независимость, группа начала работать над поддержкой языков высокого уровня. Диктовалось это тем, что большая часть существующего пользовательского ПО написана именно на них. А поскольку новая система бинарно не совместима ни с Windows, ни с Linux, нужен иной вариант — на уровне исходников. Были реализованы C/C++, Pascal и Forth. Следующим этапом был отказ от минималистского ядра. Нынешний дистрибутив Kolibri остается очень маленьким, но почти вдвое крупнее исходного и занимает чуть больше 3 МБ. При этом систему все еще можно уместить на дискету, однако в таком случае она окажется «голой» — без пользовательских программ. А их на сегодня существует уже более 250, включая игры, архиваторы и файловые менеджеры. Есть поддержка видеокарт, звуковых плат и различных файловых систем, а возможность загружаться прямо с USB делает ее одним из удобных средств «снятия» информации с компьютера после фатального сбоя операционной системы.
Реального применения для KolibriOS пока нет. Она все еще является «хобби», несмотря на то, что были попытки ее применения в производстве и в учебном процессе. Но минимальный размер делает ее почти идеальным решением для встроенных систем, кроме того, она относится к разряду систем реального времени. Это значит, что она способна не только обеспечить результат выполнения команды пользователя, но и сделать это за минимально возможное время (это достигается применением ассемблера в качестве основного языка). Кроме того, монолитность системы и отсутствие уровней абстракции сильно облегчают работу с нестандартной периферией.
Мечта малыша: чего в Kolibri хватает с избытком — так это простых и понятных игр
Специалист по реальному времени
Если Kolibri делает первые шаги по пути встроенных операционных систем, то QNX в данном сегменте рынка — уже патриарх. Это трудно себе представить, но она даже старше Windows и DOS. Самая первая версия этой операционной системы, выпущенная канадской фирмой Quantum Software Systems (ныне QNX Software Systems), появилась в далеком 1982 году и работала на платформе Intel 8088, которой было суждено войти в историю как IBM PC — первый массовый компьютер для домашнего использования. Поскольку система оказалась необычайно удачной, она тут же попала под запрет комитета COCOM (более известного как «комитет технологического эмбарго») — как технология двойного назначения. Это и было тем судьбоносным решением, которое отдало пальму первенства продуктам фирмы Microsoft.
QNX завоевала своего пользователя малым размером ядра — оно составляло всего 44 Кб. Для тогдашних встроенных систем это было много, зато для настольных компьютеров открывало огромные возможности. Первой на нее обратило внимание Министерство образования Онтарио в Канаде. Затем QNX нашла применение в крупных промышленных комплексах, а вторая версия, уже более оптимизированная для применения в производстве и более устойчивая к сбоям, даже стала стандартом отрасли. Она до сих пор широко применяется в канадской промышленности, в отличие от своей младшей «сестры» DOS.
В середине 1990-х, когда уже явно ощущался крен в сторону рабочих станций с графическим пользовательским интерфейсом, QNX Software Systems решила добавить такую функциональность и в свою систему. Поскольку в то время уже набирала популярность Linux, а POSIX-совместимость стала стандартом, разработчики фирмы приняли решение переписать систему с нуля. Так появилась QNX4, полностью совместимая с Unix-системами. На этом специалисты QSS не остановились. Они добились полной совместимости с NetBSD и Linux, при этом сохранив все преимущества первых версий QNX — микроядерность и ориентированность на работу в реальном времени. Это так называемая QNX6 — QNX Neutrino, которая стала такой же успешной, как и QNX2. Более того, она оказалась даже меньше четвертой версии — за счет более грамотной реализации стандарта POSIX и улучшенной системы модулей, которые позволили операционке эффективно настраиваться под архитектуру конкретной рабочей станции, а также легко надстраиваться и масштабироваться. Но и это еще не все. Разработчики оставили возможность не только для дальнейшей надстройки, но и для «урезания» системы до теоретического минимума. Вся система, как и вышеописанная Kolibri, спокойно может уместиться на одной дискете.
Спектр применения этой ОС впечатляет. Так, система на ее основе применяется Atomic Energy of Canada Ltd. для управления ядерными реакторами. В городе Оттава-Карлтон QNX управляет сотнями светофоров и тысячами дорожных датчиков, а общая протяженность дорог, контролируемых этой системой, составляет 1100 км. CISCO Systems для своих мощных коммутаторов также применяет эту систему. В Японии, а затем и в других странах мира, QNX стала отраслевым стандартом для бортовых компьютеров в автомобилях.
Инструментарий разработчика для QNX: все, что нужно, компактно и под рукой
В отличие от других альтернативных операционных систем QNX — платная. Несмотря на то что с 2007 года QSS начала поэтапное открытие исходных кодов и инструментальных средств для разработки, ныне она снова является коммерческим продуктом — после покупки прав на QNX компанией BlackBerry. На территории СНГ официальным дистрибьютером, у которого реально приобрести эту систему, является фирма SWD Software. Для тестирования можно скачать ознакомительную версию, которая поставляется в двух вариантах — для пользователя и для разработчика. Оба пакета предусматривают 30-дневный срок работы, после которых система деактивируется.
Пользовательская версия довольно непритязательна. В ней есть минимальный набор утилит, настроечные программы и средства работы с Интернетом. Все они работают в графическом режиме, в оболочке, носящей название Photon, не лишенной красоты и удобства. Совершенно иное впечатление производит тот вариант, который предлагается разработчикам. Он содержит полный набор программ для ведения разработки под QNX и обширнейшую документацию. Подобная разница неудивительна — она отражает саму сущность данной операционной системы, предназначенной не для домашнего, а для промышленного использования. Поэтому пробная версия демонстрирует возможности по приспособлению QNX к конкретным задачам, а не универсальную функциональность.
Все возможности по «подгонке» QNX делятся на несколько вариантов «пакетов» (kits). Runtime Kit позволяет изменять саму систему. Board Support Packages — проводить компиляцию для особых видов микропроцессорных систем, например Atmel или Xilinx. Какие нужны «технопакеты» (Technology Development Kit), определяется сферой, где должна будет работать система. Так, существует пакет для обработки звука (Acoustic Processing TDK), пакет для работы с графикой и 3D-рендерингом (Advanced Graphics TDK) и даже отдельный пакет для работы с устройствами «жесткого реального времени», где особое внимание уделяется времени отклика на сигнал или команду (Instant Device Activation TDK). Подобное разделение и позволяет очень точно подогнать систему под нужные требования и сделать ее максимально эффективной.
Для ведения разработки программ под QNX сама эта операционная система не нужна. Можно вполне обойтись так называемыми внешними средствами, на практике представляющими собой особые версии основной интегрированной среды разработки для QNX Momentics. Это не только среда для создания программ, но и виртуальные машины, что позволяет вести полный цикл разработки для QNX под Windows или Linux. Их также можно скачать на ознакомительный период, как и образ операционной системы.
Разумеется, такие мощные и гибкие системы малоприменимы в небольших масштабах, но зато в больших QNX нет конкурентов. И если существует необходимость в создании крупной системы, способной обрабатывать огромные объемы данных в режиме реального времени, обычно используют QNX. И не ошибаются.
BeOS + Linux =?
Выше мы уже говорили о попытках возродить перспективную BeOS. Здесь речь пойдет о том, как эта система повлияла на другие разработки. Если приглядеться, кое-какие новации от BeOS можно обнаружить даже в Linux. Например, в KDE для быстрого копирования или перенесения файлов применяется точно такой же элемент управления, как и в Tracker’е (аналог Проводника в Windows или Dolphin в Linux). «Вкладочный» интерфейс также позаимствован из BeOS. Однако планов создать гибрид Linux и BeOS не строил никто — уж слишком разные это системы, а после провала Cosmoe это и вовсе стало считаться невозможным.
Проект AtheOS создавался норвежским программистом Куртом Скауеном первоначально как аналог операционной системы AmigaOS, работающей на платформах Amiga и PowerPC. Сам проект двигался очень медленно, потому что Скауен весьма недоверчиво относился к патчам и дополнениям от других разработчиков и старался выполнять сам весь объем работы. В конце концов он махнул рукой и оставил проект. На тот момент уже были реализованы собственная файловая система, многозадачность и оригинальный объектно-ориентированный графический интерфейс, похожий на тот, который был применен в BeOS, а также достигнута совместимость на уровне POSIX.
Syllable Desktop: умеем немного — зато на совесть
В 2002 году один из разработчиков AtheOS Кристиан ван дер Влиет объявил о начале работы над новой операционной системой на основе AtheOS — Syllable. Эта система должна была соединить в себе лучшие черты Linux и BeOS, а также стать полноценной альтернативой не только на рынке домашних, но и корпоративных пользователей. Работа началась сразу в двух направлениях — десктопные системы и серверы.
Одним из основных требований была максимальная эффективность системы и способность использовать на пределе все возможности рабочей станции. Syllable была призвана реанимировать «старые» системы и вдохнуть новую жизнь в списанные компьютеры — именно в этом увидели потенциальную нишу для новой системы разработчики. И это им во многом удалось. Минимум, на котором работает эта система, — процессор Pentium-класса и 64 Мб оперативной памяти. Для самой операционки необходимо 250 Мб на жестком диске, для приложений — больше. Разработчики рекомендуют разворачивать систему на дисках объемом около 1 Гб.
Использовав решения, до этого применявшиеся только в системах реального времени, Кристиан ван дер Влиет добился загрузки системы за 10 секунд даже на слабых компьютерах. Выключение системы занимает еще меньше времени — около 5 секунд. А при нагрузке система не виснет, а только ненамного увеличивает время отклика на команды пользователя. Кроме того, распределяя функции по специальным разделяемым библиотекам (так, как это было сделано в AmigaOS), разработчики обеспечили поддержку многоядерности и многопроцессорности. Наконец, BeOS послужила для них примером построения программного интерфейса. А вскоре появился релиз.
Одной из интересных особенностей этой системы является… бинарная несовместимость между Syllable Desktop и Syllable Server. Объясняется это тем, что в серверной версии ядро AtheOS было заменено на ядро Linux. Это позволило легко портировать специальное программное обеспечение (такое как служба openSSH или веб-сервер Cheyenne). Параллельно шла работа по созданию собственной серверной системы Syllable. Для ее реализации, а также в качестве встроенного языка системы был выбран язык REBOL. Обычно в качестве встроенного языка берется что-нибудь очень простое. Простыми скриптовыми языками являются командный процессор Bash в Linux или язык командных файлов в Windows. REBOL — это иной случай: очень мощный язык, изначально включающий в себя средства для работы с сетью, мультимедиа, графическим интерфейсом и даже с базами данных. Впервые он был применен в AmigaOS и именно оттуда его позаимствовали разработчики Syllable. О способностях этого языка можно судить уже по тому, что в декабре 2010 года полностью на REBOL была переписана встроенная в Syllable система управления веб-контентом (это позволило перенести ее с Syllable Server на Syllable Desktop). Вряд ли какой-нибудь другой командный процессор справился бы с подобной задачей.
На сегодняшний момент Syllable ни к домашнему, ни к корпоративному использованию не готова. Вопросы вызывает даже тривиальная установка системы: разработчики специально предусмотрели целый ряд разных сценариев, оптимизированных под разные варианты. И даже при их наличии система не всегда устанавливается гладко — у автора это вышло примерно на третий раз. Однако потенциал у системы большой, и ее будущие релизы заслуживают пристального внимания.
Абсолютно ненужная вещь
Рассказ об альтернативных операционных системах был бы неполон без Plan 9, которую иногда называют «самой ненужной системой».
Фильм Эдварда Вуда-младшего «План 9 из внешнего космоса» у нас широкой публике неизвестен, в то время как в Соединенных Штатах лента превратилась в своего рода символ провала и неудачи. Она даже получила приз «Золотая индюшка» как худшая кинопостановка всех времен и народов. Разработчики Bell Labs, собираясь начать работу над своим новым проектом, прекрасно понимали, что их работа в итоге окажется провалом, и в порядке самоиронии выбрали для своей системы это название.
Задача была сверхамбициозная: двинуть дальше концепцию Unix и создать систему нового поколения. Но если создатели той же BeOS или QNX пошли по пути дальнейшей специализации и создания гибкой и легко расширяемой иерархии функций и библиотек, то Plan 9 пошла по пути унификации. Все ресурсы в системе являются файлами, а все функции сводятся к действиям над ними — созданию, открытию, чтению и записи. Файлы расположены в единой файловой системе, причем безразлично, где физически расположены соответствующие им устройства — где-нибудь в сети или на локальной рабочей станции. Проблема разделения ресурсов, таким образом, просто исчезает. Можно даже использовать звуковую карту другого компьютера — достаточно скопировать в свою файловую систему нужный файл (такой пример описывается в официальной документации как одна из штатных возможностей системы). Даже доступ к Интернету осуществляется при помощи открытия сетевого адреса как файла. Все это отражало главную цель создания Plan 9 — превратить компьютер в часть огромной распределенной вычислительной системы (эдакого сверх-сверх-суперкомпьютера), в которой нашли бы себе место как дешевые и слабые машины, так и мощные многопроцессорные станции. Это позволило бы вообще снять понятие аппаратных требований, потому что в такой сети для решения любой задачи обязательно найдутся нужные ресурсы. Есть даже особый язык программирования Alef, специально созданный для распараллеливания вычислений.
Однако этой мечте, увы, не суждено было сбыться. Как и предсказывали создатели Plan 9, все окончилось провалом. Работа, начавшаяся еще в середине 80-х, была полностью свернута на рубеже тысячелетия, а сама операционная система выпущена под свободной лицензией.
На самом деле Plan 9 опередила свое время куда больше, чем BeOS. Она не могла найти себе применения в мире, где распределенные системы являются скорее исключением, чем правилом. Даже такие крупные проекты, как SETI@Home, построенные точно по рецептам распределенных вычислений, занимают очень небольшой сегмент в ИТ-индустрии. А Глобальная сеть представляет собой скорее библиотеку, чем общую вычислительную среду. Это сделало Plan 9 самой ненужной операционной системой при всех ее достоинствах.
Но зато она нашла себя в сфере образования. В отличие от других операционных систем, применяемых в учебном процессе, Plan 9 очень проста и наглядна. На ее примере оказалось просто объяснять основы построения сложных компьютерных систем и системного программирования — именно такое применение ей нашли, например, в Испании. А еще она применяется для проектов распределенных вычислений, где требуется совместное использование оборудования нескольких вычислительных станций в режиме суперкомпьютера. Ведь в этом Plan 9 попросту нет равных, несмотря на трудоемкость создания специального программного обеспечения.
Странности Plan 9: достаточно выделить текст — и его можно выполнить как команду
Вполне вероятно, что именно так будут выглядеть операционные системы нашего будущего, а пока у нас есть «План 9», с помощью которого к нему можно прикоснуться. Или даже самому попробовать создать небольшую распределенную систему. Plan 9 хорошо относится к новичкам, а солидный пласт русскоязычной документации поможет им в работе.
В последующих статьях мы подробно расскажем о том, как совместить разные операционные системы на одном компьютере, в том числе установить несколько операционных систем или использовать их параллельно в режиме виртуализации.
Вячеслав Трухманов
Robo User
Web-droid редактор
Web-droid редактор
Не пропустите интересное!
Підписывайтесь на наши каналы и читайте анонсы хай-тек новостей, тестов и обзоров в удобном формате!
Читайте також
Статьи & тесты
23.12.24
Лучшие устройства 2024 года: выбор редакции hi-tech.ua
Лучшие устройства 2024 года: выбор редакции hi-tech.ua
87
0 Познайомимося з топ-пристроями року. Серед яких флагманські дорогі моделі та бюджетні девайси.
Новости
27.12.24 | 10.32
ЕС хочет чтобы Apple AirDrop и AirPlay работали на смартфонах Android Apple Андроид закон смартфон
ЕС хочет чтобы Apple AirDrop и AirPlay работали на смартфонах Android Apple Андроид закон смартфон
Европейская комиссия потребовала от Apple открыть больше функций iOS для сторонних разработчиков, включая доступ к протоколам AirDrop и AirPlay.
27.12.24 | 07.48
Лучшие 15 игр 2024 года по версии Kotaku: Astro Bot, Dragon Age: The Veilguard, Animal Well игры рейтинг
Лучшие 15 игр 2024 года по версии Kotaku: Astro Bot, Dragon Age: The Veilguard, Animal Well игры рейтинг
Журналисты Kotaku составили топ-15 лучших игр 2024 года. Лидерами стали платформер Astro Bot, RPG Dragon Age: The Veilguard и инди-игра Animal Well.