Erik Moqvist, der Autor der Plattform und des Werkzeugs , entwickelt eine neue Distribution , die sich auf die Erstellung von Embedded-Linux-Systemen fĂŒr den isolierten Betrieb bestimmter in C geschriebenen Anwendungen konzentriert. Die Distribution zeichnet sich dadurch aus, dass die Software in Form einer einzigen statisch zusammengestellten ausfĂŒhrbaren Datei prĂ€sentiert wird, die alle Komponenten enthĂ€lt, die fĂŒr den Betrieb der Anwendung erforderlich sind (im Wesentlichen stellt die Distribution den Linux-Kernel und ein ram-Disk mit einem statisch zusammengestellten Init-Prozess dar, der die Anwendung und die erforderlichen Bibliotheken umfasst). Der Code unterliegt 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 Anbindung an die Anwendung stehen Bibliotheken wie (C-Bibliothek Monolinux mit Shell, DHCP- und NTP-Clients, Device-Mapper usw.), (asynchrones Framework), , (HTTP, FTP, âŠ), (Delta-Patches), (Kompressionsalgorithmus), (Hilfswerkzeuge), , und . Ein schneller Entwicklungszyklus wird unterstĂŒtzt, der es ermöglicht, innerhalb weniger Sekunden eine neue Version nach Ănderungen am Code zu testen.
Versionen von Monolinux sind fĂŒr die und -Platine vorbereitet. Die endgĂŒltige GröĂe der Builds betrĂ€gt etwa 800 KB. Die Platine ist mit SoC i.MX6UL und CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM und 4 GB eMMC ausgestattet. Die Bootzeit auf der Jiffy-Platine betrĂ€gt nur 0,37 Sekunden â von der Einschaltung bis zur Bereitschaft des Ext4-Dateisystems. Davon entfallen 1 ms auf die Hardwareinitialisierung des SoC, 184 ms auf die AusfĂŒhrung des Bootrom-Codes, 86 ms auf die Arbeit des Bootloaders, 62 ms auf den Start des Linux-Kernels und 40 ms auf die Aktivierung von Ext4. Die Neustartzeit betrĂ€gt 0,26 Sekunden. Bei Verwendung des Netzwerk-Stacks benötigt das System aufgrund von Verzögerungen bei der Aushandlung des Ethernet-Kanals und beim Empfang von Netzwerkinformationen 2,2 Sekunden, um bereit fĂŒr die Netzwerkinteraktion zu sein.
Im System wurde der Linux-Kernel 4.14.78 in minimaler Konfiguration mit zusÀtzlichen , die unnötige Verzögerungen im MMC-Treiber beseitigen (MMC wird durch die Firmware der Platine angeschlossen und ist zum Zeitpunkt der Aktivierung des Treibers bereits aktiv) und die Initialisierung der MMC- und FEC (Ethernet)-Treiber im parallelen Modus starten.
Quelle: opennet.ru
