Erik Moqvist, auteur van het platform en tools , ontwikkelt een nieuwe distributie , gericht op het maken van embedded Linux-systemen voor het afzonderlijk uitvoeren van bepaalde applicaties, geschreven in de programmeertaal C. Deze distributie valt op omdat de software is verpakt in één statisch gekoppeld uitvoerbaar bestand, dat alle componenten bevat die nodig zijn voor de werking van de applicatie (in wezen bestaat de distributie uit de Linux-kernel en een ram-disk met een statisch samengesteld init-proces dat de applicatie en de vereiste bibliotheken omvat). Code valt onder de MIT-licentie.
In de omgeving worden alle subsystemen en syscalls van de Linux-kernel geleverd, inclusief toegang tot de FS, netwerkstack en stuurprogramma's. Voor interactie met de applicatie zijn er bibliotheken beschikbaar zoals (Monolinux C-bibliotheek met shell, DHCP- en NTP-clients, Device-mapper, enz.), (asynchroon framework), , (HTTP, FTP, …), (delta-patches), (compressie-algoritme), (hulpmiddelen), , en . Er wordt een snelle ontwikkelingscyclus ondersteund, zodat nieuwe versies binnen enkele seconden na codewijzigingen kunnen worden geëvalueerd.
Varianten van Monolinux zijn voorbereid voor borden en . De uiteindelijke grootte van de builds is ongeveer 800 KB. Het bord is uitgerust met een SoC i.MX6UL met CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM en 4 GB eMMC. De opstarttijd op het Jiffy-bord bedraagt slechts 0,37 seconden — van inschakeling tot gereedheid van het Ext4-bestandssysteem. Van deze tijd is 1 ms nodig voor de hardware-initialisatie van de SoC, 184 ms voor de uitvoering van de firmwarecode, 86 ms voor het werk van de bootloader, 62 ms voor het starten van de Linux-kernel en 40 ms voor de activatie van Ext4. De herstarttijd bedraagt 0,26 seconden. Bij gebruik van de netwerkstack, door vertragingen bij het onderhandelen over de Ethernet-kanaal en het verkrijgen van netwerkparameters, is het systeem gereed voor netwerkcommunicatie na 2,2 seconden.
In het systeem is Linux-kernel 4.14.78 gebruikt in een minimale configuratie met extra , die onnodige vertragingen in de MMC-driver elimineert (de MMC wordt aangesloten door de firmware van het bord en tijdens de activatie van de driver is deze al geactiveerd) en die de initialisatie van de MMC- en FEC-drivers (Ethernet) in parallelle modus starten.
Bron: opennet.ru
