Полет «Колибри». На что способна ОС, целиком написанная на ассемблере. KolibriOS – отечественная миниатюрная ОС

И снова здравствуйте! С вами начинающий программист и юзер ТрешБокса Вадим. Я представляю второй выпуск «ВадБокса». Темой этого номера стала миниатюрная ОС KolibriOS.
Эта система расположилась на 1.44 мб памяти, что по сравнению с iPad и iPhone пылинка на дисплее Gorilla Glass. Что меня радует, что проект «живой», продолжает развиваться. И не кем-то там, а нашими, русскими программистами. На данный момент KolibriOS догнала по развитию Windows 95, но превосходит её по всем параметрам. Это скорость, размер, качество и т. д. В дистрибутив системы встроено более 30 игр, браузер, графический и текстовый редакторы, медиаплеер и много чего другого, включая гимн России в аудио-формате. Для примера, игра Тетрис весит всего 1125 байт. Для работы системы нужно всего 8 мб оперативной памяти и процессор х86. При первом знакомстве я удивился скорости включения ноутбука на этой системе - прошёл всего миг! Ничего не вертелось, не пересыпалось (как в Windows), просто нажал на кнопку ВКЛ и система моментально загрузилась. Подробнее о системе можно узнать под катом.

История


Вам известно название MenuetOS? Это первая система, созданная ещё задолго до Колибри, но имеющая надежду стать самой быстрой графической ОС (движок Assembler). Над разработкой трудились люди разной национальности, в основном стран СССР. Вскоре эта система надоела автору, он решил сделать что-нибудь более интересное. Но его планы не удались. Российская сторона разработчиков перешла на сторону разработки своей ОС на основе Менуэта, АтомОС. В 2005 году и этому проекту пришёл конец. Но команда разработчиков из России и стран СНГ не намерена бросать свои достижения. В 2004 году стартовал самостоятельный проект КолибриОС на основе того же Менуэта. Проект постоянно улучшается и дополняется, что меня радует.

Общая информация


Внешний вид Колибри ОС


Официальная прошивка очень похожа на Windows Vista, что добавляет удобства использования. Можно изменить экран рабочего стола, иконки и т. д. На официальном сайте Колибри ОС есть даже такая графическая оболочка, которая похожа на рабочий стол Mac OS. Вирус для данной системы пока всего один, Menuet.Oxymorot. Впрочем он легко определяется встроенным антивирусом MenAV, в базе которого только одна запись. Для сёрфинга в интернете ОС подойдёт прекрасно, но некоторое время браузер открывал не все страницы правильно. Отписывался обычным html кодом, без преобразования.

Установка KolibriOS


Колибри ОС в эмуляторе QEMU


Устанавливать как основную ОС я не рекомендую. Всё таки пока мало возможностей. А вот на виртуальную машину установить вполне разрешаю:). Будет работать на огромной скорости на Limbo-эмуляторе для Андроид. Запустить очень просто, следуйте информации из топика На компьютере можно запустить систему прямо с готового диска. Подробнее об этом я напишу в обзоре Колибри (в следующих ВадБоксах).

Немного практики

Так как я начинающий программист, то в моей черепной коробке есть информация о разработке софта на KolibriOS. Так как эта система открытая, то можно писать программы прямо внутри ОС. Для создания простенькой проги, во встроенном редакторе TinyPad пишите код:
#include
#include
#include
#define FONT0 0
#define FONT1 0x10000000

Char header={«Hello World!»};

#define BT_NORMAL 0
#define BT_DEL 0x80000000
#define BT_HIDE 0x40000000
#define BT_NOFRAME 0x20000000

Void draw_window(){
_ksys_window_redraw(1);
_ksys_draw_window(100, 100, 300, 120, 0xaabbcc, 4, 0x5080d0, 0, 0x5080d0);
_ksys_write_text(50,30,FONT0, header, strlen(header));
_ksys_window_redraw(2);
}
int main(int argc, char **argv){

While(!0){
switch(_ksys_wait_for_event(10)){
case 2:return 0;

Case 3:
if(_ksys_get_button_id() == 1)return 0;
break;

Default:
draw_window();
break;
}
}
}

