Virelart - Компьютер Шаг за Шагом

Колибри операционная система. Операционная система KolibriOS

В отличие от Windows, операционная система Linux представлена куда большим числом версий и модификаций. Несмотря на существующие между ними очевидные различия, все они произошли от одной единственной операционной системы Unix, разработанной ещё в далёком 1969 году. Но есть среди них и такие, которые вполне можно принять за полностью самостоятельные проекты. Как раз одной из таких систем является KolibriOS, разработанная программистами-энтузиастами стран СНГ.

История рождения KolibriOS

Во второй половине 90-х годов некий финский студент по имение Вилле Турьянмаа занимался разработкой графической оболочки для DOS. Называлась она MultiRun Program for IBM-PC. При этом он так увлёкся, что и не заметил, как его программа сама мало по малу начала превращаться в самостоятельную операционную систему, способную запускаться с дискеты, что и не удивительно, ведь использование DOS как основы в то время уже не требовалось.

Получившая название MrOS новая операционная система была написана на Pascal и включала в себя набор из трёх десятков относительно простых программ. В общем, не будь в обиду сказано, была она довольно примитивной 16-битной ОС, а тут ещё как назло всё большее признание стали получать ещё новые в то время скриптовые языки, а также Java и XML. К тому же, разработчика смущало слишком медленное выполнение написанных на интерпретируемых языках программ.

И Вилле Турьянмаа принял решение создать самое быстрое в мире ядро, а заодно устранить все прослойки между «железом» и программным обеспечением. Для этого ему пришлось отказаться от использования популярных в то время языков программирования и обратиться к единственно подходящему для осуществления этой цели ассемблеру. Написанная на низкоуровневом языке программирования операционная система под названием MenuetOS практически сразу привлекла внимание независимых разработчиков, благодаря чему число её приверженцев стало быстро расти, а сама система начала быстро набирать популярность.

В 2004 году один из программистов сообщества, некто Иван Поддубный, до этого занимавшийся разработкой усовершенствованных русских редакций MenuetOS представил облегченное ядро системы, которое, несмотря на уменьшенный вес, обладало большей функциональностью. Это ядро и легло в основу дистрибутивов Kolibri 3 и Kolibri 3 SE. В то время Kolibri развивалась параллельно с MenuetOS, хотя и не считалась самостоятельным продуктом.

Надо сказать, появление Kolibri весьма раздражало Вилле Турьянмаа, для которого его детище оставалось главнейшим приоритетом. И он стал требовать, чтобы сообщество, уже порядком заинтересовавшееся новым проектом, отказалось от его продвижения и продолжало направлять свои силы в правильное, как это представлялось самому Вилле, русло. Так и случилось, что в команде Турьянмаа произошёл раскол.

Катализатором разрыва послужил переход главной ветки проекта MenuetOS на 64-битную разрядность с одновременным закрытием исходных кодов, что не могло не вызвать недовольства многих разработчиков, в отличие от Турьянмаа не обладавших 64-битными компьютерами. В результате оных событий часть программистов отказались от работы над MenuetOS и переключились на Kolibri.

KolibriOS сегодня

Работа над KolibriOS продолжается и по сей день. Участие в развитие проекта принимают около 30 человек из Европы и стран бывшего СНГ. На сегодняшний день Kolibri является самой маленькой и лёгкой операционной системой в мире . Вес установочного образа в формате ISO с системой, драйверами, играми и программами составляет каких-то 38,3 мегабайт , а минимальный объём требуемой для её запуска оперативной памяти - всего 8 Мб .

Работает система на архитектуре 86x , но также поддерживает и 64-разрядные процессоры. Основные файловые системы - FAT16 и FAT32 , имеется ограниченная (только для чтения) поддержка NTFS , ISO 9660 и Ext2/3/4 . Есть поддержка USB , многозадачности, TCP/IP -стека и некоторых сетевых карт.

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

Установка и запуск KolibriOS

Как в таковой в установке KolibriOS не нуждается и может запускаться точно так же, как и любой «живой» диск. Также систему можно запускать непосредственно с жёсткого диска компьютера с установленной Windows, а также на виртуальной машине VM VirtualBox или VMware Workstation. Правда, в последнем случае некоторые возможности KolibriOS могут быть недоступны по причине отсутствия поддержки ею расширений гостевых операционных систем.

Установка на VirtualBox

Процедура установки на VirtualBox элементарна. Тип операционной системы в окне мастера виртуальной машины можно установить Other и Other/Unknown.

Объём оперативной памяти выделить 64 Мб (хотя хватило бы и 8 Мб ).

Тип носителя и размер виртуального диска оставить по умолчанию.

Если вместо образа ISO вы используете IMG , перед запуском машины придётся выполнить кое-какие настройки. В главном окне VirtualBox выберите «Настроить» , перейдите в раздел «Носители» , нажмите кнопку добавления контроллера и добавьте новый контролер типа Floppy .

И через стандартный обзор добавляем файл IMG .

Запуск с жесткого диска из под Windows

На сайте разработчика, а также посвященных KolibriOS форумах можно найти описания разных способом запуска системы с жёсткого диска, но мы рассмотрим только один из них. Работает он на Windows Vista, 7 и 8,1.

1. Скачайте архив с файлами операционной системы, распакуйте его и скопируйте или переместите папку kolibri на диск C


2. Зайдите в неё, найдите файл kolibri.img и скопируйте его в корень диска C


3. Перейдите по адресу C:/kolibri/HD_Load/mtldr и скопируйте файл загрузчика mtldr в корень диска C


4. От имени администратора запустите файл vista_install.bat из папки с загрузчиком mtldr

Теперь, если вы перезагрузите компьютер, то попадете в меню выбора загрузки операционной системы.

Чтобы удалить загрузчик, запустите файл vista_remove.bat .

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

Практическое значение KolibriOS

По вполне понятным причинам большого практического значения KolibriOS иметь не может, так как не поддерживает работу с программным обеспечением Windows, а её собственные приложения недостаточно функциональны. В первую очередь KolibriOS можно порекомендовать программистам, желающим попробовать свои силы в изучении ассемблера.

Также эту операционную систему можно использовать как «спасательный диск» для обеспечения полного доступа к файловой системе Windows. В более широком контексте KolibriOS можно рассматривать как инструмент развлечения, благодаря входящим в её состав эмуляторам, например того же DosBox, позволяющего запускать приложения и игры, написанные для MSDOS.

Пожалуй каждый, кто интересуется KolibriOS, знает, что единственным способом выйти в глобальную сеть был и есть и посей день текстовый браузер написанный одним из наших разработчиков практически с нуля. Этот браузер пожалуй является одной из «достопримечательностей» ОС, и потому было решено поведать его историю: как он появился, развивался, и каковы планы на ближайшее будущее. Кому интересно, добро пожаловать под кат.

Пост создавался в тесном сотрудничестве с автором программы Leency , и потому повествование идет от его лица.

Не будь я таким наивным дураком, никогда бы не взялся писать браузер! Ещё diamond (@grechnik), умудренный опытом программист, говорил, что в жизни бы не решился на такую авантюру. Но я был молод и чувствовал, что на пороге великих открытий. Это неописуемое ощущение, как будто весь мир лежит у моих ног - стоит лишь протянуть руку и он весь твой. Потому первой программой, которую я решил написать был файловый менеджер аля Проводник Windows, а второй - браузер. Так сказать, “Hello World” занятие для слабаков, крутые программеры начинают с браузеров.

Всё это несчастье началось тёплым июльским днём 2008 года, через полгода после того, как Костя Veliant сбросил мне исходники просмотрщика HTML, возможности которого, за исключением отсутствия поддержки сети, практически ровнялись текущему на тот момент браузеру Колибри HTTPC.

Программа эта называлась просто «HTML Viewer in C--». Я начал с того, что адаптировал код программы под новую версию библиотеки (menuet.h-- → kolibri.h--), улучшил дизайн, добавил поддержку клавиш управления, скролл колёсиком. Из минусов - текст выводился в окно по одной букве:)

Ниже скриншот первой версии 0.00001, вышедшей 20 июня 2008 года.

Уже через 2 дня последовало обновление до версии 0.1 в списке изменений которой было:

  • более или менее полная поддержка тегов: b, strong, i, u, s, br, pre, title, li, p;
  • поддержка вложенных тегов;
  • полоса адреса (EditBox) от Lrz ;

В версии 0.2 текст стал выводиться не побуквенно, а строчками, добавлено схлопывание двух и больше идущих подряд пробелов в один.

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

Кстати, замечу, что всё это время программа была не браузером, а лишь отображала HTML страницы, отсюда и название HTMLv (HTML Viewer). Переломный момент случился в версии 0.48.5 за что спасибо barsuk "у:

«Я взял HTTPC, отрезал отображение html и прикрутил динамическое выделение памяти под веб-страницу. Если эту штуку объединить с HTMLv, получится браузер.»

Что и было сделано. Обрезанный HTTPC нарекли загрузчиком файлов и переименовали в downloader. А вот первые скриншоты страничек, загруженных браузером через downloader:

Связка «HTMLv+downloader» работала адски стрёмно: если адрес страницы начинается с "http://", то HTMLv запускал downloader с параметром адреса страницы. Downloader скачивал файл, HTMLv смиренно ждал. Когда downloader заканчивал, то сохранял страницу в "/sys/.download" и закрывался. HTMLv палил этот момент и открывал сохранённую страницу.

Да, это дико костыльно, но это работало! Это был первый реальный способ выйти в Интернеты с Колибри и с трудом прочитать там что-то. Это может показаться смешным, но это был важный психологический момент - теперь в Колибри есть окно в открытый мир.

Кстати, о хаках… Кто знаком с Колибри, отлично знает, что в ней всегда существовала проблема со шрифтами: их системных всего два: моноширинный и… немоноширинный. В 90% используется моноширинный и размер буквы в нём равен 6х9 пикселей. Никакого полужирного и курсивного начертания. Но оно есть в браузере! Жирный шрифт - это две строки текста, наложенные друг на друга со смещением в один пиксель по оси Х. С курсивным всё несколько интереснее. Первая версия была реализована lev"ом в версии 0.63: вначале в окно выводился обычный текст, потом экран скринился в память и потом выводился заново в окно со смещением |||| → //////

Новики последующих версий касались добавления меню ПКМ, поддержки якорей, системы кэширования изображений.

Вот скрин тестовой страницы acid_0.1.html, которая долго использовалась для проверки браузера.

Но чем дальше, тем больше складывалось впечатление, что я иду не по тому пути…

С этим нужно было что-то делать. Помните начало статьи? «Потому первой программой, которую я решил написать был файловый менеджер аля Проводник Windows, а второй - браузер. Так вот, код Eolite был переписан эволюционным путём: шаг за шагом, кусочек за кусочком и со временем стал логичен, читабелен и прост. Код HTMLv же, по прежнему оставался неструктурированным и его сложно было модифицировать и поддерживать, а добавление новой фичи неизбежно приводило к множеству проблем. С горестью осознав этот момент, я взялся приводить его в порядок. Первой ласточкой в этом не легком деле стал HTMLv 0.99.

В HTMLv 0.99 было реализовано рисование в буфер. Т.е. раньше строка текста выводилась следующим образом: в окно рисуется прямоугольник фонового цвета, поверх выводится текст. Теперь же в памяти создавался „рисунок“, заливался фоновым цветом, в него рисовался текст и линии и в конце концов в окно выводился этот самый готовый рисунок. Это увеличило скорость и даст новые возможности в перспективе.

Версия 0.99.1 обрела поддержку тегов и, а также align=»center" и align=«right»

В версии 0.99.31 случилось знаковое событие:
С этой версии компонент WebView, отображающий содержимое страницы в HTMLv, вынесен в отдельный модуль и может быть скомпилирован в составе другого проекта на С--. Делалось это для отображения содержимого письма в почтовом клиенте Liza и с целью улучшения структуры кода.

Начиная с версии 1.0 beta 1 программа была переименована в WebView. Сделано это было не зря, ведь программа за последние пару версий заметно подросла. В этой же версии по мимо нового имени программа получила:

  • нативную поддержку работы с сетью посредством HTTPlib написанной hidnplayr на FASM"е (downloader больше не требовался)
  • новый дизайн
  • отображение процесса загрузки страницы через прогресс бар
  • отображение адреса в статус баре при наведении курсора на ссылку
  • поддержку скинов

В последующих версиях была улучшена поддержка тегов и исправления проблем, а также допиливание нового функционала. Следующее значимое изменение было сделано в WebView 1.0 Beta 4: просмотр исходного кода страницы в браузере с подсветкой синтаксиса.

Последней на сегодня версией является WebView 1.0 Beta 6.1. В ней была проведена значительная работа по оптимизации программы.

Небольшой видео обзор:

KolibriOS является форком MenuetOS и не имеет связи ни с семейством UNIX, ни со стандартом POSIX. Система написана на свободно распространяемом многопроходном ассемблере fasm. Этот факт обеспечивает миниатюрность, высокую скорость и низкие требования к оборудованию. Загрузочный LiveCD занимает около 7-ми мегабайт, а основные компоненты способны уместиться и на дискете (1,44 МБ).

Но малый вес вовсе не означает отсутствие функционала. Здесь реализован пользовательский интерфейс на основе VESA, присутствует набор драйверов, браузер, текстовый процессор, графический редактор и просмотрщик, средства разработки, простенькие игры и множество других программ. Из файловых систем полностью поддерживаются FAT12, FAT16, FAT32, а частично (только чтение) - NTFS, ISO9660, Ext2, Ext3, Ext4.

Системные требования

  • CPU: Intel Pentium / AMD 5x86 / Cyrix 5x86 без MMX с частотой 100 MHz
  • RAM: 8 Mb
  • Видеокарта: поддерживающая VGA (режим 640*480*16) или Vesa
  • Клавиатура: AT
  • Мышь: COM или PS/2

Поддерживаемые загрузочные устройства

  • Floppy 3.5
  • IDE HDD LBA
  • CD/DVD
  • USB Flash

Из языков доступны английский, русский, итальянский и испанский.

Установка

  • На дискету:
  1. Скачиваем универсальный образ
  2. Записываем образ
  • из-под Linux:
    • dd if=kolibri.img of=/dev/fd0

  • из-под Windows:
    • rawrite2 -f kolibri.img -d A

  • На жёсткий диск (с использованием GRUB или GRUB2):
    1. Скачиваем универсальный образ
    2. Распаковываем его в папку kolibri в корне диска
    3. Настраиваем загрузчик
    • GRUB. В menu.lst добавляем строки:
      • label KolibriOS
        root (hd0,0 )
        kernel /kolibri/HD_Load/memdisk
        initrd /kolibri/kolibri.img

    • GRUB2. В grub.cfg добавляем строки:
      • title KolibriOS
        search --no-floppy --fs-uuid --set=root UUID
        linux16 /kolibri/HD_Load/memdisk
        initrd16 /kolibri/kolibri.img

  • На USB-флешку:
    1. Скачиваем универсальный образ
    2. Распаковываем его в любую папку
    3. Устанавливаем загрузчик
    • из-под Windows:
      • Запускаем файл HD_Load\USB_Boot\inst.exe
      • Копируем kolibri.img в корень флешки
    • из-под Linux:
      • Устанавливаем GRUB2 на флеш-карту: grub-install /dev/sdb
      • Последующие действия аналогичны установке на жёсткий диск
  • На CD-диск:
    1. Скачиваем Загрузочный LiveCD
    2. Записываем его на носитель
    На самом деле существует множество способов установки системы на жёсткий диск или флешку. Я указал лишь самые популярные и ориентированные на то, что уже имеется любой другой Linux-дистрибутив.

    И да, чуть не забыл: (hd0,0), UUID и /dev/sdb являются переменными. Поэтому Вам следует заменить эти значения на свои. Вот как их узнать:
    (hd0,0) . Первое число - номер винчестера. Второе число - номер раздела на искомом винчестере. Счёт ведётся с 0.
    UUID . Идентификатор для нужного раздела. Получить его можно командой ls -l /dev/disk/by-uuid в любой Linux системы.
    /dev/sdb . Файл устройства в linux. Узнать его можно как из файлового менеджера, так и из консоли или утилиты разметки дисков. Имеет вид /dev/sdX для SATA-устройств и /dev/hdX для дисков, подключённых к IDE.

    Надеюсь, что с установкой Вы успешно разобрались.
    Если у Вас возникли какие-либо вопросы/проблемы, то задавайте их в комментариях.

    А сейчас пришло время осмотреться в KolibriOS.

    Скриншоты

    Примечание: нажмите на изображение для его увеличения


    Старт загрузки KolibriOS


    Выбор видеорежима из списка поддерживаемых






    Содержимое меню "Игры" > "Логические"


    Содержимое меню "Игры" > "Аркады"


    Содержимое меню "Демки" > "Трехмерные" (демонстрация возможностей графической системы)


    Содержимое меню "Графика"



    Содержимое меню "Разработка" > "Примеры"


    Содержимое меню "Система" > "Настройка"


    Содержимое меню "Система" > "Системные сенсоры"



    Содержимое меню "Система" > "Тестирование"


    Содержимое меню "Система" > "Спец. возможности"


    Содержимое меню "Обработка данных"


    Содержимое меню "Сеть" > "Серверы"



    Содержимое меню "Разное"





    Судоку, сапёр, шашки




    Системный монитор. Открывается нажатием на нечто красно е в трее



    Окно завершения работы

    Особый интерес вызывает интерфейс системы. Ведь её размер крайне мал и может возникнуть мысль, что интерфейс убог. Но это не совсем так. Здесь нужно рассматривать такие критерии как внешний вид и функциональность. Внешний вид порадовал: он воспринимается наравне с оконными менеджерами в Linux системах.

    Итоги

    Мне KolibriOS понравилась. Да, мало кто станет использовать её в качестве основной операционной системы. Но для меня она стала символом упорства, веры в свои силы и успех. Вот уже 9 лет ведётся разработка колибри на ассемблере fasm. Сделано уже многое, но проект продолжает жить и развиваться. Недавно, например, появилась поддержка USB. И каждый день(!) выходят ночные сборки, реализующие новые функции.
    Одним из самых главных недостатков является отсутствие привычных программ. А это не есть хорошо. Но зато можно

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

    Развитие «Колибри» шло довольно быстро вплоть до 2009 года. Птичка научилась летать на разном железе, минимально требуя первый «Пентиум» и восемь мегабайт оперативной памяти. Минимальные системные требования «Колибри» таковы:

    • ЦП: Pentium, AMD 5x86 или Cyrix 5x86 без MMX с частотой 100 МГц;
    • ОЗУ: 8 Мбайт;
    • видеокарта: VESA-совместимая с поддержкой режима VGA (640 × 480 × 16).

    Современная «Колибри» - это регулярно обновляемые «ночные сборки» последней официальной версии, вышедшей в конце 2009 года. Мы тестировали билд 0.7.7.0+ от 20 августа 2017 года .

    WARNING

    В настройках по умолчанию у KolibriOS отсутствует доступ к дискам, которые видны через BIOS. Хорошенько подумай и сделай бэкап, прежде чем менять эту настройку.

    Изменения в ночных сборках хоть и невелики, но за годы их накопилось достаточно. Обновленная «Колибри» может писать на разделы FAT16–32 / ext2 - ext4 и поддерживает другие популярные файловые системы (NTFS, XFS, ISO-9660) в режиме чтения. В ней появилась поддержка USB и сетевых карт, был добавлен стек TCP/IP и звуковые кодеки. В общем, в ней уже можно что-то делать, а не просто посмотреть разок на сверхлегкую операционку с GUI и впечатлиться скоростью запуска.



    Как и предшествующие версии, последняя «Колибри» написана на flat assembler (FASM) и занимает одну дискету - 1,44 Мбайт. Благодаря этому ее можно целиком разместить в какой-нибудь специализированной памяти. Например, умельцы записали KolibriOS прямо во Flash BIOS . Во время работы она может целиком размещаться в кеше некоторых процессоров. Только представь: вся операционка вместе с программами и драйверами кеширована!

    INFO

    При посещении сайта kolibrios.org браузер может предупредить об опасности. Причина, судя по всему, - это ассемблерные программы в дистрибутиве. Сейчас VirusTotal определяет сайт как совершенно безопасный.

    «Колибри» легко загружается с дискеты, винчестера, флешки, Live CD или в виртуальной машине. Для эмуляции достаточно указать тип ОС «другая», выделить ей одно ядро процессора и немного оперативки. Диск подключать необязательно, а при наличии роутера с DHCP «Колибри» моментально подключится к интернету и локальной сети. Сразу при загрузке ты увидишь соответствующее уведомление.


    Одна проблема - протокол HTTPS не поддерживается встроенным в «Колибри» браузером. Поэтому сайт посмотреть в ней не удалось, так же как открыть страницы Google, Yandex, Wikipedia, «Сбербанка»... собственно, никакой привычный адрес. Все давно перешли на защищенный протокол. Единственный сайт с олдскульным чистым HTTP, который мне попался, - это «портал Правительства России», но и он выглядел в текстовом браузере не лучшим образом.



    Настройки внешнего вида в «Колибри» с годами улучшаются, но все еще далеки от идеала. Список поддерживаемых видеорежимов отображается на экране загрузки «Колибри» при нажатии клавиши с латинской буквой a.



    Перечень доступных вариантов невелик, и нужного разрешения в нем может не оказаться. Если у тебя видеокарта с ГП AMD (ATI), то можно сразу добавить кастомные настройки. Для этого нужно загрузчику ATIKMS передать параметр -mxx , например:

    /RD/1/DRIVERS/ATIKMS -m1280x800x60 -1

    Здесь /RD/1/DRIVERS/ATIKMS - это путь до загрузчика (RD - RAM Disk).

    При работе системы выбранный видеорежим можно посмотреть командой vmode и (теоретически) переключать вручную. Если «Колибри» запущена в виртуалке, то это окно останется пустым, а вот при чистой загрузке драйверы видео Intel можно добавить от i915 до Skylake включительно.

    Удивительно, но в KolibriOS уместилась куча игр. Среди них есть логические и аркадные, пятнашки, змейка, танки (нет, не WoT) - целый «Игровой центр»! На «Колибри» портировали даже Doom и Quake.



    Еще из важного нашлась читалка FB2READ. Она корректно работает с кириллицей и имеет настройки отображения текста.



    Все пользовательские файлы рекомендую хранить на флешке, но подключать ее нужно обязательно через порт USB 2.0. Наша флешка USB 3.0 (в порте USB 2.0) объемом 16 Гбайт с файловой системой NTFS определилась сразу. Если нужно записывать файлы, то стоит подключить флешку с разделом FAT32.



    В дистрибутив «Колибри» входит три файловых менеджера, утилиты для просмотра изображений и документов, аудио- и видеоплееры и прочие пользовательские приложения. Однако основное внимание в ней уделено разработке на ассемблере.



    Встроенный текстовый редактор имеет подсветку ASM-синтаксиса и даже позволяет сразу запускать набранные программы.



    Среди средств разработки есть компилятор Oberon-07/11 для i386 Windows, Linux и KolibriOS, а также низкоуровневые эмуляторы: E80 - эмулятор ZX Spectrum, FCE Ultra - один из лучших эмуляторов NES, DOSBox v.0.74 и другие. Все они были специально портированы на «Колибри».

    Если оставить KolibriOS на несколько минут, то запустится скринсейвер. На экране побегут строки кода, в которых можно увидеть отсылку к MenuetOS.

    Продолжение доступно только участникам

    Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

    Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

    И снова здравствуйте! С вами начинающий программист и юзер ТрешБокса Вадим. Я представляю второй выпуск «ВадБокса». Темой этого номера стала миниатюрная ОС 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 совсем недавно.
    Понравилась вам такая миниатюрная ОС? Хотите, чтобы я сделал видео-обзор такой системы? Полезна ли данная статья? Нужно ли мне продолжать высыпать информацию по программировании из моей черепной коробки? Пишите ответы на все эти вопросы в комментарии, задавайте свои. Скачать Колибри можно на официальном сайте:

    Лучшие статьи по теме