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

KolibriOS — это не очередной клон Linux, а совершенно уникальная разработка. Единственное, что роднит ее с Linux, - это открытый исходный код и финские корни.

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

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

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

Настоящее и будущее KolibriOS

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

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

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

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

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

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. И каждый день(!) выходят ночные сборки, реализующие новые функции.
    Одним из самых главных недостатков является отсутствие привычных программ. А это не есть хорошо. Но зато можно

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

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

    Наиболее перспективным направлением является промышленное применение и 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 на компьютерах различных гос. организаций, таких как ЖД управление и Почта. При этом обновление оборудования вовсе не обязательно, а софт (при наличии исходного кода) можно портировать.

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

    Развитие «Колибри» шло довольно быстро вплоть до 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 умещается на дискету и загружается за несколько секунд. Для неё есть около 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 Ватт. У него нет ни жёсткого диска, ни вентиляторов, он совсем бесшумный.



    В продолжение темы:
    Android

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