The release of the Unix-like operating system ToaruOS 2.0 has been published, developed from scratch and supplied with its own kernel, bootloader, standard C library, package manager, user space components, and a graphical interface with a composite window manager. The project's code is written in C and is distributed under the BSD license. A live image, sized at 14.4 MB, is available for download and can be tested in QEMU, VMware, or VirtualBox.

The project started in 2010 at the University of Illinois and initially developed as a research project focused on creating new composite graphical interfaces. Since 2012, the development has transformed into the ToaruOS operating system, which is maintained by a community interested in development. In its current form, the system includes a composite window manager, supports dynamically linked executable files in ELF format, multitasking, a graphical stack, and can run Python 3 and GCC.
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 ext2 file system is used. The bootloader supports both BIOS and EFI. The network stack allows the use of BSD-style socket APIs and supports network interfaces, including loopback. For ToaruOS, programs such as Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, and the Super Nintendo emulator have been ported. Among its own applications is Bim, a code editor similar to Vi, which has been used for several years to develop ToaruOS-specific applications, such as a file manager, terminal emulator, graphical panel with widget support, package manager, and libraries for image (PNG, JPEG) and TrueType font support.
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 of ToaruOS:
- The Misaka kernel has added functionality that allows for the implementation of user utilities such as top, strace, dbg, ping, and cpuwidget.
- The capabilities of the graphics library have been expanded, including the addition of affine transformations.
- The window framework has improved its performance.
- A text rasterizer has been added with support for the TrueType format.
- A library for formatting text with markup has been added.
- The BIOS loader has been improved, with enhanced support for hardware configurations. The EFI loader has been rewritten. Both loaders have added support for kernel command line editing.
- The panel's design has been modernized. Widgets now support downloadable libraries, dynamic layout of elements, and new pop-up windows.
- The viewer has been rewritten with new palettes added.
- A new implementation of the calculator has been added.
- The standard library has been enhanced with support for time zones.
- A driver for the Ensoniq ES1371 chipset, emulated in VMware, has been added.
- The next significant release 2.1 is expected to support AHCI, xHCI, USB HID devices. The 2.2 branch plans to implement support for the AArch64 architecture.



Source: opennet.ru
