ProHoster > Blog > internetové zprávy > Monolinux je jednosouborová distribuce, která se spouští na ARMv7 528 MHz CPU za 0.37 sekundy
Monolinux je jednosouborová distribuce, která se spouští na ARMv7 528 MHz CPU za 0.37 sekundy
Erik Moqvist, autor platformy Simba a nářadí cantools, vyvíjí novou distribuci Monolinux, zaměřená na vytváření vestavěných linuxových systémů pro samostatný běh určitých aplikací napsaných v jazyce C. Distribuce je pozoruhodná tím, že software je zabalen ve formě jednoho staticky propojeného spustitelného souboru, který obsahuje všechny komponenty potřebné pro fungování aplikace (distribuce se v podstatě skládá z linuxového jádra a RAM disku se statickým sestavený proces init, který zahrnuje aplikaci a potřebné knihovny) . Kód distribuovány pod licencí MIT.
Prostředí poskytuje všechny subsystémy a systémová volání linuxového jádra, včetně přístupu k systému souborů, síťového zásobníku a ovladačů zařízení. Knihovny jako: ml (Knihovna Monolinux C se shellem, klienty DHCP a NTP, mapovačem zařízení atd.), async (asynchronní framework), bitový proud, kadeř (HTTP, FTP, ...), detools (delta záplaty), tepelné smrštění (kompresní algoritmus), přátelský k lidem (pomocné nástroje), mbedTLS, xz и zlib. Je podporován rychlý vývojový cyklus, který umožňuje vyhodnotit provoz nové verze během několika sekund po provedení změn v kódu.
Monolinux varianty připravené pro desky Raspberry Pi 3 и Okamžik. Konečná velikost sestav je asi 800 KB. Platit Okamžik osazený SoC i.MX6UL s CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM a 4 GB eMMC. Doba spouštění na desce Jiffy je pouhých 0.37 sekundy od zapnutí do připravenosti souborového systému Ext4. Z této doby je 1 ms vynaložena na hardwarovou inicializaci SoC, 184 ms na spuštění kódu ROM, 86 ms na operaci bootloaderu, 62 ms na start linuxového jádra a 40 ms na aktivaci Ext4. Doba restartu je 0.26 sekundy. Při použití síťového zásobníku je systém díky zpožděním při vyjednávání ethernetového kanálu a získávání síťových parametrů připraven na síťovou interakci za 2.2 sekundy.
Systém používá linuxové jádro 4.14.78 v minimální konfiguraci s přídavnými náplasti, odstranění zbytečných prodlev v ovladači MMC (MMC je připojeno firmwarem desky a je aktivováno již při spuštění ovladače) a spuštění inicializace ovladačů MMC a FEC (Ethernet) v paralelním režimu.