
Two brave developers
Ivan Green and
Chris Stevens decided on a bold move. They wrote a completely new
Minoca OS operating system from scratch and
published its source code under the free GNU GPL v3 license.
This is 625,000 lines of
well-documented code, mainly in the C programming language, partly in C ++ and Assembler. The OS kernel for x86 is about 750 KB in size. With the drivers, network stack and video buffer, the freshly loaded system uses 5-7 MB of RAM.
Most of today's popular operating systems were born in the late 80s or early 90s, at best. In those years, the OS worked on completely different hardware than today. Therefore, the approach to kernel development was somewhat different. According to the creators of Minoca OS, now this approach is outdated, so you can achieve a significant increase in the efficiency of the operating system, if you rewrite it from scratch.
')
Currently, devices with embedded operating systems have completely different requirements for power management, security, maintenance, and virtualization. Ancient UNIX-like systems were upgraded to meet new requirements, but as a result, their code swelled and lost its former beauty and consistency. Starting from scratch, Minoca OS seeks to get rid of the aggravating legacy.
Minoca OS is a general purpose operating system that can be used anywhere. Presumably, it is best suited for embedded systems and mobile devices, where there are restrictions on power consumption, memory, and processor power.
Minoca OS Estimated UsesThe developers say they were aiming to make an economical, modular, and easily supported operating system. It is compatible with the standard POSIX interface set. This means that it can run many applications that run under Linux.
An important innovation is the special interface between device drivers and the OS kernel. This model makes it possible to write drivers "ahead of time" for future versions of the kernel. In other words, the kernel can be updated completely unnoticed, without recompiling the drivers.

While it is not entirely clear in which devices it is best to use a new free operating system. In theory, these should be devices with limited resources (memory, CPU), but at the same time which require advanced high-level functionality: multithreading, network stack, file system support. Developers of such systems are encouraged to try Minoca OS - and forget about the difficulties of adapting software to specific hardware. It will not be necessary to tinker with the specific bugs of a unique embedded system, if in the universal OS the kernel is updated along with the release of fresh patches.

Minoca OS has advanced debugging features. It is carried out through the firmware, kernel or applications. Moreover, the integrated Minoca Debugger debugger tracks program execution and memory usage in real time. It shows in detail what exactly the resources are spent on.
Minoca OS Debugger

Minoca OS runs on x86, ARMv6, ARMv7 architectures with virtual memory support and several megabytes of RAM. The operating system scales well, so it works well on personal computers with a large number of processor cores and gigabytes of RAM.
The package includes
drivers for many standard devices.
What is the difference from various Linux distributions and why did you need to create a completely new OS, how does it differ from these distributions? Developers
answer this question. According to Ivan Green, from the side of the application or user, they tried to make the operating system as similar as possible to the popular Linux server distributions. The goal is to port as many applications as possible to Minoca OS. But the most serious conceptual difference lies at the kernel level, where the developers have tried to apply some alternative solutions in terms of design and philosophy of architecture. These are really important decisions, but they are not visible to the user directly, but are manifested in reduced power consumption, better responsiveness (i.e., faster performance), more free memory, inconspicuous kernel updates, etc. Despite better responsiveness than Linux, Minoca OS cannot be called a real-time OS.
References:- Github source code
- Images for Raspberry Pi 2, Raspberry Pi, BeagleBone Black, Asus C201, PandaBoard, x86 PC, x86 PC (UEFI), Galileo
- Minoca OS Starter Pack , which can be run in a Qemu emulator (the package includes the x86 boot image Minoca OS, Minoca Debugger, Qemu emulator, Win32 Disk Imager and all x86 binaries)
- Compatible packages and build instructions, including Python, Ruby, Git, Lua and Node.
- Documentation