Release of operating system ToaruOS 2.1

The release of the Unix-like operating system ToaruOS 2.1, written 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, has been published. Initially, the project was developed at the University of Illinois as a research project in the field of creating new composite graphical interfaces, but then it was transformed into a separate operating system. The project code is written in C and distributed under the BSD license. A 14.4 MB live image has been prepared for download, which can be tested in QEMU, VMware or VirtualBox.

Release of operating system ToaruOS 2.1

At the heart of ToaruOS is a kernel that uses a hybrid modular architecture that combines a monolithic base and means for using loadable modules, in the form of which most of the available device drivers are packaged, such as disk drivers (PATA and ATAPI), EXT2 and ISO9660 filesystem, framebuffer, keyboard, mouse , network cards (AMD PCnet FAST, Realtek RTL8139 and Intel PRO/1000), sound chips (Intel AC'97), and VirtualBox guest add-ons. The kernel supports Unix threads, TTY, virtual file system, /proc pseudo file system, multithreading, IPC, ramdisk, ptrace, shared memory, multitasking, and other common features.

The system is equipped with a composite window manager, supports dynamically linked executable files in ELF format, multitasking, graphics stack, can run Python 3 and GCC. The file system used is ext2. The bootloader supports BIOS and EFI. The network stack allows for BSD-style socket APIs and supports network interfaces, including loopback.

Of the native applications, the Vi-like Bim code editor stands out, which has been used for the past few years to develop ToaruOS-specific applications such as a file manager, a terminal emulator, a graphical panel with widget support, a package manager, as well as libraries for supporting images (PNG, JPEG ) and TrueType fonts. For ToaruOS, programs such as Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, etc. have been ported.

The project also develops its own dynamic programming language Kuroko, designed to replace Python in the development of utilities and user applications for the system. The language is similar in syntax to Python (it is positioned as a shortened dialect of Python with explicit definition of variables) and has a very compact implementation. Compilation and interpretation of bytecode is supported. The bytecode interpreter provides a garbage collector, supports multithreading without the use of a global lock. The compiler and interpreter can be compiled into a small shared library (~500KB) that can be integrated with other programs and extensible via the C API. In addition to ToaruOS, the language can be used on Linux, macOS, Windows and run in WebAssembly-enabled browsers.

In the new release:

  • Added initial support for the AArch64 (ARMv8) architecture, including the experimental ability to use ToaruOS on the Raspberry Pi 400 board and in the QEMU emulator.
  • Processing and passing signals to processes in user space has been reworked. Implemented calls to sigaction, sigprocmask, sigwait, and sigsuspend.
  • Improved memory management in user space. Added munmap system call.
  • In the composite manager, the blur effect has been implemented and the handling of events when the window is resized has been redesigned.
  • Improved terminal rendering, implemented lazy rendering, and added a glyph cache for TrueType fonts.
  • Enhanced linker options.
  • Mechanisms for setting the clock have been added, including the settimeofday system call and expanded capabilities of the date utility.
  • Improved network stack. Support for setting IPv4 addresses and routing settings has been added to the ifconfig utility. Support for ICMP sockets. Added support for recvfrom function for UDP and ICMP sockets.
  • Added the ability to work with USB keyboards in the bootloader.
  • An item for deleting files has been added to the context menu of the file manager.
  • Improved display of graphs in the system monitor.
  • Added grep utility with support for regular expressions.
  • Improved output of ps command (added extra columns).

Release of operating system ToaruOS 2.1


Source: opennet.ru

Add a comment