Сохраняем в формате *.c. Открываем с помощью встроенной программы Shell.
У вас должно получится следующее:


Теперь я постараюсь подробно объяснить о значениях кода.
Рисуем окно, код _ksys_window_redraw(1) затем _ksys_window_redraw(2) . Для ориентирования в пространстве, используем код _ksys_draw_window , отвечающий за координаты x/y, цвет, ширину, высоту, тип и т. д.
Чтобы появился текст, используем код _ksys_write_text.
Типы окон:
0 - тип I - окно фиксированных размеров (без скина)
1 - только определить область окна, ничего не рисовать
2 - тип II - окно изменяемых размеров (без скина)
3 - окно со скином (изменяемых размеров)
4 - окно со скином фиксированных размеров
Получилось? Программа написана на языке C, который стал поддерживаться Kolibri совсем недавно.
Понравилась вам такая миниатюрная ОС? Хотите, чтобы я сделал видео-обзор такой системы? Полезна ли данная статья? Нужно ли мне продолжать высыпать информацию по программировании из моей черепной коробки? Пишите ответы на все эти вопросы в комментарии, задавайте свои. Скачать Колибри можно на официальном сайте:

Сегодня и дома и на работе используются мощные компьютеры с огромным количеством памяти, операционные системы занимают не один гигабайт, а программ размером менее 500 кбайт становится найти всё сложнее и сложнее. Но ведь когда-то было совсем по-другому!.. Когда-то давным-давно ОС грузились с магнитных дисков, а размеры ОЗУ исчислялись килобайтами. Сейчас же времена "дискетных дистрибутивов" давно ушли, и, казалось бы, такие ОС исчезли навсегда, но... нет - история продолжается!

KolibriOS – предыстория одной маленькой птички

Любая ОС должна иметь какую-то особенность, которая выделала бы её из толпы многочисленных х86-собратьев, иначе у неё практически нет шансов быть замеченной. Считается, что уместить полноценную ОС с графическим интерфейсом на обычный 3,5" диск невозможно. И в абсолютном большинстве случаев это действительно так, но есть одно исключение. У многочисленных современных языков программирования есть старенький дедушка по имени Assembler . Крепкий такой дедуля старой закалки. Дело в том, что программы, написанные на этом языке, отличаются очень компактными размерами и высокой скоростью работы.

Другие языки программирования (C, С++, не говоря уже о Turbo Pascal, Basic и многих других) содержат множество избыточного программного кода, предназначенного для упрощения работы программиста, что замедляет работу всей системы в целом. Машинный язык ассемблера более "понятен " для компьютерного "железа " из-за отсутствия "лишних " команд.

И поэтому одна операционная система, всем назло, уместилась таки на дискетку, не забыв при этом прихватить с собой тот самый графический интерфейс. И называется героиня этой статьи KolibriOS .

KolibriOS – история

Тернистый путь этой маленькой ОС начался в 2000 году в Финляндии. Её создатель Вилли Туржанмаа (Ville Turjanmaa) задумал сделать однопользовательскую ОС для однопроцессорного компьютера, написанную на одном языке, а именно на Ассемблере (Assembler). Выбранный язык программирования, по его мнению, лучше всех подходил для создания новой ОС, в первую очередь из-за большой скорости выполнения кода.

Подобная идея была очень эффектной и оригинальной, что сыграло немалую роль в распространении дистрибутива. Подобный подход применялся и ранее, в конце 80-х, но предшественники - MenuetOS были малоизвестны и не обладали лицензией GPL (Свободное бесплатное распространение).

General Public Licence (GPL) - открытое лицензионное соглашение, принцип развития и существования многих ОС (например, Linux и FreeBSD). В самом простом приближении суть этой лицензии заключается в том, что каждый имеет неограниченное право изучать, произвольно модифицировать или изменять ПО, обладающее лицензией GPL без каких-либо ограничений, но результат такого изменения тоже должен быть выложен под лицензией GPL.

Изначально MenuetOS не предназначалась для повседневной работы пользователей. Базовым принципом существования подобных ОС является свободное творческое программирование, реализация собственных идей. Система создана для изучения работы компьютерной х86-архитектуры на самом низком уровне и плодотворного общения между разработчиками из самых разных стран.

