The Maestro project, which aims to develop a lightweight unix-like kernel using the system calls of the Linux kernel, has been presented. Created in 2018, the project initially used the SI language but was restarted from scratch in 2020, taking into account the gained experience. The project has now moved to Rust in order to reduce the likelihood of errors when working with memory. The Maestro nucleus code is available under the MIT license.
In addition to the nucleus, the Rust project also develops various components necessary for building the operating system, including an x11-server, package manager, bootloader, installer, sets of utilities, and more. All these components can be found on the project’s GitHub page.
The Maestro core currently has a monolithic architecture and only supports X86 systems in 32-bit mode. It has a code base of 48.8 thousand lines of code, in comparison to the Linux kernel’s 33 million lines of code. The Maestro kernel can be launched in Qemu, Virtualbox, or on compatible hardware.
At the current stage of development, the Maestro kernel has implemented 31% (135 out of 437) of the Linux system calls. This is enough to load a console environment based on Bash and the standard MUSL library. Additionally, some utilities from the GNU Coreutils set, such as LS, CAT, MKDIR, RMDIR, UNAME, and WHOAMI, can also be used in Maestro-based environments.
Some of the available features in Maestro include:
- Drivers for the PS/2 keyboard and terminal with text mode and partial support for ANSI-sequence.
- Memory distribution system with virtual memory support.
- Task scheduler based on the Round-Robin algorithm with support for POSIX-signals.
- Determination of PCI devices.
- IDE/Pata support.
- Ext2 file system support.
- Support for virtual FS /TMP and /Proc.
- Support for mounting FS and disk sections MBR and GPT.
- Support for Initramfs.
- RTC driver for timer and time.
- Support for loading kernel modules.
- Ability to launch executable files