Опубліковано випуск Unix-подібної операційної системи ToaruOS 2.1, написаної з нуля і поставляється зі своїм ядром, завантажувачем, стандартною Сі-бібліотекою, пакетним менеджером, компонентами простору користувача та графічним інтерфейсом з композитним віконним менеджером. Спочатку проект розвивався в університеті Іллінойсу як дослідницька робота в галузі створення нових композитних графічних інтерфейсів, але потім трансформувався в окрему операційну систему. Код проекту написаний мовою Сі та поширюється під ліцензією BSD. Для завантаження підготовлений live-образ розміром 14.4 МБ, який можна протестувати в QEMU, VMware або VirtualBox.
В основі ToaruOS лежить ядро, що використовує гібридну модульну архітектуру, що поєднує монолітну основу та засоби для використання завантажуваних модулів, у вигляді яких оформлено більшість наявних драйверів пристроїв, таких як драйвери диска (PATA та ATAPI), ФС EXT2 та ISO9660, framebuffer, клаві , мережевих карток (AMD PCnet FAST, Realtek RTL8139 та Intel PRO/1000), звукових чіпів (Intel AC'97), а також доповнень VirtualBox для гостьових систем. Ядро підтримує Unix-потоки, TTY, віртуальну ФС, псевдо-ФС /proc, багатопоточність, IPC, ramdisk, ptrace, пам'ять, що розділяється, багатозадачність та інші типові можливості.
Система оснащена композитним віконним менеджером, підтримує динамічно зв'язуються виконувані файли у форматі ELF, багатозадачність, графічний стек, може виконувати Python 3 і GCC. Як файлова система застосовується ext2. Завантажувач підтримує BIOS та EFI. Мережевий стек дозволяє використовувати API сокетів у стилі BSD-систем та підтримує мережеві інтерфейси, включаючи loopback.
З власних програм виділяється схожий на Vi редактор коду Bim, який використовується останні кілька років для розробки специфічних для ToaruOS додатків, таких як файловий менеджер, емулятор термінала, графічна панель з підтримкою віджетів, пакетний менеджер, а також бібліотеки для підтримки зображень (PNG, JPEG ) та TrueType-шрифтів. Для ToaruOS виконано портування таких програм як Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs і т.п.
Проектом також розвивається власна динамічна мова програмування Kuroko, розрахована на заміну Python при розробці утиліт та користувацьких додатків для системи. Мова синтаксису нагадує Python (позиціонується як скорочений діалект Python з явним визначенням змінних) і відрізняється дуже компактною реалізацією. Підтримується компіляція та інтерпретація байткоду. Інтерпретатор байткоду надає збирач сміття, підтримує багатопоточність без застосування глобального блокування. Компілятор і інтерпретатор можуть бути зібрані у формі невеликої бібліотеки, що розділяється (~500КБ), інтегрованої з іншими програмами і розширюється через C API. Крім ToaruOS, мова може використовуватися в Linux, macOS, Windows і запускатися в браузерах з підтримкою WebAssembly.
У новому випуску:
- Додано початкову підтримку архітектури AArch64 (ARMv8), у тому числі з експериментальною можливістю використання ToaruOS на платі Raspberry Pi 400 та в емуляторі QEMU.
- Перероблено обробку та передачу сигналів процесам у просторі користувача. Реалізовані виклики sigaction, sigprocmask, sigwait і sigsuspend.
- Покращено керування пам'яттю у просторі користувача. Додано системний виклик munmap.
- У композитному менеджері реалізовано ефект розмиття та перероблено обробку подій при зміні розміру вікна.
- Покращено відмальовування терміналу, реалізовано відкладене малювання та додано кеш гліфів для шрифтів TrueType.
- Розширено можливості компонувальника.
- Додані механізми для встановлення годинника, у тому числі реалізований системний виклик settimeofday та розширені можливості утиліти date.
- Поліпшено мережевий стек. В утиліту ifconfig додано підтримку встановлення адрес IPv4 і налаштувань маршрутизації. Забезпечено роботу сокетів ICMP. Додано підтримку функції recvfrom для сокетів UDP та ICMP.
- У завантажувачі додано можливість роботи з клавіатурами USB.
- У контекстному меню файлового менеджера додано пункт для видалення файлів.
- Покращено відображення графіків у системному моніторі.
- Додано утиліту grep з підтримкою регулярних виразів.
- Покращено виведення команди ps (додані додаткові стовпці).
Джерело: opennet.ru