Но MenuetOS быстро обрела графический интерфейс, поддержку звуковых карт, стандартных файловых систем FAT и множество других базовых возможностей. 5 сентября 2001 года после публикации интервью с Вилли Туржанмаа на известном web-портале , MenuetOS 0.54 получила широкую огласку в Интернете, что привело к стремительному росту популярности нового дистрибутива.

Многочисленные поклонники новой ОС быстро создали web-сайты на родных языках, что подогревало интерес у обычных пользователей, не владеющих английским языком. Через пару месяцев популярность пошла на убыль и вскоре с проектом остались только самые преданные фанаты, которые сочли MenuetOS лучшим инструментом для реализации своих творческих идей.

А что такое АтомОС?

Проект АтомОС создали наши соотечественники, самыми первыми отделившиеся от MenuetOS. Было их трое и на форумах они были известны под Protopopius , Trans и VaStaNi .

Цель проекта была аналогична негласным задачам KolibriOS - создать жизнеспособную операционною систему на ассемблере. Вот только создавать её предполагалось с нуля. Говорят, что ребятам удалось привлечь ещё несколько человек и даже собрать несколько тестовых сборок ядра. Но, к сожалению, случилось то, что часто постигает некоммерческие проекты - разработчики просто потеряли интерес к своему детищу...

С 2005 года всякие разработки были полностью прекращены. В сети осталось, по сути, только вот это .

А что было у нас?

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

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

К середине 2003 года настали тяжёлые времена - автор проекта потерял интерес к своему дистрибутиву и решил посвятить себя новому проекту Menuet64 - 64-битной операционной системе на ассемблере, в корне отличающейся от MenuetOS. Через год проект был окончательно заброшен создателем... В сложившихся обстоятельствах часть русской команды ушла из проекта и начала разработку собственного проекта - АтомОС .

Стоит отметить, что и в этот раз достижения отечественных программистов крайне неохотно и вяло включались в официальный дистрибутив MenuetOS, что приводило к различным конфликтам между "нашими" и зарубежными разработчиками. Новый руководитель проекта Майк Хиббет (Mike Hibbett) из Англии на первое время снял напряженность, открыв доступ российским наработкам для публикации в официальном дистрибутиве, но 2005 году, сославшись на занятость и он ушел со своего поста.

И всё повторилось заново - новый руководитель Ярослав Пельчар на непродолжительное время оживил разработку MenuetOS, появились свежие решения и … всё. На сегодняшний день в международных масштабах работа над проектом практически остановилась. Неужели это был конец?.. К счастью, сообщество разработчиков из стран бывшего СССР не пожелало расстаться с собственными достижениями и решило заняться разработкой новой ветки MenuetOS самостоятельно.

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

Наши программисты существенно доработали базовый дистрибутив, а также добавили множество новых возможностей. Список поддерживаемого оборудования был дополнен новыми принтерами и видеокартами. На сегодняшний день, возможна работа с разделами в FAT12, FAT16 и FAT32 , а также чтение с NTFS-разделов . По словам разработчиков, функциональность KolibriOS достигла уровня Windows 95, но существенно опережает последнюю по размерам и стабильности.

В российском дистрибутиве был преодолён ряд ограничений на использование USB, но реальное применение этой шины пока невозможно. Бывшим координатором проекта Майком Хаббетом была добавлена возможность использования стандартного сетевого протокола TCP/IP со всеми вытекающими возможностями в виде поддержки HTTP, FTP, TELNET, E-mail и IRC .

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

Проект относится к исследовательским ОС и на данный момент не предназначен для повседневного использования в качестве настольной системы. Возможности MenuetOS нашли и практическое применение - американская фирма GridWorks использует дистрибутив для организации онлайновых Интернет-сервисов.

Познакомимся поближе с KolibriOS?

Первое знакомство с KolibriOS проходит очень легко и быстро - достаточно записать образ на дискетку и загрузиться с неё. Процесс запуска KolibriOS таков:

