
В конце апреля и начале мая 2024 года состоялись релизы обновлений 2.3 и 2.3.1 для Unix-подобной операционной системы ToaruOS. Это полностью самостоятельный проект, написанный «с нуля», который включает в себя собственное ядро, загрузчик, стандартную библиотеку языка Си, пакетный менеджер, компоненты пользовательского окружения и уникальный графический стек с композитным оконным менеджером.
Изначально ToaruOS создавалась в Иллинойсском университете как научно-исследовательский проект по изучению композитных графических интерфейсов, но со временем превратилась в полноценную ОС. Весь исходный код распространяется под свободной лицензией BSD. Для желающих ознакомиться с системой подготовлен компактный Live-образ (версии 2.3.1) объемом всего 7,4 МБ, который можно запустить в эмуляторах QEMU, VMware или VirtualBox.
Архитектура и возможности системы
В основе ToaruOS лежит гибридное модульное ядро, которое сочетает в себе монолитное ядро и динамически загружаемые драйверы. Система поддерживает работу с широким спектром оборудования: дисками (PATA/ATAPI), файловыми системами Ext2 и ISO9660, клавиатурами, мышью, сетевыми адаптерами (включая Intel PRO/1000 и Realtek RTL8139) и звуковыми картами AC’97. Также реализована поддержка специфических дополнений для гостевых систем VirtualBox.
Ядро ОС обладает типичными для современных Unix-систем возможностями: многопоточностью, виртуальной файловой системой, псевдо-ФС /proc, поддержкой Unix-потоков, IPC, разделяемой памятью и многозадачностью. Загрузчик корректно работает как с классическим BIOS, так и с современным UEFI.
Графическая подсистема включает композитный оконный менеджер и набор инструментов для поддержки форматов изображений (PNG, JPEG) и TrueType-шрифтов. Для системы портировано множество прикладного ПО, включая GCC, Vim, Cairo, SDL, MuPDF, а также эмуляторы старых консолей и игры вроде Quake и Doom.
Язык программирования Kuroko
Особого внимания заслуживает собственный динамический язык Kuroko, созданный как компактная альтернатива Python. Он ориентирован на написание пользовательских утилит и приложений. Kuroko обладает лаконичным синтаксисом, сборщиком мусора и поддерживает многопоточность без глобальной блокировки интерпретатора. Язык можно скомпилировать в небольшую библиотеку (~500 КБ), что позволяет легко встраивать его в сторонние проекты не только в рамках ToaruOS, но и в Windows, Linux, macOS или даже в браузере через WebAssembly.
Что нового в версиях 2.3 и 2.3.1
Разработчики внесли значительные изменения в функциональность системы:
- Терминал: добавлена поддержка вкладок (переключение через Alt+цифра), эмуляция жирного шрифта, а также меню для управления состоянием терминала и отправки сигналов фоновым процессам.
- Системный интерфейс: реализован просмотрщик руководств (man) и добавлено управление мозаичной компоновкой окон в контекстное меню.
- Ядро: внедрена поддержка новых системных вызовов (например,
pread/pwrite,pipe2,getrusage), реализована рандомизация адреса загрузки ядра, а ABI переведен на использование инструкцийsyscall/sysret. - Оптимизация: улучшена работа виртуальной консоли (TTY) и добавлена поддержка QEMU для архитектуры Aarch64.
- Сетевой стек: теперь возможна одновременная работа с несколькими ICMP-сокетами.
- Стандартная библиотека: расширена функциями для работы с каталогами и строками (
getline,scandir,fchownи др.). - Утилиты: добавлены новые инструменты (
rmdir,uniq,realpath,nohupи др.), а системные утилиты мониторинга (ps,top,killall) теперь используют унифицированную библиотекуlibtoaru_procfs. - ПО: текстовый редактор Bim 3.2 получил улучшенную подсветку синтаксиса и систему автодополнения, а сам язык Kuroko обновлен до версии 1.5rc2.



