Выпуск независимой операционной системы ToaruOS 1.14

Доступен выпуск проекта ToaruOS 1.14, развивающего написанную с нуля Unix-подобную операционную систему со своим ядром, загрузчиком, стандартной Си-библиотекой, пакетным менеджером, компонентами пространства пользователя и графическим интерфейсом с композитным оконным менеджером. На текущем этапе развития возможностей системы достаточно для выполнения Python 3 и GCC. Код проекта написан на языке Си и распространяется под лицензией BSD. Для загрузки подготовлен live-образ, размером 14 МБ, который можно протестировать в QEMU, VMware или VirtualBox.


Проект стартовал в 2010 году в Иллинойсском университете и вначале развивался как исследовательская работа в области создания новых композитных графических интерфейсов. С 2012 года разработка трансформировалась в операционную систему ToaruOS, развиваемой в вначале в качестве студенческого проекта, а потом переросшей в хобби выходного дня, подхваченным образовавшимся вокруг проекта сообществом. В текущем виде система снабжена композитным оконным менеджером, поддерживает динамически связываемые исполняемые файлы в формате ELF, многозадачность, графический и сетевой стеки.

В поставку входит порт языка программирования Python 3.6, который использован при разработке некоторых специфичных для ToaruOS графических приложений, таких как пакетный менеджер, графический редактор, просмотрщик PDF, калькулятор, простые игры. Из портированных для ToaruOS сторонних программ отмечаются Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs и т.п. Проектом также развивается собственный динамический язык программирования Kuroko, рассчитанный на замену Python при разработке утилит и пользовательских приложений для системы.

В основе ToaruOS лежит ядро, использующее гибридную модульную архитектуру, сочетающую монолитную основу и средства для использования загружаемых модулей, в виде которых оформлено большинство имеющихся драйверов устройств, таких как драйверы диска (PATA и ATAPI), ФС EXT2 и ISO9660, framebuffer, клавиатуры, мыши, сетевых карт (AMD PCnet FAST, Realtek RTL8139 и Intel PRO/1000), звуковых чипов (Intel AC’97), а также дополнений VirtualBox для гостевых систем.

Из предоставляемых ядром примитивов отмечаются Unix-потоки, TTY, виртуальная ФС, многопочность, IPC, разделяемая память, многозадачность и другие типовые возможности. В качестве файловой системы применяется ext2. Для взаимодействия с ядром предоставляется реализация псевдо-ФС /proc, созданной по аналогии с Linux.

Из планов на 2021 год отмечается обеспечение работы на 64-разряднй архитектере x86-64 и поддержка многопроцессорных систем (SMP). Из общих целей называется улучшение совместимости со спецификациями POSIX в области обработки сигналов и методов синхронизации, доведение стандартной Си-библиотеки до уровня Newlib, реализация собственного компилятора языка Си и инструментов для разработки.

В новом выпуске основное внимание было уделено развитию стандартной Си-библиотеки и языка программирования Kuroko. Например, в libc добавлены математические функции, необходимые для корректного расчёта параметров освещения в игре Quake. Налажена возможность загрузки в VirtualBox в режиме EFI. Сокращён размер iso-образа за счёт применения сжатия образа ram-диска.

Release. Ссылка here.