Monolinux — ein Ein-Datei-Distribution, die auf einem CPU ARMv7 528 MHz in 0,37 Sekunden bootet.

Erik Moqvist, Autor der Plattform Simba und Tools cantoolsentwickelt eine neue Distribution Monolinux, die auf die Erstellung von Embedded-Linux-Systemen für den isolierten Betrieb bestimmter in C geschriebenen Anwendungen ausgerichtet ist. Die Distribution zeichnet sich dadurch aus, dass die Software in Form einer einzigen statisch verlinkten ausführbaren Datei bereitgestellt wird, die alle für die Ausführung der Anwendung erforderlichen Komponenten enthält (im Grunde genommen besteht die Distribution aus dem Linux-Kernel und einem RAM-Disk mit einem statisch gebauten Init-Prozess, der die Anwendung und die erforderlichen Bibliotheken umfasst). Der Code wird unter der GPLv3-Lizenz bereitgestellt. unter der MIT-Lizenz.

Stellt alle Subsysteme und Systemaufrufe des Linux-Kernels zur Verfügung, einschließlich Zugriff auf das Dateisystem, Netzwerk-Stack und Gerätetreiber. Für die Verbindung mit der Anwendung stehen 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), heatshrink (Komprimierungsalgorithmus), humanfriendly (Hilfswerkzeuge), mbedTLS, xz und zlib. Ein schneller Entwicklungszyklus wird unterstützt, der es ermöglicht, innerhalb von wenigen Sekunden eine neue Version nach Änderungen im Code zu bewerten.

Die Monolinux-Varianten sind für das Board vorbereitet Raspberry Pi 3 und Jiffy. Die endgültige Größe der Bundles beträgt etwa 800 KB. Das Board Jiffy ist mit einem i.MX6UL SoC mit ARMv7-A CPU (528 MHz), 1 GB DDR3 RAM und 4 GB eMMC ausgestattet. Die Bootzeit auf dem Jiffy-Board beträgt nur 0,37 Sekunden — von der Einschaltung bis zur Bereitstellung des Ext4-Dateisystems. Davon entfallen 1 ms auf die Hardwareinitialisierung des SoC, 184 ms für die Ausführung des Bootloaders, 86 ms für die Arbeit des Bootloaders, 62 ms für das Starten des Linux-Kernels und 40 ms für die Aktivierung von Ext4. Die Neustartzeit beträgt 0,26 Sekunden. Bei der Verwendung des Netzwerk-Stacks benötigt das System aufgrund von Verzögerungen beim Aushandeln des Ethernet-Kanals und beim Empfang der Netzwerkkonfiguration 2,2 Sekunden, um für die Netzwerkkommunikation bereit zu sein.

Im System wird ein Linux-Kernel 4.14.78 in minimaler Konfiguration mit zusätzlichen Patches, die unnötige Verzögerungen im MMC-Treiber beseitigen (der MMC wird beim Flashen des Boards angeschlossen und ist beim Start des Treibers bereits aktiviert) und die Initialisierung der MMC- und FEC (Ethernet)-Treiber im Parallelmodus starten.

Quelle: opennet.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster