Release of ToaruOS 1.14 operating system and Kuroko 1.1 programming language

The release of the ToaruOS 1.14 project is available, which develops a Unix-like operating system written from scratch with its own kernel, bootloader, standard C library, package manager, user-space components and a graphical interface with a composite window manager. At the current stage of development, the system's capabilities are sufficient to run Python 3 and GCC. The project code is written in C language and distributed under the BSD license. A 14 MB live image has been prepared for download, which can be tested in QEMU, VMware or VirtualBox.

Release of ToaruOS 1.14 operating system and Kuroko 1.1 programming language

The project started in 2010 at the University of Illinois and initially developed as a research work in the field of creating new composite graphical interfaces. Since 2012, the development has been transformed into the operating system ToaruOS, developed initially as a student project, and then turned into a weekend hobby, picked up by the community formed around the project. In its current form, the system is equipped with a composite window manager, supports dynamically linked executable files in ELF format, multitasking, graphics and network stacks.

The package includes a port of the Python 3.6 programming language, which is used in the development of some ToaruOS-specific graphical applications, such as a package manager, a graphics editor, a PDF viewer, a calculator, and simple games. Third-party programs ported to ToaruOS include Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, etc.

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.

Of the primitives provided by the kernel, Unix threads, TTY, virtual file system, multithreading, IPC, shared memory, multitasking, and other typical features are noted. The file system used is ext2. To interact with the kernel, an implementation of the pseudo-FS /proc, created by analogy with Linux, is provided.

Of the plans for 2021, it notes the provision of work on the 64-bit x86-64 architecture (so far, assemblies are formed only for 32-bit x86 systems) and support for multiprocessor systems (SMP). Other goals include improving compatibility with POSIX specifications in the field of signal processing and synchronization methods, bringing the standard C library to the Newlib level, implementing its own C compiler and development tools.

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 supports bytecode compilation and interpretation, resembles Python in syntax (it is positioned as a shorthand dialect of Python with explicit definition of variables) and has a very compact implementation. 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.

The new release of ToaruOS focused on the development of the standard C library and the Kuroko programming language. For example, libc has added mathematical functions necessary for the correct calculation of lighting parameters in the Quake game. Improved ability to boot into VirtualBox in EFI mode. The size of the iso image has been reduced by applying compression to the ramdisk image.

The new release of Kuroko 1.1 adds support for async and await, implements multithreading, improves compatibility with Python 3, adds support for multiple value assignments, extends tools for writing C handlers, adds type annotation support for functions, adds "yield" and "yield from", integrated os, dis, fileio, and time modules, implemented new methods in str, list, dict and bytes, added support for precompilation to bytecode, changed license to MIT (used to be a combination of MIT and ISC).

Source: opennet.ru

Add a comment