Рубрика:
Программирование /
Программирование
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Сергей Кузьмин
KolibriOS: дайте ей шанс полетать на вашем компьютере
В середине февраля 2007 года новость о релизе KolibriOS 0.65 облетела весь Интернет. Еще бы: первая операционная система на Ассемблере, поддерживающая чтение разделов NTFS. У прочитавших эту новость сразу возникли вопросы: «Как появилась эта операционная система?», «Кто ее разрабатывает?», «Как ее установить?», «Что она предлагает пользователю и программисту?», «Каково ее будущее?»
Как появилась KolibriOS?
Это ответвление (fork) некогда очень популярной в России 32-битной операционной системы MenuetOS. MenuetOS была искусственно разведена на две ветки: открытую для 32-битных процессоров и закрытую для 64-битных. Этого искусственного разделения нет в KolibriOS, которая работает на 32- и 64-битных процессорах. KolibriOS распространяется согласно лицензии GPL, как и Menuet32.
Даже в кратком описании истории KolibriOS нельзя не упомянуть предшествовавшие ее появлению события.
Во второй половине 1990-х годов финский студент Вилле Турьянмаа писал графическую оболочку для DOS. Ему хотелось, чтобы его программы на Паскале выполнялись в многозадачном защищенном режиме и имели оконный графический интерфейс. Оболочка называлась MultiRun Program for IBM-PC. Программа обрастала возможностями и со временем превратилась в самодостаточную операционную систему (DOS уже не требовался), которая запускалась с дискеты. Называлась эта операционная система MrOS (http://web.archive.org/web/20010810054655/www.cc.jyu.fi/~villemt/mr.html), а объем ее исходных текстов на Паскале составлял 25 тысяч строк. В дистрибутив входили три десятка программ типа часов, проигрывателя AudioCD, игр, синтезатора пианино, регулятора громкости... В последних версиях велась работа над загрузчиком исполняемых файлов формата ELF, но наступил миллениум, и программисты всего мира начали говорить о Java, XML, скриптовых языках и прочих технологиях. Вилле понял, что его 16-битная ОС устарела и требуется что-то менять. С другой стороны, ему не нравилось медленное выполнение программ, написанных на интерпретируемых языках, наличие прослоек между программой и железом. Он решил написать самое быстрое ядро в мире, и единственным подходящим языком для этого оказался Ассемблер. Такое радикальное изменение курса вызвало недоумение у его соратника по MrOS. Ян-Микаэль Брюммер начал проект UNIX-подобной TabOS (http://www.tabos.org), хотя в дальнейшем он написал немного кода и для MenuetOS.
MrOS – предыдущая разработка В. Турьянмаа
Через несколько месяцев был выпущен релиз MenuetOS 0.01. Название было придумано еще во времена MrOS, но Вилле приберег его для новой ОС. Оно произошло от слов «Menu» и «Menuet», поскольку использование ОС должно быть простым (как работа с меню программ) и веселым занятием (как танец). В то время она разрабатывалась с помощью Ассемблера Nasm, и ее интерфейс был похож на интерфейс оригинальной MrOS. Например, некоторые части интерфейса MrOS (иконка готической буквы M и рисунок розы на экране завершения работы) использовались в MenuetOS несколько лет. Сообщество разработчиков MenuetOS было очень маленьким до 5 сентября 2001 года, когда было опубликовано интервью на сайте OSNews (http://www.osnews.com/story.php?news_id=93). Операционная система с графическим интерфейсом, написанная на Ассемблере и помещающаяся на дискету, – подобного мир не видел с начала 1990-х годов (PC/GEOS, http://en.wikipedia.org/wiki/GEOS_(16-bit_operating_system)). Люди загружали эту ОС, разносили весть о ней по форумам, создавали посвященные ей сайты. Отметим, что российские сайты были сделаны буквально через неделю после интервью. События 11 сентября 2001 года отвлекли внимание от MenuetOS, но развитие продолжалось.
MenuetOS была еще сырым проектом, и в ней многого недоставало. К Вилле стали присоединяться разработчики. В начале 2002 года был портирован Ассемблер FASM, и стало возможным компилировать ядро и программы прямо в MenuetOS, что ускорило процесс разработки. Затем Майк Хиббет начал разработку сетевого стека и ряда сетевых программ, благодаря другим программистам появилась поддержка форматов bmp, jpeg, wav, доступ к шине PCI.
В 2003 году в компьютерных изданиях вышли обзорные статьи о MenuetOS, которые привлекли к ней большое внимание в СНГ. Начался Menuet-бум, и сайт русскоязычного сообщества (http://menuet.narod.ru) занял одно из лидирующих мест по посещаемости среди сайтов операционных систем Рунета. Администратор сайта отмечал, что за год этого бума он получил 9588 писем и сайт посетили около 50 тысяч человек. Началась активная русификация MenuetOS, появлялись исправленные и новые программы. Появление российского дистрибутива стало неизбежным (отметим, что в 2001-2002 годах уже были российские сборки MenuetOS, которые расширяли ее возможности, но те исправления не были приняты в официальный дистрибутив).
В июле 2003 года вышел немецкий дистрибутив Gershi. Через некоторое время он был немного обновлен и частично переведен на русский язык Ростиславом «Sniper» Окуловым. Эта переведенная версия не понравилась Ивану Поддубному, и он выложил свой собственный дистрибутив, назвав его Menuet RE#1 (RE – Russian Edition). Развитие этого дистрибутива заложило основы взаимодействия внутри сообщества пользователей и программистов СНГ. Было выпущено еще несколько релизов, но часть изменений и ряд новых программ были отвергнуты Вилле.
Весной 2004 года Иван Поддубный заканчивал школу и поступал в университет. Из-за этого образовался перерыв со времени выпуска RE#6, и Марат Закиянов «Mario79» выпустил Kolibri 1, который включал в себя исправления для драйвера FAT32. Название Kolibri было предложено Станиславом «VaStaNi» Валыйских, потому что ОС на Ассемблере должна быть компактной и быстрой. Через некоторое время были выпущены RE#7 и Kolibri 2, включающие в себя драйвер FAT16, автоматическое определение размера ОЗУ, поддержку gif. Летом 2004 года Ярослав Пельчар портировал Doom, Quake и несколько других игр с помощью своих наработок (С library).
Вилле передал руководство Майку Хиббетту в июле 2004 года, мотивируя это занятостью из-за переезда в Париж. Что-то у него не заладилось с переездом, и в сентябре он начал писать ядро новой ОС – Menuet64. Русскоязычное сообщество узнало об этом только в ноябре.
Осенью 2004 года Иван Поддубный выпустил 3 беты дистрибутива RE#8, которые включили в себя новую подсистему отрисовки GUI и плеер wav-файлов для материнских плат со встроенным звуком. В это время Майк Хиббет оказался слишком занят на работе и вернул руководство Вилле в конце декабря.
Весной 2005 года Иван Поддубный выложил ядро, размер которого был уменьшен на 20% по сравнению с официальным при большей функциональности. Это ядро легло в основу дистрибутивов Kolibri 3 и Kolibri 3 SE, представивших улучшенный интерфейс пользователя (минимизацию окон и модифицированная панель задач), расширение набора системных функций и поддержку формата rtf.
В это время встал вопрос о лидере проекта. Вилле был занят развитием Menuet64 и не мог выпускать дистрибутивы, поэтому он предложил Ярослава Пельчара на роль лидера. После споров по ряду вопросов (почему Си-программист становится лидером ОС на Ассемблере, почему разработчики из русскоязычного сообщества не могут претендовать на роль лидера) он был утвержден форумом. Все возлагали на него большие надежды после выпущенного им релиза 0.79pre1 и проведенного конкурса по написанию новых игр. Но он перешел в сообщество операционной системы Syllable через несколько месяцев.
Выпущенный в июне дистрибутив Kolibri 4 принес автоматическое определение мыши и дисков/разделов ЖД, а также новый загрузочный экран, позволяющий выбирать частоту вертикальной развертки монитора.
В июне 2005 года вышла Menuet64 0.01, и Вилле дал понять, что развитие этой ОС должно быть основной целью не только для него, но и для всего сообщества (хотя в то время 64-битных компьютеров ни у кого кроме него не было). Исходные тексты Menuet64 были закрыты, поэтому ведущих программистов сообщества Menuet32 она не привлекла. Была продолжена работа над дистрибутивом Kolibri. Развитие Kolibri раздражало Вилле, и он поругался с нашей командой, что привело к разрыву отношений.
Выход очередной версии Kolibri в октябре 2005 года стал знаковым: поддержка FAT12 и менеджмент памяти, улучшенный драйвер RAM-диска и новая семантика обращения к жестким дискам. Различие между ядром Kolibri и MenuetOS достигло 50% – признак того, что родилась новая операционная система! Эта версия получила название KolibriOS 0.50 в знак сохранения преемственности от дистрибутива Kolibri.
Изменения в версиях 0.52 и 0.53 касались улучшения загрузочного экрана, вывода шрифтов на экран, обработки мыши, графического интерфейса ОС. Появилась поддержка MIDI-файлов.
В версии 0.58 были серьезные изменения в работе с жесткими дисками (в том числе поддержка длинных имен файлов), появилась поддержка файловой системы CDFS и стандарта управления питанием APM.
В версию 0.60 были включены улучшения работы в некоторых графических режимах, в работе с мышью и жесткими дисками, в ней также появилась поддержка вывода ASCIIZ-строк.
Выход KolibriOS 0.63 был связан с внедрением поддержки внешних драйверов и динамических библиотек, поддержкой DMA для жестких дисков и формата музыкальных файлов mp3.
В последний на текущий момент релиз 0.65 включена поддержка файловой системы NTFS (только чтение и запуск программ), нестандартных курсоров мыши и изменения в нескольких десятках программ.
KolibriOS в работе: игра «Гробница фараона», файловый менеджер KFM, программа для снятия скриншотов
Кто ее разрабатывает?
В настоящий момент KolibriOS развивается благодаря усилиям трех десятков человек, среди которых есть представители Белоруссии, Бельгии, Германии, Казахстана, Молдавии, России, Узбекистана, Украины, Эстонии и ряда других стран. Примерно треть из нашей команды разработчиков участвовала в разработке оригинальной MenuetOS. С версии 0.60 сборкой дистрибутива занимается Евгений Гречников «Diamond». В июле 2006 года был открыт сайт http://kolibrios.org (администратор сайта – Михаил Семеняко «mike.dld»). Форум для русскоязычных пользователей находится на http://meos.sysbin.com.
Как ее установить?
Для установки подойдет любой компьютер класса Pentium, 16 Мб ОЗУ и видеокарта с поддержкой VESA. Для работы ОС ее образ должен быть загружен в память (в так называемый RAM-диск). Запакованный в архив образ формата img вместе с документацией можно скачать на сайте http://kolibrios.org. Пользователям Windows может понадобиться программа WinImage для управления файлами внутри образа (например, обновления ядра и добавления новых программ) – ее можно скачать на http://winimage.com. Существует множество вариантов загрузки: с винчестера (FAT- или NTFS-раздел), с дискеты, с компакт-диска, с flash-накопителя. Подробности настройки загрузочных устройств изложены в документации к ОС (файл install.txt). Также можно запускать KolibriOS в виртуальных машинах типа Bochs, Qemu, VMWare.
Во время загрузки появится синий экран, где указываются некоторые настройки типа разрешения экрана. Измените значения параметров (если настройки по умолчанию не устраивают) и продолжайте загрузку.
После загрузки появится рабочий стол. Для быстрого доступа к настройкам интерфейса можно использовать контекстное меню, появляющееся по щелчку правой кнопкой мыши на рабочем столе. Для настройки устройств раскрывайте главное меню: «Меню -> Система -> Настройка -> Настройка устройств». Можно просто щелкнуть курсором по букве S на панели задач для вызова программы «Настройка устройств» (Setup). Настройка устройств заключается в конфигурации некоторых параметров работы, касающихся звуковой карты, раскладки клавиатуры и т. п.
Для работы в KolibriOS важно знать, как выглядят пути к файлам. Путь к файлу b.bmp на первом разделе первого по индексу жесткого диска выглядит так: /hd0/1/b.bmp, на компакт-диске – /cd1/1/b.bmp, на дискете – /fd/1/b.bmp, а на RAM-диске – /rd/1/b.bmp.
Что KolibriOS предлагает пользователю и программисту?
Для KolibriOS разработано более 250 программ. Конечно, это немного в сравнении с ОС, разработка которых началась еще в 80-90-х годах (Windows, Linux, BeOS, *BSD), но отсутствие программ как раз привлекает разработчиков, выступая в качестве хорошей возможности опробовать свои силы. Благодаря портированному DOSBox возможно запускать еще тысячи программ, написанных для DOS.
Офисных программ немного, но текстовый редактор TINYPAD является продвинутым (многодокументный интерфейс, смена кодировки, подсветка синтаксиса, нумерация строк, компиляция исходных текстов прямо из редактора) в сравнении с аналогами из любых других ОС. Также есть возможность просмотра файлов формата rtf в программе RTFREAD. Естественно, есть календарь, калькулятор и англо-русский словарь. Можно просматривать архивы в форматах zip, tar.gz.
Для любителей мультимедийных развлечений есть возможность просмотра графических файлов форматов bmp, gif, jpeg, png и 3ds, прослушивания музыкальных файлов форматов mid, mp3, wav и обычных аудиодисков. Редактор графики ANIMAGE позволяет создавать и редактировать рисунки. KolibriOS оснащена отличным скринсейвером.
По какой-то непонятной причине для MenuetOS и KolibriOS больше всего разрабатывалось файловых менеджеров (не менее 7 программ). Сейчас наиболее часто обновляются менеджеры KFAR (аналог FAR) и KFM (аналог Total Commander). В скором времени KFAR будет поддерживать распаковку архивов в форматах zip и 7z.
Есть несколько десятков игр (тетрис, арканоид, «15», сапер, шашки, сокобан и др.), в том числе портированные версии Doom и Quake. Многие игры можно запускать в портированных DOSBox и ScummVM.
Существует несколько программ для идентификации, мониторинга состояния, тестирования компьютерного железа (процессора, материнской платы и других устройств).
Хотя сетевой стек пока еще дорабатывается (ведутся работы над поддержкой обработки прерываний от сетевых карт), но сетевых программ уже написано несколько десятков.
Есть даже две научные программы – таблица Менделеева и программа для мессбауэровской спектроскопии.
Разработчик может писать библиотеки, драйверы и программы не только на Ассемблере, но и на языках высокого уровня типа С++, С, C--, Modula, Паскаль, Форт. Инструкции по использованию некоторых компиляторов языков высокого уровня есть в статье http://diamondz.land.ru/hll/hll.htm. Есть компрессоры исполняемых файлов, hex-редакторы и средства отладки. Есть эмуляторы для запуска программ Kolibri/Menuet32 в Windows, что ускоряет процесс разработки.
Каково ее будущее?
Летом (2007 года) планируется переписать ядро и программы для ускорения работы на 64-разрядных процессорах. Это изменение приведет к невозможности запускать программы Menuet32 в KolibriOS, но мы мало что теряем, поскольку Menuet32 практически не развивается.
Уже положено начало единой библиотеке элементов графического интерфейса, что ускорит разработку новых программ и их функциональность. В планах разработчиков: поддержка шрифтов TrueType; улучшение мультимедийных, офисных и сетевых программ; портирование компилятора языка Cи (уже есть наработки по Tiny C Compiler и Open Watcom); расширение функциональности в работе с файловыми системами; создание системного буфера обмена; поддержка USB и SMP.
Заключение
Несомненными преимуществами KolibriOS перед многими другими операционными системами на дискете являются: большое количество программ, возможности обращения к внешним дисковым накопителям и сохранения результатов работы, высокое быстродействие, настраиваемый и приятный интерфейс, открытость исходных текстов.
Ее можно рекомендовать программистам, желающим попробовать свои силы в создании ОС или изучении Ассемблера. Наличие эмулятора DOS и набор интересных игр могут привлечь внимание детей, обучающихся использованию компьютера. Вместе с тем она достаточно функциональна и может использоваться для замены Windows в ряде задач. Одна из американских компаний уже несколько лет использует MenuetOS и KolibriOS на своих компьютерах.
Поскольку KolibriOS разрабатывается в основном разработчиками из СНГ и распространяется бесплатно, то проблем с ознакомлением с ОС и установлением контактов c сообществом у заинтересовавшихся не будет.
- Официальный сайт – http://kolibrios.org.
- Форум русскоязычных разработчиков – http://meos.sysbin.com.
- Форум зарубежных разработчиков – http://meos32.7.forumer.com.
- Статья об установке на flash-накопитель – http://www.kolibri.hut1.ru/load_usb.htm.
- Обзор С. Кузьмина (2004 год) – http://comprice.ru/pop/2004-50.phtml.
- Обзор М. Закиянова (2005 год) – http://kolibri.hut1.ru/info.htm.
- История MenuetOS от С. Кузьмина и А. Халявина (2005 год) – http://coolthemes.narod.ru/history2.html.
- Официальный сайт Menuet32 и Menuet64 – http://menuetos.net.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|