Monolinux is a single-file distribution that boots on an ARMv7 528 MHz CPU in 0.37 seconds

Erik Moqvist, Platform Author Simba and tools cantools, develops a new distribution Monolinux, focused on the creation of embedded Linux-systems for the stand-alone launch of certain applications written in the C language. The distribution kit is notable for the fact that the software stuffing is made in the form of a single statically linked executable file that includes all the components necessary for the application to work (in fact, the distribution kit is the Linux kernel and a ram disk with a statically assembled init process that includes the application and the necessary libraries) . Code spreads under the MIT license.

The environment provides all the subsystems and system calls of the Linux kernel, including filesystem access, the network stack, and device drivers. Libraries available for linking with the application are: ml (Monolinux c-library with shell, DHCP and NTP clients, Device-mapper, etc.), async (asynchronous framework), bit stream, curl (HTTP, FTP, ...), detools (delta patches), heatshrink (compression algorithm), human friendly (auxiliary tools), mbedTLS, xz ΠΈ zlib. A fast development cycle is supported, allowing you to evaluate the work of the new version within seconds after making changes to the code.

Monolinux options ready for boards Raspberry Pi 3 ΠΈ Jiffy. The total size of the assemblies is about 800 KB. Pay Jiffy equipped with i.MX6UL SoC with ARMv7-A (528 MHz) CPU, 1 GB DDR3 RAM and 4 GB eMMC. Boot time on the Jiffy board is just 0.37 seconds from power on to Ext4 file system ready. Of this time, 1 ms is spent on the hardware initialization of the SoC, 184 ms on the execution of the ROM code, 86 ms on the bootloader, 62 ms on the launch of the Linux kernel and 40 ms on the activation of Ext4. Reboot time is 0.26 seconds. In the case of using the network stack, due to the delays in negotiating the Ethernet link and receiving network parameters, the system becomes ready for networking after 2.2 seconds.

The system uses the Linux kernel 4.14.78 in a minimal configuration with additional patches, which eliminate unnecessary delays in the MMC driver (MMC is connected by the board firmware and is already activated at the time the driver is launched) and starts the initialization of the MMC and FEC (Ethernet) drivers in parallel mode.

Source: opennet.ru

Add a comment