Опубликован выпуск Unix-подобной операционной системы ToaruOS 2.0, написанной с нуля и поставляемой со своим ядром, загрузчиком, стандартной Си-библиотекой, пакетным менеджером, компонентами пространства пользователя и графическим интерфейсом с композитным оконным менеджером. Код проекта написан на языке Си и распространяется под лицензией BSD. Для загрузки подготовлен live-образ, размером 14.4 МБ, который можно протестировать в QEMU, VMware или VirtualBox.
Проект стартовал в 2010 году в Иллинойсском университете и вначале развивался как исследовательская работа в области создания новых композитных графических интерфейсов. С 2012 года разработка трансформировалась в операционную систему ToaruOS, развиваемую заинтересованным в разработке сообществом. В текущем виде система снабжена композитным оконным менеджером, поддерживает динамически связываемые исполняемые файлы в формате ELF, многозадачность, графический стек, может выполнять Python 3 и GCC.
В основе ToaruOS лежит ядро, использующее гибридную модульную архитектуру, сочетающую монолитную основу и средства для использования загружаемых модулей, в виде которых оформлено большинство имеющихся драйверов устройств, таких как драйверы диска (PATA и ATAPI), ФС EXT2 и ISO9660, framebuffer, клавиатуры, мыши, сетевых карт (AMD PCnet FAST, Realtek RTL8139 и Intel PRO/1000), звуковых чипов (Intel AC’97), а также дополнений VirtualBox для гостевых систем. Ядро поддерживает Unix-потоки, TTY, виртуальную ФС, псевдо-ФС /proc, многопоточность, IPC, ramdisk, ptrace, разделяемую память, многозадачность и другие типовые возможности.
В качестве файловой системы применяется ext2. Загрузчик поддерживает BIOS и EFI. Сетевой стек позволяет использовать API сокетов в стиле BSD-систем и поддерживает сетевые интерфейсы, включая loopback. Для ToaruOS выполнено портирование таких программ, как Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs и т.п. Из собственных приложений выделяется похожий на Vi редактор кода Bim, который используется последние несколько лет для разработки специфичных для ToaruOS приложений, таких как файловый менеджер, эмулятор терминала, графическая панель с поддержкой виджетов, пакетный менеджер, а также библиотеки для поддержки изображений (PNG, JPEG) и TrueType-шрифтов.
Проектом также развивается собственный динамический язык программирования Kuroko, рассчитанный на замену Python при разработке утилит и пользовательских приложений для системы. Язык по синтаксису напоминает Python (позиционируется как сокращённый диалект Python с явным определением переменных) и отличается очень компактной реализацией. Поддерживается компиляция и интерпретация байткода. Интерпретатор байткода предоставляет сборщик мусора, поддерживает многопоточность без применения глобальной блокировки. Компилятор и интерпретатор могут быть собраны в форме небольшой разделяемой библиотеки (~500КБ), интегрируемой с другими программами и расширяемой через C API. Кроме ToaruOS язык может использоваться в Linux, macOS, Windows и запускаться в браузерах с поддержкой WebAssembly.
В новом выпуске ToaruOS:
- В ядре Misaka добавлена функциональность, позволившая реализовать пользовательские утилиты top, strace, dbg, ping и cpuwidget.
- Расширены возможности графической библиотеки, в том числе добавлены афинные преобразования.
- Улучшена работа оконного фреймворка.
- Добавлен растеризатор текста с поддержкой формата TrueType.
- Добавлена библиотека для форматирования текста с разметкой.
- Улучшен загрузчик BIOS, в котором расширена поддержка аппаратных конфигураций. Переписан загрузчик EFI. В оба загрузчика добавлена поддержка редактирования командой строки ядра.
- Модернизировано оформление панели. В виджеты добавлена поддержка загружаемых библиотек, динамической раскладки элементов и новых всплывающих окон.
- Переписан просмотрщик, в который добавлены новые палитры.
- Добавлена новая реализация калькулятора.
- В стандартную библиотеку добавлена поддержка часовых поясов.
- Добавлен драйвер для чипсета Ensoniq ES1371, эмулируемого в VMware.
- В следующем значительном выпуске 2.1 ожидается поддержка устройств AHCI, xHCI, USB HID. В ветке 2.2 планируется реализовать поддержку архитектуры AArch64.