Зато эта программка показала, что KolibriOS работает с DNS-сервером, а значит, теоретически будущее у интернет-приложений в этой ОС может начать уже очень скоро. Что же - будем ждать полноценной реализации сетевых возможностей в ближайших версиях.

А вирусы у вас есть?

Думаю, многим подобный вопрос покажется, как минимум, странным, ан нет-с, ответ на него будет утвердительным. Есть в KolibriOS и вирус, перекочевавший из MenuetOS. Называется вирус Menuet.Oxymoron и детектируется многими популярными антивирусами, например, Антивирусом Касперского.

Как и полагается, каждому вирусу должно быть противоядие, и им является MenAV , если можно так выразиться антивирус с одной единственной записью в базе. Интересен тот факт, что опять же многие популярные антивирусы, например, Dr.Web считают вирусом (точнее троянским конём) именно MenAV и называют его MeOS.Xymo . Такая вот история.

Продолжим разговор

Ознакомиться с содержимым любых дисков можно в стандартном файловом менеджере X-TREE, написанном специально для Колибри нашим соотечественником Павлишиным Евгением. Здесь стоит упомянуть, что при загрузке ОС автоматически монтирует жёсткие диски и, как итог, в X-TREE Вы сможете увидеть разделы Вашего винчестера (есть поддержка FAT32 и NTFS).


Файлы открываются одним кликом мышки сопряжённой программой. Хотелось бы отметить, в KolibriOS часики на курсоре не предусмотрены - всё срабатывает мгновенно или не срабатывает вообще...

Несмотря на "дискетный размер", маленьких игр в дистрибутиве предостаточно - тетрисом и арканоидами все будут обеспечены. Причём игры действительно маленькие, например, неплохой тетрис занимает менее 1125 байт. Очень впечатляет, даже если сравнивать с "миниатюрными" Java-играми для мобильных телефонов.

В целом интерфейс программы приятно радует свежими цветами и симпатичным точечным шрифтом. Настройка языковых параметров не требуется - для большинства сегодняшних разработчиков русский язык является родным. А посему KolibriOS разговаривает по-русски сразу после запуска.

Неистребимое племя текстовых редакторов живет испокон веков в каждом компьютере, местный текстовый абориген называет себя TinyPad 4.0.4.

Особенно порадовал Гимн России, который был жизнерадостно воспроизведён с помощью миниатюрного MIDI-плеера в шкурке от Winamp.

Во многом чувствуется "русская" рука программистов. Специально для русского дистрибутива был создан KFAR (Kolibri FAR) схожий со своим Windows-аналогом FAR - популярным творением Александра Рошаля, создателя не менее легендарного WinRAR.

Прямой конкурент KFM (Kolibri File Manager) оказался намного слабее KFAR хотя бы потому, что просто отказался копировать и просматривать выбранные файлы.

Прямо на дискетке выложено исчерпывающее количество документации по системе, присутствует даже руководство к игре "Фараон ". В демонстративных целях на дискетке выложено множество сетевых программ (серверы МРЗ, HTTPS, SMTPS ), программ мониторинга (тест скорости графики, Ghost monitor ), вьюверов графики, редактор иконок.

Для разработчиков в меню выделен целый раздел: НЕХ-редактор, упаковщики, отладчики и примеры программ. Для демонстрации возможностей 2D и 3D-графики выложено множество симпатичных "демок " - мини программ показывающих плоские и трёхмерные композиции из различных объектов.

KolibriOS – вместо заключения

В целом система создает приятное впечатление - красивый интерфейс, компактные программы, высокая скорость. Особенно радует "русский след ", вроде российского гимна прямо в дистрибутиве. Невольно появляется гордость за родную страну, за отечественных разработчиков, за то, что они сделали для маленькой ОС.

Очень часто нам задают вопросы «Для чего разрабатывается КолибриОС?» или же «Какова область применения ОС?» Поэтому было решено рассказать подробнее о том где и как можно применять КолибриОС, а также, что возможно даже более интересно, где и как она УЖЕ применяется.

Данная статья по большей части является обзорной. В ней будут описаны идеи и возможности применения КолибриОС как теоретические, так и доведенные до реализации. О том, как её используют уже сегодня, будет рассказано в следующей статье.

