The release of the Unix-like operating system ToaruOS 2.1 has been published, built from scratch and equipped with its own kernel, bootloader, standard C library, package manager, user space components, and a graphical interface with a compositing window manager. Originally developed at the University of Illinois as a research project in creating new compositing graphical interfaces, it has since transformed into a standalone operating system. The project's code is written in C and is distributed under the BSD license. A live image, sized 14.4 MB, is available for download and can be tested in QEMU, VMware, or VirtualBox.

At the core of ToaruOS is a kernel that uses a hybrid modular architecture, combining a monolithic core with support for loadable modules, in which most available device drivers are designed, such as disk drivers (PATA and ATAPI), EXT2 and ISO9660 file systems, framebuffer, keyboard, mouse, network cards (AMD PCnet FAST, Realtek RTL8139, and Intel PRO/1000), sound chips (Intel AC’97), as well as VirtualBox additions for guest systems. The kernel supports Unix streams, TTY, virtual file systems, pseudo-filesystem /proc, multithreading, IPC, ramdisk, ptrace, shared memory, multitasking, and other typical features.
The system is equipped with a compositing window manager, supports dynamically linked ELF executable files, multitasking, and a graphical stack, and can run Python 3 and GCC. The ext2 filesystem is used. The bootloader supports both BIOS and EFI. The network stack allows using BSD-style socket API and supports network interfaces, including loopback.
Notable applications include a Vi-like code editor called Bim, which has been used in recent years for the development of ToaruOS-specific applications such as a file manager, terminal emulator, graphical panel with widget support, package manager, and libraries for image support (PNG, JPEG) and TrueType fonts. Ported to ToaruOS are programs like Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, and others.
The project is also developing its own dynamic programming language, Kuroko, designed to replace Python for developing utilities and user applications for the system. The language's syntax resembles Python (positioned as a simplified dialect of Python with explicit variable definitions) and features a very compact implementation. Bytecode compilation and interpretation are supported. The bytecode interpreter provides garbage collection and supports multithreading without using global locking. The compiler and interpreter can be compiled into a small shared library (~500KB), integrable with other programs and extendable via a C API. In addition to ToaruOS, the language can be used on Linux, macOS, Windows, and run in browsers with WebAssembly support.
In the new release:
- Initial support for the AArch64 (ARMv8) architecture has been added, including experimental capabilities to run ToaruOS on the Raspberry Pi 400 board and in the QEMU emulator.
- The handling and delivery of signals to user space processes has been reworked. Calls to sigaction, sigprocmask, sigwait, and sigsuspend have been implemented.
- Memory management in user space has been improved. The munmap system call has been added.
- The compositing manager has implemented a blur effect and reworked event handling when resizing windows.
- Terminal rendering has been improved, with delayed rendering implemented and a glyph cache for TrueType fonts added.
- The capabilities of the compositor have been expanded.
- Mechanisms for setting the clock have been added, including the implementation of the settimeofday system call and enhanced functionality in the date utility.
- The network stack has been improved. The ifconfig utility has added support for setting IPv4 addresses and routing settings. ICMP socket functionality has been enabled. Support for the recvfrom function for UDP and ICMP sockets has been added.
- The bootloader has been enhanced with support for USB keyboards.
- A delete files option has been added to the context menu of the file manager.
- The display of graphs in the system monitor has been improved.
- The grep utility has been added with support for regular expressions.
- The output of the ps command has been improved (additional columns added).

Source: opennet.ru
