Обзор KolibriOS: с первых дней и до сегодня

Колибри KolibriOS – это ответвление (fork) некогда очень популярной в России 32-битной операционной системы MenuetOS. MenuetOS была искусственно разведена на две ветки: открытую для 32-битных процессоров и закрытую для 64-битных. Этого искусственного разделения нет в KolibriOS, которая работает и на 32- и 64-битных процессорах. KolibriOS распространяется абсолютно свободно, согласно лицензии GPL, как и Menuet32.

Даже в кратком описании истории KolibriOS нельзя не упомянуть предшествовавшие ее появлению события, тем более что они довольно интересны.

Начало

Во второй половине 1990-х годов финский студент Вилле Турьянмаа писал графическую оболочку для DOS. Ему хотелось, чтобы его программы на Паскале выполнялись в многозадачном защищенном режиме и имели оконный графический интерфейс. Оболочка называлась MultiRun Program for IBM-PC. MrOS Рабочий стол MrOS Программа обрастала возможностями и со временем превратилась в самодостаточную операционную систему (DOS уже не требовался), которая запускалась с дискеты. Называлась эта операционная система MrOS, а объем ее исходных текстов на Паскале составлял 25 тысяч строк. В дистрибутив входили три десятка программ типа часов, проигрывателя AudioCD, игр, синтезатора пианино, регулятора громкости... В последних версиях велась работа над загрузчиком исполняемых файлов формата ELF, но наступил миллениум, и программисты всего мира начали говорить о Java, XML, скриптовых языках и прочих технологиях.

Вилле понял, что его 16-битная ОС устарела и требуется что-то менять. С другой стороны, ему не нравилось медленное выполнение программ, написанных на интерпретируемых языках, наличие прослоек между программой и железом. Он решил написать самое быстрое ядро в мире, и единственным подходящим языком для этого оказался ассемблер. Такое радикальное изменение курса вызвало недоумение у его соратника по MrOS. Ян-Микаэль Брюммер начал проект Unix-подобной TabOS, хотя в дальнейшем он написал немного кода и для MenuetOS.

Через несколько месяцев был выпущен релиз MenuetOS 0.01. Название было придумано еще во времена MrOS, но Вилле приберег его для новой ОС. Оно произошло от слов Menu и Menuet, поскольку использованием ОС должно быть простым (как работа с меню программ) и веселым занятием (как танец). GeOS Графический интерфейс PC/GEOS был клоном Windows Explorer, но потреблял намного меньше системных ресурсов и отлично работал даже на слабеньком 386 процессоре. В то время она разрабатывалась с помощью ассемблера Nasm и ее интерфейс был похож на интерфейс оригинальной MrOS. Например, некоторые части интерфейса MrOS (иконка готической буквы M и рисунок розы на экране завершения работы) использовались в MenuetOS несколько лет. Сообщество разработчиков MenuetOS было очень маленьким до 5 сентября 2001 года, когда было опубликовано интервью на сайте популярном сайте OSNews. Операционная система с графическим интерфейсом, написанная на ассемблере и влезающая на дискету, – подобного мир не видел со времен PC/GEOS начала 1990-х годов. Люди загружали эту ОС, разносили весть о ней по форумам, создавали посвященные ей сайты. Отметим, что российские сайты были сделаны буквально через неделю после интервью. События 11 сентября 2001 года отвлекли внимание от MenuetOS, но развитие продолжалось.

MenuetOS была еще сырым проектом, и в ней многого недоставало. К Вилле стали присоединяться разработчики. В начале 2002 года был портирован ассемблер FASM, и стало возможным компилировать ядро и программы прямо в MenuetOS.

MenuetOS RE

Menuet RE

Осенью 2004 года Иван Поддубный выпустил 3 беты дистрибутива RE#8 (Russian Edition), которые включили в себя новую подсистему отрисовки GUI и плеер wav-файлов для материнских плат со встроенным звуком. В это время Майк Хиббет оказался слишком занят на работе и вернул руководство Вилле в конце декабря.

Весной 2005 года Иван Поддубный выложил ядро, размер которого был уменьшен на 20% по сравнению с официальным при большей функциональности. Это ядро легло в основу дистрибутивов Kolibri 3 и Kolibri 3 SE, представивших улучшенный интерфейс пользователя (минимизацию окон и модифицированная панель задач), расширение набора системных функций и поддержку формата rtf.

KolibriOS 0.3.2.0 Рабочий стол Kolibri 3 SE