Наиболее перспективным направлением является промышленное применение и embedded-разработка. Особенности KolibriOS, которые делают привлекательным её применение в данных областях:

  • Компактное ядро с открытым кодом;
  • Минималистская простота и удобство графической подсистемы;
  • Достаточно развитый пользовательский интерфейс;
  • Приличный низкоуровневый системный сервис;
  • Поддержка наиболее популярных сетевых протоколов и файловых систем.
Ярким доказательством этого является Kolibri-A , форк от art_zh .

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

Некоторые особенности Колибри-А

  • Повышенные требования к аппаратной платформе .
  • Дополнительный API-сервис, предоставляющий пользователю расширенный и быстрый доступ к низкоуровневому вводу/выводу.
  • Бездрайверный ПДП и контроль нестандартной аппаратуры через доступный из пользовательского пространства статический системный буфер.
  • Расширенная поддержка функций PCI-express с элементами тренинга шины, MSI и контроля режимов питания.
  • Размер ядра заметно сокращен - исключены многие избыточные, узкоспециальные и рудиментарные системные структуры и функции:
    • исключены видеорежимы низкого разрешения (ниже 800х600);
    • оставлен единственный видеорежим (VESA2, глубина цвета 32bpp);
    • из файловых систем оставлена только FAT.
    • убирается поддержка APM; реализовано прямое управление электропитанием.

Её вполне реально вшить в ROM и поставлять компактные энергоэффективные x86-компьютеры с KolibriOS вместо BIOS, пригодные для использования во встроенных системах, или в качестве центральных узлов различных систем.
Что и было продемонстрировано art_zh (тема на форуме).

Скрытый текст

А теперь - собственно сабж:
(kolibri.img прошит в ROM, мышь и клавиатура отключены за ненадобностью)



Позже это же достижение повторил Anthony Lu на промышленном мини-компьютере eBox (тема на нашем форуме).

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

Из уже доступных на рынке плат подходит 86Duino . Одним из наших участников, hidnplayr , была проведена успешная загрузка на 86duino one с использованием Vortex86 VGA card (для этого им же в ревизии была реализована поддержка 16bpp VESA режима в ядре) и подготовлена инструкция по загрузке.

Ну а теперь пару примеров реального применения KolibriOS:

Исходя из вышесказанного можно выделить несколько направлений использования:

  • «Умный дом»;
  • Автоматизация процессов промышленного производства;
  • Бортовая электроника транспортных средств (почему бы и нет?);
  • Сбор и обработка большого объема данных (например, метеостанции).

Также, следует отметить, что MenuetOS/KolibriOS успешно ставили в банкомат, и, в принципе, вполне реально написать соответствующий банковский софт.

Скрытый текст


Это намекает на возможность использования КолибриОС в качестве замены DOS и старых версий Windows на компьютерах различных гос. организаций, таких как ЖД управление и Почта. При этом обновление оборудования вовсе не обязательно, а софт (при наличии исходного кода) можно портировать.

Colibri - современный веб-браузер без вкладок. Обозреватель представлен в весьма компактном варианте, как без многих основных, так и без каких-либо дополнительных возможностей. В скромном арсенале меню, доступен выбор поисковой системы (в том числе и Яндекс), присутствуют и слабые конфиденциальные опции, в виде блокировки файлов cookies, и запрета на "отслеживание", кроме этого, возможно задействовать плагин Adobe Flash Player, и очистить кэш.

Системные требования для ПК
Процессор с частотой 2100 MHz, или более мощный
Размер оперативной памяти 512 МБ, или больше
Свободное место на жестком диске - 55 МБ
Видеокарта с памятью не менее 512 Мб, или более
Архитектура с разрядностью 32 или 64 бит (x86 или x64)
____________________________________________________

Достоинства
Современный, легкий дизайн обозревателя
Переключаемый режим просмотра
Выбор поисковых систем, включая Яндекс
Быстрая установка плагина Adobe Flash Player для
просмотра PDF-файлов непосредственно с окна настроек
Безвкладочная структура отбражения веб-содержимого
____________________________________________________

Недостатки
Минимальный набор функциональных возможностей
Невозможность установки дополнений
Распространение обозревателя осуществляется по
подписке
____________________________________________________

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

