Monolinux — et enkelt fil-distro, der starter på CPU ARMv7 528 MHz på 0,37 sekunder

Erik Moqvist, skaberen af platformen Simba og værktøjerne cantools, udvikler en ny distribution Monolinux, 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 distribueres 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 ml (C-biblioteket Monolinux med shell, DHCP- og NTP-klienter, Device-mapper osv.), async (asynkront framework), bitstream, curl (HTTP, FTP, …), detools (delta-patches), heatshrink (komprimeringsalgoritme), humanfriendly (hjælpeværktøjer), mbedTLS, xz og zlib. 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 Raspberry Pi 3 og Jiffy. Den endelige størrelse af bygningerne er omkring 800 KB. Kortet Jiffy 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 patcher, 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

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster