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

Развитие «Колибри» шло довольно быстро вплоть до 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 и впечатлиться скоростью запуска.

KolibriOS X-edition
KolibriOS X-edition

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

INFO

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

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

Мгновенное подключение к сети
Мгновенное подключение к сети

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

Текстовый браузер работает только с HTTP
Текстовый браузер работает только с HTTP

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

Выбор разрешения
Выбор разрешения

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

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

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

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

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

Игровой центр
Игровой центр

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

Самая легкая читалка FB2
Самая легкая читалка FB2

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

Подключаем флешку
Подключаем флешку

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

Средства разработчика
Средства разработчика

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

Запуск программы прямо из TinyPad
Запуск программы прямо из TinyPad

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

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

Не пугайся, это скринсейвер!
Не пугайся, это скринсейвер!

Как появилась KolibriOS

Интересна и сама идея появления «Колибри». Это не очередной клон Linux, а совершенно уникальная разработка. Единственное, что роднит ее с Linux, — это открытый исходный код и финские корни.

Многие из авторов «Колибри» до этого работали в другом проекте — MenuetOS, из которой и выросла эта птичка. Они заметили, что у всех операционок есть общая проблема — дико раздутое и уже потому ненадежное ядро. Еще в начале нулевых об этом писал Брюс Шнайер в книге «Секреты и ложь. Безопасность данных в цифровом мире». Тогда ему казалось, что у популярных в то время ОС — всевозможных клонов UNIX, Windows NT 4.0 и следующей за ней Windows 2000 (NT 5.0) — все очень плохо с безопасностью именно из-за огромного ядра.

«Когда система UNIX была написана впервые, считалось обязательным помещение несущественных кодов за пределами ядра. <...> Все имеющиеся сейчас разновидности UNIX в той или иной степени страдают распуханием ядра: у них либо слишком много команд в ядре, либо имеются непонятные утилиты, запускающиеся в случае корневого доступа, либо что-то еще.
Windows NT устроена намного хуже. Эта операционная система может служить примером того, как полностью игнорируются исторические уроки безопасности. <...> Windows, похоже, придерживается мнения, что, поскольку то, что содержится в ядре, защищено по определению, следует просто побольше всего разместить прямо в ядре. Если разработчикам было непонятно, как обеспечить безопасность чего-либо, они просто запихивали это в ядро и считали его уже защищенным. <...>
<...> ...Философия Windows NT в том, чтобы всегда отдавать предпочтение простому над безопасным — и в обращении, и в разработке», — писал Шнайер в 2000 году. Не сказать, что его книга стала откровением, но в ней были сформулированы те идеи, которые давно витали в воздухе.

Примерно тогда же группа программистов из Финляндии, Польши и стран бывшего СССР предприняла попытку создать принципиально новую операционку. Написать ее почти с нуля и сделать как можно компактнее — в идеале, чтобы она помещалась на дискету (флешек в те времена еще не было, и даже пишущий CD-привод казался диковиной).

Этой системой была MenuetOS. Идейным вдохновителем выступил Вилле Микаэль Турьянмаа. Когда-то он работал с MrOS — графической многозадачной оболочкой для DOS, со временем выросшей в отдельную операционку. Идеи MrOS легли в основу «Менуэта».

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

Позже состав команды разработчиков постоянно менялся. Очередные разногласия привели к тому, что в 2003 году отделившаяся группа решила сделать свой форк. Во время разработки он назывался MENUETOS RE, но на этапе релиза был переименован в Kolibri 0.1.0.0. Название было предложено Станиславом «VaStaNi» Валыйских. По замыслу оно должно отражать легковесность и скорость работы операционки. Официально «Колибри» вышла в мае 2004 года. Полноценным форком считается KolibriOS 0.50 — именно в ней более половины кода отличалось от MenuetOS.

Настоящее и будущее маленькой птички

Сейчас «Колибри» распространяется на условиях GPLv2, в то время как ее предшественница MenuetOS стала проприетарной в 64-битной версии.

Помимо базового дистрибутива KolibriOS, существует и расширенная версия. В ней доступна утилита установки драйверов DrvInst и другие дополнительные компоненты. DrvInst позволяет установить драйверы устройств, отсутствующие в образе IMG. Например, драйвер SATA с поддержкой AHCI, драйвер видео для процессоров Intel, видеокарт AMD и виртуалки VMware.

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

INFO

«Колибри» уже вошла в историю науки и киберпанка. Сотрудники Колумбийского университета и Нью-Йоркского геномного центра записали в ДНК операционную систему KolibriOS (PDF) вместе с другими данными общим объемом 2342 Кбайт.

Основное назначение KolibriOS осталось прежним — программирование на ассемблере в чистой среде безо всяких программных прослоек. Однако разработчик может писать свой код для KolibriOS и на языках высокого уровня (С/С++, Modula, Fort, Pascal). Это куда более простой способ создавать библиотеки, драйверы и программы.

9 комментариев

  1. Аватар

    Skybad

    06.09.2017 в 17:50

  2. Аватар

    0ri0n

    06.09.2017 в 18:16

  3. Аватар

    istepan

    07.09.2017 в 08:19

    На предприятиях эту ОС полюбили. Используют для мониторинга и еще всякого своего уникального софта.

  4. Аватар

    leency

    07.09.2017 в 10:36

    > Помимо базового дистрибутива KolibriOS, существует и расширенная версия. В ней доступна утилита установки драйверов DrvInst и другие дополнительные компоненты.

    Там 100500 других компонентов, почему такая любовь именно к DrvInst? 🙂

  5. Аватар

    leency

    07.09.2017 в 10:41

    > NTFS доступна только для чтения
    NTFS доступна для записи, не поддерживаются шифрованные файлы и некоторые другие плюшки. Но писать можно.

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

  6. Аватар

    Anon

    01.10.2017 в 14:40

    Очень интересно, спасибо!

  7. Аватар

    Dronga

    16.10.2017 в 19:04

    Цитата из статьи:
    «непонятные утилиты, запускающиеся в случае корневого доступа, либо что-то еще»

    Вот этот приведенный «корневой доступ» есть ошибка перевода. В оригинале наверняка употребляется «root access».

Оставить мнение