Erik Moqvist, Autor der Plattform und Tools entwickelt eine neue Distribution , 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 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 (Monolinux C-Bibliothek mit Shell, DHCP- und NTP-Clients, Device-Mapper usw.), (asynchrones Framework), , (HTTP, FTP, …), (Delta-Patches), (Komprimierungsalgorithmus), (Hilfswerkzeuge), , und . 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 und . Die endgültige Größe der Bundles beträgt etwa 800 KB. Das Board 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 , 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