В это время встал вопрос о лидере проекта. Вилле был занят развитием Menuet64 и не мог выпускать дистрибутивы, поэтому он предложил Ярослава Пельчара на роль лидера. После споров по ряду вопросов (почему Си-программист становится лидером ОС на ассемблере, почему разработчики из русскоязычного сообщества не могут претендовать на роль лидера) он был утвержден форумом. Все возлагали на него большие надежды после выпущенного им релиза 0.79pre1 и проведенного конкурса по написанию новых игр. Но он перешел в сообщество операционной системы Syllable через несколько месяцев.

Выпущенный в июне дистрибутив Kolibri 4 принес автоматическое определение мыши и дисков/разделов ЖД, а также новый загрузочный экран, позволяющий выбирать частоту вертикальной развертки монитора.

В июне 2005 года вышла Menuet64 0.01 и Вилле дал понять, что развитие этой ОС должно быть основной целью не только для него, но и для всего сообщества (хотя в то время 64-битных компьютеров ни у кого кроме него не было). Исходные тексты Menuet64 были закрыты, поэтому ведущих программистов сообщества Menuet32 она не привлекла. Была продолжена работа над дистрибутивом Kolibri. Развитие Kolibri раздражало Вилле, и он поругался с нашей командой, что привело к разрыву отношений.

KolibriOS

Выход очередной версии Kolibri в октябре 2005 года стал знаковым (объявление на сайте того времени): поддержка FAT12 и менеджмент памяти, улучшенный драйвер RAM-диска и новая семантика обращения к жестким дискам. Различие между ядром Kolibri и MenuetOS достигло 50% – признак того, что родилась новая операционная система! Эта версия получила название KolibriOS 0.50 в знак сохранения преемственности от дистрибутива Kolibri.

Изменения в версиях 0.52 и 0.53 касались улучшения загрузочного экрана, вывода шрифтов на экран, обработки мыши, графического интерфейса ОС. Появилась поддержка MIDI-файлов. В версии 0.58 KolibriOS 0.5.8.1 KolibriOS 0.5.8.1, ванильные обои тогда были не в моде были серьезные изменения в работе с жесткими дисками (в том числе поддержка длинных имен файлов), появилась поддержка файловой системы CDFS и стандарта управления питанием APM. В версию 0.60 были включены улучшения работы в некоторых графических режимах, в работе с мышью и жесткими дисками, в ней также появилась поддержка вывода ASCIIZ-строк. Выход KolibriOS 0.63 был связан с внедрением поддержки внешних драйверов и динамических библиотек, поддержкой DMA для жестких дисков и формата музыкальных файлов mp3. В релиз 0.65 включена поддержка файловой системы NTFS (только чтение и запуск программ), нестандартных курсоров мыши и изменения в нескольких десятках программ.

Летом 2007 года было переписано ядро на использование плоской модели памяти с целью ускорения работы и стабильности приложений. Это изменение привело к невозможности запускать программы Menuet32 в KolibriOS, но мы мало что потеряли, поскольку Menuet32 практически не развивается.

Уже положено начало единой библиотеке элементов графического интерфейса, что ускорит разработку новых программ и их функциональность. В планах разработчиков: поддержка нормальных шрифтов; улучшение мультимедийных, офисных и сетевых программ; портирование компилятора языка Cи (уже есть наработки по Tiny C Compiler и Open Watcom); расширение функциональности в работе с файловыми системами; создание системного буфера обмена; поддержка USB.

Кто ее разрабатывает?

В настоящий момент KolibriOS развивается благодаря усилиям трех десятков человек, среди которых есть представители Белоруссии, Бельгии, Германии, Казахстана, Молдавии, России, Узбекистана, Украины, Эстонии и ряда других стран. Некоторые участники нашей команды разработчиков в своё время участвовали в разработке оригинальной MenuetOS. До версии 0.58.1 сборкой дистрибутивов занимался Марат «Mario79» Закиянов, а начиная с версии 0.60 - Евгений «Diamond» Гречников. В июле 2006 года был открыт официальный сайт. Чуть позже форум, SVN-сервер, wiki и блог.

Что она предлагает пользователю и программисту?

