ToaruOS 2.3, unixový operační systém napsaný od nuly a dodávaný s vlastním jádrem, bootloaderem, standardní knihovnou C, správcem balíčků, uživatelskými komponentami a grafickým rozhraním s kompozitním správcem oken, byl vydán. Projekt byl původně vyvinut na University of Illinois jako výzkumný projekt zaměřený na vytváření nových kompozitních grafických rozhraní, ale později byl transformován do samostatného operačního systému. Kód projektu je napsán v jazyce C a distribuován pod licencí BSD. Ke stažení je 7.4 MB živý obraz, který lze testovat v QEMU, VMware nebo VirtualBox.

Srdcem ToaruOS je jádro, které využívá hybridní modulární architekturu, která kombinuje monolitickou základnu a prostředky pro použití zaváděcích modulů, v jejichž podobě je zabalena většina dostupných ovladačů zařízení, jako jsou ovladače disku (PATA a ATAPI), Souborový systém EXT2 a ISO9660, framebuffer, klávesnice, myš, síťové karty (AMD PCnet FAST, Realtek RTL8139 a Intel PRO/1000), zvukové čipy (Intel AC'97) a doplňky pro hosty VirtualBox. Jádro podporuje unixová vlákna, TTY, virtuální souborový systém, pseudo souborový systém /proc, multithreading, IPC, ramdisk, ptrace, sdílenou paměť, multitasking a další běžné funkce.
Cистема снабжена композитным оконным менеджером, поддерживает динамически связываемые исполняемые файлы в формате ELF, многозадачность, графический стек, может выполнять Python 3 и GCC. В качестве файловой системы применяется ext2. Загрузчик поддерживает BIOS и EFI. Сетевой стек позволяет использовать API сокетов в стиле BSD-систем и поддерживает сетевые интерфейсы, включая loopback.
Mezi nativními aplikacemi vyniká editor kódu Bim, podobný Vi. V posledních několika letech se používá k vývoji aplikací specifických pro ToaruOS, jako je správce souborů, emulátor terminálu, grafický panel nástrojů s widgety, správce balíčků a knihovny pro podporu obrázků (PNG, JPEG) a fontů TrueType. Do ToaruOS byly portovány programy jako Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulátor Super Nintenda, Bochs a další.
Projekt také vyvíjí vlastní dynamický programovací jazyk Kuroko, který má nahradit Python při vývoji utilit a uživatelských aplikací pro systém. Jazyk je syntaxí podobný Pythonu (je umístěn jako zkrácený dialekt Pythonu s explicitní definicí proměnných) a má velmi kompaktní implementaci. Je podporována kompilace a interpretace bajtkódu. Interpret bytecode poskytuje garbage collector, podporuje multithreading bez použití globálního zámku. Kompilátor a interpret lze zkompilovat do malé sdílené knihovny (~500 kB), kterou lze integrovat s jinými programy a rozšířit pomocí rozhraní C API. Kromě ToaruOS lze jazyk použít na Linuxu, macOS, Windows a spustit v prohlížečích s podporou WebAssembly.
V novém vydání:
- В эмулятор терминала добавлена поддержка вкладок, переключаться между которыми можно последовательностью Alt-цифра. Реализована эмуляция жирного начертания шрифтов через двойное наложение глифов. Добавлены подменю «Terminal state» для включения показа состояния различных режимов и «Send signal» для отправки сигналов фоновым процессам.

- Реализован просмотрщик системных руководств, поддерживающий man-страницы в формате roff.

- В контекстное меню добавлено подменю для управления мозаичной компоновкой окон.

- В ядре реализованы новые системные вызовы, среди которых pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage и fcntl. Добавлена поддержка флагов FD_CLOEXEC и FD_CLOFORK. Реализована поддержка рандомизации адреса загрузки ядра. ABI системных вызовов переведено на использование инструкций syscall/sysret.
- Значительно расширены возможности виртуальной консоли (TTY), обеспечена эмуляция текстового режима VGA на базе фреймбуфера.
- В версии для архитектуры Aarch64 реализована возможность запуска в виртуальных машинах на базе QEMU.
- В сетевой стек добавлена поддержка одновременной работы с несколькими сокетами ICMP.
- В стандартную библиотеку libc добавлены функции getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- Добавлены новые стандартные утилиты rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Добавлены новые опции в ls, grep и fgrep. Переписаны утилиты ps, top, pstree, killall и pidof, которые переведены на новую библиотеку libtoaru_procfs, унифицирующую работу с псевдо-ФС /proc. Расширен командный интерпретатор esh.
- Добавлена утилита check-image для проверки возможности загрузки изображения графической библиотекой и вывода размера изображения.
- Язык программирования Kuroko обновлён до версии 1.5rc2.
- До версии 3.2 обновлён текстовый редактор Bim, созданный с оглядкой на Vim. В новой версии улучшена подсветка синтаксиса, расширена поддержка скриптов на языке Kuroko и добавлена новая система автодополнения ввода.
Zdroj: opennet.ru