Предыдущие версии браузера

Colibri 1.2.0

Размер: 49,8 МБ Скачать ЯДиск

Colibri 1.1.0

Размер: 49,8 МБ Скачать ЯДиск

Colibri 1.0.1

Размер: 49,4 МБ Скачать ЯДиск

Colibri 1.0.0

Размер: 49,4 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 30

Размер: 49,4 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 29

Размер: 44,7 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 28

Размер: 44,7 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 27

Размер: 44,7 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 26

Размер: 44,6 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 25

Размер: 44,6 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 24

Размер: 53,8 МБ Скачать ЯДиск

Colibri 1.0.0 Beta 23

Размер: 44,6 МБ Код ссылки на эту страницу
Код ссылки на
эту страницу
____________________________________________________
Архив Интерактив

KolibriOS умещается на дискету и загружается за несколько секунд. Для неё есть около 200 приложений, и разработчики видят несколько удачных применений своей системе.

Мысль написать операционную систему целиком на ассемблере странна, но привлекательна. Её главные плюсы - исключительная производительность и малый объём исполняемого кода. Минусы тоже очевидны - сложность и жёсткая привязка к архитектуре компьютера. Тем не менее смельчаки всё же находятся.

Самый известный проект такого рода - это MenuetOS и её ответвление KolibriOS , разрабатываемое по большей части в России. История этих операционных систем не лишена интриг и разногласий, и на то есть причины: во-первых, проект свободный (лицензия - GNU GPL второй версии), то есть его участники трудятся не за прибыль, а за идею. Во-вторых, такие решения, как выбор процессорной архитектуры, в силу особенностей проекта имеют драматический характер. Группа разработчиков, решившая сменить платформу, обречена на практически полную переработку исходного кода.

По сравнению с другими операционными системами MenuetOS совсем молода. Она разрабатывается с 2000 года и успела стать известной в программистских кругах ( , к примеру, статью "Мал золотник, да дорог", написанную Яковом Уваровым для "Компьютерры" в 2005 году). KolibriOS ещё моложе - она отпочковалась от Menuet в 2004 году.

За это время разработчики успели написать около 7,5 Мбайт кода на чистом ассемблере. Примерно такой же размер имеют исходники Linux, написанные преимущественно на Си, и это только ядро, тогда как в дистрибутив KolibriOS входит графическая оболочка и небольшой набор прикладных программ (смеха ради отметим, что, по оценкам , основанным на знаменитой "утечке" 2004 года, код Microsoft Windows 2000 занимал около 1,5 Гбайт).

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

"Компьютерра" побеседовала с двумя разработчиками KolibriOS - Дмитрием Переверзевым и Игорем Солодухой.

- Что такое KolibriOS?

Переверзев: "Колибри" - это маленькая операционная система с богатыми возможностями. Можно сказать, это такой современный DOS.

- Как я понял, не просто маленькая, а вообще крошечная?

Переверзев: Ядро занимает около 80 Кб. То есть сопоставимо с размером MS-DOS последних версий. А возможностей гораздо больше.

- Какова история "Колибри"?

Переверзев: В 2001 году финский студент Вилле Турьянмаа написал свою операционную систему на ассемблере. В 2004 году он решил, что тридцатидвухбитные компьютеры погибли, и перешёл на разработку MenuetOS 64 шестидесятичетырёхразрядной версии своей операционной системы. Сообществу это не понравилось, и оно продолжило разработку тридцатидвухбитной версии своими силами. И когда более половины кода было изменено, проект получил название "Колибри" в честь одной из русских сборок систем.

- И кто этим занимался? Вы тогда уже тогда участвовали?

Переверзев: Я пришёл в проект позже где-то на год. Тогда этим занимался Марат Закиянов. Собирал дистрибутивы системы.

- Сейчас он тоже в команде?

Переверзев: Да, сейчас он в команде, разрабатывает ядро, файловый менеджер (свой клон Total Commander), файловые диалоги и просмотрщик графики - замечательный zSea.

- Каков сейчас статус разработки?

