Monolinux ir viena faila izplatīšana, kas sāknējas ar ARMv7 528 MHz centrālo procesoru 0.37 sekundēs

Ēriks Mokvists, platformas autors Simba un instrumenti kantools, izstrādā jaunu izplatīšanu Monolīnuks, kas koncentrējas uz iegultu Linux sistēmu izveidi atsevišķu C valodā rakstītu lietojumprogrammu atsevišķai darbībai. Izplatījums ir ievērojams ar to, ka programmatūra ir iepakota viena statiski saistīta izpildāmā faila formā, kurā ir iekļauti visi lietojumprogrammas darbībai nepieciešamie komponenti (būtībā distribūciju veido Linux kodols un RAM disks ar statisku samontēts sākuma process, kas ietver lietojumprogrammu un nepieciešamās bibliotēkas) . Kods izplata saskaņā ar MIT licenci.

Vide nodrošina visas Linux kodola apakšsistēmas un sistēmas izsaukumus, tostarp piekļuvi failiem, tīkla steku un ierīču draiverus. Bibliotēkas, piemēram: ml (Monolinux C bibliotēka ar čaulu, DHCP un NTP klienti, ierīces kartētājs utt.), async (asinhronais ietvars), bitu plūsma, cirtot (HTTP, FTP, ...), detools (delta plankumi), siltuma saraušanās (saspiešanas algoritms), cilvēkiem draudzīgs (palīginstrumenti), mbedTLS, xz и zlib. Tiek atbalstīts ātrs izstrādes cikls, kas ļauj novērtēt jaunas versijas darbību dažu sekunžu laikā pēc koda izmaiņu veikšanas.

Monolinux varianti sagatavoti dēļiem Raspberry Pi 3 и Džifija. Agregātu galīgais izmērs ir aptuveni 800 KB. Maksājiet Džifija aprīkots ar SoC i.MX6UL ar CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM un 4 GB eMMC. Sāknēšanas laiks uz Jiffy plates ir tikai 0.37 sekundes — no ieslēgšanas līdz Ext4 failu sistēmas gatavībai. No šī laika 1 ms tiek tērēts SoC aparatūras inicializācijai, 184 ms ROM koda izpildei, 86 ms bootloader darbībai, 62 ms Linux kodola palaišanai un 40 ms Ext4 aktivizēšanai. Atsāknēšanas laiks ir 0.26 sekundes. Izmantojot tīkla steku, aizkavējoties sarunām par Ethernet kanālu un tīkla parametru iegūšanu, sistēma kļūst gatava tīkla mijiedarbībai 2.2 sekundēs.

Sistēma izmanto Linux kodolu 4.14.78 minimālā konfigurācijā ar papildu ielāpus, novēršot nevajadzīgas kavēšanās MMC draiverī (MMC ir savienots ar plates programmaparatūru un jau ir aktivizēts draivera palaišanas brīdī) un MMC un FEC (Ethernet) draiveru inicializēšana paralēlā režīmā.

Avots: opennet.ru

Pievieno komentāru