Monolinux ist eine Single-File-Distribution, die auf einer ARMv7-CPU mit 528 MHz in 0.37 Sekunden startet

Erik Moqvist, Plattformautor Simba und Werkzeuge Cantools, entwickelt eine neue Distribution Monolinux, konzentrierte sich auf die Erstellung eingebetteter Linux-Systeme für die eigenständige Ausführung bestimmter in der C-Sprache geschriebener Anwendungen. Die Distribution zeichnet sich dadurch aus, dass die Software in Form einer statisch verknüpften ausführbaren Datei verpackt ist, die alle für den Betrieb der Anwendung erforderlichen Komponenten enthält (im Wesentlichen besteht die Distribution aus dem Linux-Kernel und einer RAM-Disk mit einer statisch verknüpften Datei). zusammengestellter Init-Prozess, der die Anwendung und die erforderlichen Bibliotheken enthält). Code vertrieben von unter der MIT-Lizenz.

Die Umgebung stellt alle Subsysteme und Systemaufrufe des Linux-Kernels bereit, einschließlich Dateisystemzugriff, Netzwerk-Stack und Gerätetreiber. Bibliotheken wie: ml (Monolinux C-Bibliothek mit Shell, DHCP- und NTP-Clients, Device-Mapper usw.), async (asynchrones Framework), Bitstream, curl (HTTP, FTP, ...), detools (Delta-Patches), Schrumpfen durch Hitze (Komprimierungsalgorithmus), menschenfreundlich (Hilfswerkzeuge), mbedTLS, xz и zlib. Es wird ein schneller Entwicklungszyklus unterstützt, sodass Sie die Funktionsweise einer neuen Version innerhalb von Sekunden bewerten können, nachdem Sie Änderungen am Code vorgenommen haben.

Für Boards vorbereitete Monolinux-Varianten Raspberry Pi 3 и Jiffy. Die endgültige Größe der Assemblys beträgt etwa 800 KB. Zahlen Jiffy ausgestattet mit SoC i.MX6UL mit CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM und 4 GB eMMC. Die Bootzeit auf dem Jiffy-Board beträgt nur 0.37 Sekunden – vom Einschalten bis zur Bereitschaft des Ext4-Dateisystems. Davon entfällt 1 ms auf die Hardware-Initialisierung des SoC, 184 ms auf die Ausführung des ROM-Codes, 86 ms auf den Bootloader-Betrieb, 62 ms auf den Start des Linux-Kernels und 40 ms auf die Ext4-Aktivierung. Die Neustartzeit beträgt 0.26 Sekunden. Bei Verwendung eines Netzwerkstapels ist das System aufgrund von Verzögerungen beim Aushandeln eines Ethernet-Kanals und beim Abrufen von Netzwerkparametern in 2.2 Sekunden für die Netzwerkinteraktion bereit.

Das System nutzt den Linux-Kernel 4.14.78 in einer Minimalkonfiguration mit zusätzlichen Patches, wodurch unnötige Verzögerungen im MMC-Treiber vermieden werden (MMC ist über die Firmware des Boards verbunden und zum Zeitpunkt des Treiberstarts bereits aktiviert) und die Initialisierung der MMC- und FEC-Treiber (Ethernet) im Parallelmodus gestartet wird.

Source: opennet.ru

Kommentar hinzufügen