Переверзев: Cейчас мы ожидаем выхода новой версии, но с номером ещё не определились. Прошлая была 0.7.7.0, а эта будет не то 0.8, не то 0.9. Считается, что по сравнению с прошлой версией изменений очень много. Например, появится поддержка устройств USB. Около года прошло со времени последнего релиза.

- Какая вообще у вас команда? Сколько человек активно помогают?

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

- А география какая? Разработчики в основном из России?

Переверзев: В основном СНГ, хотя есть и из Бельгии разработчики, русскоязычные из Англии. Я сам из Ставропольского края.

Какие у "Колибри" особенности по сравнению с другими системами, в том числе по сравнению с другими минималистичными системами?

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

Какие главные отличия "Колибри" от "больших" операционных систем? Чего пока нет, и что из этого собираетесь добавить?

Переверзев: Поддержка интернета очень важна в современном мире. TCP/IP и драйверы сетевых карт в "Колибри" уже есть. Сейчас мы работаем над браузером, все участники так или иначе что-то делают для его появления. Пока что есть только текстовый, с ограниченной поддержкой графики. Ему, конечно, ещё далеко до совершенства.

Солодуха: Наличие браузера - это новые пользователи и популярность системы.

Возможно, такая система вообще была бы популярна в качестве аналога Google ChromeOS - минимальная прослойка ОС плюс браузер. Как вы думаете?

Переверзев: Вполне возможно, тем более что минимальная реализация Flash у нас уже есть. Не совсем полноценная, зато на ассемблере.

- Какие ещё удачные применения вы видите?

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

Солодуха: Ещё системы, которые разрабатываются под своё "железо". Для них проектируют платы с нуля, для них сейчас пишется ветка "Колибри А".

- Какие у Колибри плюсы, кроме легковесности и быстродействия?

Солодуха: К примеру, "Колибри" можно загружать не только без диска, но и вообще без BIOS. Включаешь компьютер, и после теста оборудования сразу появляется "Колибри". В любом случае загрузка занимает три-четыре секунды после включения.

- Какие архитектуры сейчас поддерживаются?

Переверзев: Сейчас только процессоры x86, то есть начиная с 486 и до последних Core i7. Но только в тридцатидвухразрядном режиме.

- Шестидесятичетырёхразрядная версия существует, или она так и погибла?

Переверзев: MenuetOS 64 существует, но очень сильно отдалилась от своего предка.

- Её другая команда разрабатывает?

Переверзев: Её вообще разрабатывает один человек. Все тот же студент, но уже далеко не студент, наверное. У нас же сейчас есть эксперименты по запуску на многоядерных системах. Тридцатидвухбитное ядро системы запускается на тридцатидвухбитном ядре, а второе ядро процессора работает в шестидесятичетырёхбитном режиме. Вот так вот, по-хитрому.

Солодуха: Да, аппаратно такое возможно.

- У вас ведь ещё real-time-версия есть?

Переверзев: Она не совсем реального времени, но сам автор ветки говорит, что при некоторых изменениях, над которыми сейчас очень активно работают, "Колибри" можно использовать для встраиваемых систем, где важно гарантированное время отклика.

Солодуха: И сейчас уже очень малое время отклика. У нас на форуме можно посмотреть на результаты теста одной и той же программы, работающей напрямую с оборудованием, в Windows XP и в "Колибри". В "Колибри" выходит гораздо быстрее. Сейчас для реализации настоящей "риалтаймовости" нужно обеспечить гарантированное время отклика.

- Как у "Колибри" с поддержкой различных чипсетов (в том числе видео)?

Переверзев: VESA поддерживают все современные видеокарты, а ещё у нас есть порт линуксового драйвера ATI, и он поддерживает даже последние видеокарты ATI. Он, конечно, тяжеловат - 100 с лишним килобайт занимает, но позволяет использовать любые видеорежимы и даже аппаратное ускорение. К тому же регулярно обновляется.

- А из периферии что поддерживается?

Переверзев: С периферией тоже неплохо - есть поддержка USB, то есть клавиатуры и мышки работают.

- Что ещё планируется добавлять в обозримом будущем?

Переверзев: Трудно сказать, тут всё зависит от личного времени разработчиков.

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

- А сейчас какая кодировка?

