Erik Moqvist, skaberen af platformen og værktøjerne , udvikler en ny distribution , der er rettet mod at skabe indlejrede Linux-systemer til isoleret kørsel af bestemte applikationer skrevet i C. Distributionen er bemærkelsesværdig, fordi programindholdet præsenteres som en enkelt statisk sammenkomponeret eksekverbar fil, der inkluderer alle komponenter nødvendige for at køre applikationen (i bund og grund udgør distributionen Linux-kernen og en ramdisk med en statisk bygget init-proces, der indeholder applikationen og de nødvendige biblioteker). Koden under MIT-licensen.
I omgivelserne stilles alle undersystemer og systemopkald fra Linux-kernen til rådighed, herunder adgang til FS, netværksstakken og enhedsdrivere. Til binding med applikationen er biblioteker som (C-biblioteket Monolinux med shell, DHCP- og NTP-klienter, Device-mapper osv.), (asynkront framework), , (HTTP, FTP, …), (delta-patches), (komprimeringsalgoritme), (hjælpeværktøjer), , og . Der understøttes en hurtig udviklingscyklus, der gør det muligt at evaluere den nye version inden for få sekunder efter ændringer i koden.
Varianterne af Monolinux er forberedt til kort og . Den endelige størrelse af bygningerne er omkring 800 KB. Kortet er udstyret med SoC i.MX6UL med CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM og 4 GB eMMC. Opstartstiden på Jiffy-kortet er kun 0,37 sekunder — fra tænding til klar til Ext4-filsystemet. Af den tid går 1 ms til hardwareinitialisering af SoC, 184 ms til udførelse af firmwarekoden, 86 ms til bootloaderens arbejde, 62 ms til opstart af Linux-kernen og 40 ms til aktivering af Ext4. Genstartstiden er 0,26 sekunder. I tilfælde af brug af netværksstakken bliver systemet klar til netværksinteraktion efter 2,2 sekunder på grund af forsinkelser i etableringen af Ethernet-forbindelsen og modtagelsen af netværksparametre.
Systemet bruger Linux-kernen 4.14.78 i en minimal konfiguration med ekstra , der eliminerer unødvendige forsinkelser i MMC-driveren (MMC tilsluttes kortets firmware og er allerede aktiveret, når driveren startes) og som aktiverer initialiseringen af MMC- og FEC-driverne (Ethernet) i parallelt drift.
Kilde: opennet.ru