Для KolibriOS разработано более 250 программ. Конечно, это немного в сравнении с ОС, разработка которых началась еще в 80-90-х годах (Windows, Linux, BeOS, *BSD), но отсутствие программ как раз привлекает разработчиков, выступая в качестве хорошей возможности опробовать свои силы. Благодаря портированому DOSBox возможно запускать еще тысячи программ, написанных для DOS.
Офисных программ немного, но текстовый редактор KolibriOS 0.7.1.0 KolibriOS 0.7.1.0 TINYPAD является довольно продвинутым (многодокументный интерфейс, смена кодировки, подсветка синтаксиса, нумерация строк, компиляция исходных текстов прямо из редактора) в сравнении с аналогами из любых других ОС. Также есть возможность просмотра файлов формата rtf в программе RTFREAD. Присутствует редактор таблиц TABLE с поддержкой формул, программа для построения графиков. Естественно, есть календарь, калькулятор и англо-русский словарь. Можно просматривать архивы в форматах 7z, zip.

Для любителей мультимедийных развлечений есть возможность просмотра графических файлов форматов bmp, gif, jpeg, png, tga, pcx, ico, cur и 3ds, прослушивания музыкальных файлов форматов mid, mp3, wav, xm и обычных аудиодисков. Редактор графики ANIMAGE позволяет создавать и редактировать рисунки. KolibriOS оснащена отличным скринсейвером, честно. :)

По непонятной причине для MenuetOS и KolibriOS больше всего разрабатывалось файловых менеджеров (не менее 7). Сейчас наиболее часто обновляются менеджеры Eolite и KFAR (аналог FAR). Есть ещё KFM (аналог Total Commander), который больше не обновляется, однако, согласно последний заявлениям, автор немного разгребётся с остальными делами и примется за KFM. Что не может не радовать.

Огромное количество небольших игр написано под KolibriOS: «КФара», «Косилка», всем знакомые и любимые «Тетрис», «Арканоид», «15», «Сапер», «Шашки», «Clicks» и другие, портированы такие игры, как Doom и Quake. Многие игры можно запускать в эмуляторах: XFCE (для Денди), DOSBox и ScummVM.

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

Хотя сетевой стек пока еще дорабатывается, но сетевые программы уже есть.

Есть даже две научные программы – таблица Менделеева и программа для мессбауэровской спектроскопии.

Основной язык разработки FASM, выбор пал на него потому, что он является единственным активно развивающимся ассемблером, причём очень мощным и бесплатным. Но разработчик может писать библиотеки, драйверы и программы не только на ассемблере, но и на языках высокого уровня типа С++, С, C--, FreePascal, Форт и других. Инструкции по использованию многих компиляторов есть в этой статье. Есть компрессоры исполняемых файлов, hex-редакторы и средства отладки. Для ускорения разработки, есть эмулятор KbrInWin для запуска программ KolibriOS в Windows.

Заключение

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

Ее можно рекомендовать программистам, желающим попробовать свои силы в создании ОС или изучении ассемблера. В случае, если Windows перестанет загружаться KolibriOS поможет скопировать важные данные с разделов NTFS (EXT 2/3 или FAT) на другой раздел, притом что время загрузки у неё 5 секунд, а скорость копирования на 6-8% выше, чем в Windows. Наличие эмулятора Денди и DOS плюс набор интересных игр могут привлечь внимание детей, обучающихся использованию компьютера. Вместе с тем она достаточно функциональна и может использоваться для замены Windows в ряде задач. Одна из американских компаний уже несколько лет использует MenuetOS и KolibriOS на своих компьютерах, в России же KolibriOS используется на производстве.

Израильская компания "Green Gadgets Ltd" планировала продавать ультрадешёвые компьютеры с Колибри на борту (подробнее в этой теме). Часть разработчиков получила гаджеты компании для адаптации системы под них, написания драйверов. Однако спустя год компания развалилась и Колибри полетела дальше...

Есть даже крайне амбициозный проект встроить Колибри в BIOS материнских плат архитектуры AMD/HT. Подробнее об этом на вики и в этой теме. Первая версия этого проекта KolibriA уже закрыта, но дала автору ценные знания и уникальный опыт, без которых ему никогда не удалось бы получить хорошую работу в известной фирме, специализирующейся на разработке систем технического зрения. Не так давно он приступил к новому витку проекта KolibriB со свежими силами и накопленными знаниями.


Поскольку KolibriOS разрабатывается в основном разработчиками из СНГ и распространяется бесплатно, то проблем с ознакомлением с ОС и установлением контактов c сообществом у заинтересовавшихся не будет. Пробуйте, исследуйте и заходите к нам на форум.

Материал основан на статье Сергея Кузьмина "KolibriOS: просто дайте ей шанс полетать на вашем компьютере"
К разделу