Erik Moqvist, autorul platformei și instrumentarului , dezvoltă o nouă distribuție , orientată spre crearea de sisteme Linux încorporate pentru rularea separată a anumitor aplicații scrise în limbajul C. Distribuția este remarcabilă prin faptul că software-ul este organizat sub forma unui singur fișier executabil static, care include toate componentele necesare funcționării aplicației (de fapt, distribuția constă din nucleul Linux și un ramdisk cu un proces init static compilat, care include aplicația și bibliotecile necesare). Cod sub licența MIT.
În mediu sunt furnizate toate subsistemele și apelurile de sistem ale nucleului Linux, inclusiv acces la FS, stiva de rețea și driverele pentru aparate. Pentru legarea cu aplicația sunt disponibile biblioteci precum (biblioteca C Monolinux cu shell, clienți DHCP și NTP, Device-mapper etc.), (cadru asincron), , (HTTP, FTP, ...), (patch-uri delta), (algoritm de compresie), (instrumente auxiliare), , și . Se suportă un ciclu rapid de dezvoltare, permițând evaluarea unei noi versiuni în câteva secunde după modificările aduse codului.
Versiunile Monolinux sunt pregătite pentru plăci și . Dimensiunea finală a construirilor este de aproximativ 800 KB. Placa este echipată cu SoC i.MX6UL cu CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM și 4 GB eMMC. Timpul de boot pe placa Jiffy este de doar 0.37 secunde — de la pornire până la pregătirea sistemului de fișiere Ext4. Dintre acestea, 1 ms este destinat inițializării hardware a SoC, 184 ms pentru executarea codului din EEPROM, 86 ms pentru funcționarea bootloader-ului, 62 ms pentru pornirea nucleului Linux și 40 ms pentru activarea Ext4. Timpul de restart este de 0.26 secunde. În cazul utilizării stivei de rețea, din cauza întârzierilor de sincronizare a canalului Ethernet și obținerii parametrilor de rețea, sistemul devine pregătit pentru interacțiune de rețea în 2.2 secunde.
În sistem a fost utilizat nucleul Linux 4.14.78 în configurație minimă cu un supliment , eliminând întârzierile inutile în driverul MMC (MMC este conectat prin firmware-ul plăcii și în momentul pornirii driverului este deja activat) și inițializând driverele MMC și FEC (Ethernet) în mod paralel.
Sursa: opennet.ro
