Солодуха: 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 Ватт. У него нет ни жёсткого диска, ни вентиляторов, он совсем бесшумный.