La version du système d'exploitation de type Unix ToaruOS 2.3 a été publiée, écrite à partir de zéro et fournie avec son propre noyau, son chargeur de démarrage, sa bibliothèque C standard, son gestionnaire de packages, ses composants d'espace utilisateur et une interface graphique avec un gestionnaire de fenêtres composite. Le projet s'est initialement développé à l'Université de l'Illinois comme travail de recherche dans le domaine de la création de nouvelles interfaces graphiques composites, mais s'est ensuite transformé en un système d'exploitation distinct. Le code du projet est écrit en C et distribué sous licence BSD. Une image en direct de 7.4 Mo a été préparée pour le téléchargement, qui peut être testée dans QEMU, VMware ou VirtualBox.

ToaruOS est basé sur un noyau qui utilise une architecture modulaire hybride combinant un cadre monolithique et des outils d'utilisation de modules chargeables, qui constituent la majorité des pilotes de périphériques disponibles, tels que les pilotes de disque (PATA et ATAPI), les systèmes de fichiers EXT2 et ISO9660, le framebuffer. , claviers, souris, cartes réseau (AMD PCnet FAST, Realtek RTL8139 et Intel PRO/1000), puces audio (Intel AC'97), ainsi que des modules complémentaires VirtualBox pour les systèmes invités. Le noyau prend en charge les threads Unix, TTY, le système de fichiers virtuel, le pseudo système de fichiers /proc, le multithreading, l'IPC, le disque virtuel, le ptrace, la mémoire partagée, le multitâche et d'autres fonctionnalités standard.
Cистема снабжена композитным оконным менеджером, поддерживает динамически связываемые исполняемые файлы в формате ELF, многозадачность, графический стек, может выполнять Python 3 и GCC. В качестве файловой системы применяется ext2. Загрузчик поддерживает BIOS и EFI. Сетевой стек позволяет использовать API сокетов в стиле BSD-систем и поддерживает сетевые интерфейсы, включая loopback.
Parmi les applications natives, se distingue l'éditeur de code de type Vi Bim, utilisé ces dernières années pour développer des applications spécifiques à ToaruOS telles qu'un gestionnaire de fichiers, un émulateur de terminal, un panneau graphique avec support de widgets, un gestionnaire de paquets, etc. ainsi que des bibliothèques pour prendre en charge les images (PNG, JPEG) et les polices TrueType. Des programmes tels que Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, l'émulateur Super Nintendo, Bochs, etc. ont été portés sur ToaruOS.
Le projet développe également son propre langage de programmation dynamique, Kuroko, conçu pour remplacer Python lors du développement d'utilitaires et d'applications personnalisées pour le système. Le langage rappelle Python dans sa syntaxe (positionné comme un dialecte abrégé de Python avec une définition explicite des variables) et a une implémentation très compacte. La compilation et l'interprétation du bytecode sont prises en charge. L'interpréteur de bytecode fournit un garbage collector et prend en charge le multithreading sans utiliser de verrouillage global. Le compilateur et l'interpréteur peuvent être compilés sous la forme d'une petite bibliothèque partagée (~ 500 Ko), intégrée à d'autres programmes et extensible via l'API C. En plus de ToaruOS, le langage peut être utilisé sous Linux, macOS, Windows et exécuté dans les navigateurs prenant en charge WebAssembly.
Dans la nouvelle version :
- В эмулятор терминала добавлена поддержка вкладок, переключаться между которыми можно последовательностью 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 и добавлена новая система автодополнения ввода.
Source: opennet.ru