Переверзев: Сейчас в системе де-факто 866, изменённая для поддержки русского, украинского, эстонского, латышского и ещё нескольких языков. Но в файловой системе используется Unicode, так что потихоньку переходим на него.

- Кстати, какие файловые системы поддерживаются?

Переверзев: FAT12, 16 и 32 - для записи и чтения, плюс ISO 9660 (это компакт-диски), и на чтение поддерживается NTFS, Ext2 и Ext3.

- Как в "Колибри" реализована многозадачность?

Переверзев: Можно создавать потоки, а вот процессов как таковых нет. Процесс - это множество потоков с общим адресом пространства.

- А защищённая память?

Солодуха: Есть стандартная для архитектуры x86 защита страниц.

- Межпроцессорное взаимодействие как-то реализовано?

Переверзев: Есть IPC и есть расшаренная память. То есть можно создать образ общей памяти и обмениваться данными между приложениями. Есть ещё общесистемный буфер обмена.

- Вы упомянули, что для "Колибри" существует около двухсот программ...

Переверзев: На самом деле их гораздо больше. Двести актуальных, которые хорошо работают.

- Что это за программы?

Переверзев: По статистике, больше всего игр - больше ста.

- Какие игры?

Солодуха: По большей части небольшие логические игры.

- Портированные с каких других систем?

Солодуха: Нет, это написанные для "Колибри".

Переверзев: На самом деле, написать игру гораздо проще, чем сделать что-то серьёзное вроде текстового или графического редактора. Поэтому программисты часто пробуют свои силы на небольших играх.

Солодуха: Есть аналоги игр с других систем - "сапёры", пасьянсы и так далее. Они написаны для "Колибри" с нуля. Но есть и полезные программы - несколько файловых менеджеров, включая клон Windows Explorer, клон Far Manager и Total Commander.

- Из известных игр что-нибудь портировали?

Переверзев: Есть Quake и Doom. Из эмуляторов есть DOSBox и эмулятор Nintendo. Кстати, в DOSBox можно запустить Windows 98 - я пробовал. Есть реализация языка Lua самой последней версии - 5.2. Есть рендер шрифтов Freetype и Mesa 3D - реализация библиотек OpenGL. Очень важная вещь: есть кодеки ffmpeg. Интересный факт: на несильной машине запускали двадцать-тридцать видеороликов одновременно, и загрузка процессора не превышала 50 процентов. В "Колибри" вообще оказалось довольно сложно загрузить процессор полностью.

- На чём в основном пишут программы?

Переверзев: На ассемблере.

- На высокоуровневых языках вообще не пишут?

Переверзев: Иногда пишут или портируют что-нибудь на Си или Паскале. Есть несколько программ на Lua.

Солодуха: Я ещё могу вспомнить, что кто-то из ребят пишет на таком языке, как Sphinx C--.

Переверзев: Кстати, это любопытный язык. Это такой Си, каким он мог бы когда-то быть. Когда-то давно Си был транслятором в ассемблер, а C-- им и остался, просто добавился синтаксический сахар в стиле языка Си. На нём написано много интересных программ.

- Я слышал, была реализация Python.

Солодуха: Есть tinypy, но программ на нём пока нет, и на нём не выйдет запустить произвольную программу на Python без изменений. Там нет некоторых важных особенностей языка - к примеру, генераторов и кортежей.

- Виртуальные машины есть? Не было ли идей, к примеру, портировать Java?

Переверзев: Сейчас ведутся разговоры о целесообразности этого. В принципе, технически это возможно. Вообще эталонную реализацию Sun я даже компилировал сам в "Колибри", но лицензия не позволяет её кому-нибудь показывать.

- Есть ли какие-нибудь идеи о коммерческом применении "Колибри"?

Солодуха: Мы сотрудничаем с израильской компанией Green Gadgets, которая выпускает компьютеры eBox и Edubook. Основной профиль компании - это маломощные гаджеты, которые могут работать даже от батареек. Например, eBox-3300, на котором мы показывали "Колибри", потребляет всего около 4,5 Ватт. У него нет ни жёсткого диска, ни вентиляторов, он совсем бесшумный.