Компьютерра - Компьютерра PDA N145 (12.11.2011-18.11.2011)
Но, по крайней мере, шуба висела в прихожей.
Разработчики "Колибри" об ОС на ассемблере
Автор: Андрей Письменный
Опубликовано 16 ноября 2011 года
Мысль написать операционную систему целиком на ассемблере странна, но привлекательна. Её главные плюсы - исключительная производительность и малый объём исполняемого кода. Минусы тоже очевидны - сложность и жёсткая привязка к архитектуре компьютера. Тем не менее смельчаки всё же находятся.
Самый известный проект такого рода - это 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, так что потихоньку переходим на него.