Monolinux — distribuzione monofile, che si avvia su CPU ARMv7 528 MHz in 0.37 secondi

Erik Moqvist, autore della piattaforma Simba e degli strumenti cantools, sta sviluppando una nuova distribuzione Monolinux, orientata alla creazione di sistemi Linux embedded per l'esecuzione isolata di applicazioni scritte in C. La distribuzione è caratterizzata dal fatto che il contenuto software è confezionato in un unico file eseguibile statico, che include tutti i componenti necessari per il funzionamento dell'applicazione (essenzialmente, la distribuzione consiste nel kernel Linux e in un ram-disk con un processo init staticamente assemblato, che include l'applicazione e le librerie necessarie). Il codice è distribuito sotto licenza MIT.

Nel contesto vengono fornite tutte le sottosistemi e le chiamate di sistema del kernel Linux, compreso l'accesso al filesystem, allo stack di rete e ai driver dei dispositivi. Per il collegamento all'applicazione sono disponibili librerie come ml (libreria C Monolinux con shell, client DHCP e NTP, Device-mapper, ecc.), async (framework asincrono), bitstream, curl (HTTP, FTP, ...), detools (patch delta), heatshrink (algoritmo di compressione), humanfriendly (strumenti ausiliari), mbedTLS, xz e zlib. È supportato un ciclo di sviluppo rapido, che consente di valutare in pochi secondi il lavoro della nuova versione dopo aver apportato modifiche al codice.

Le varianti Monolinux sono state preparate per le schede Raspberry Pi 3 e Jiffy. La dimensione finale dei pacchetti è di circa 800 KB. La scheda Jiffy è dotata di SoC i.MX6UL con CPU ARMv7-A (528 MHz), 1 GB di RAM DDR3 e 4 GB di eMMC. Il tempo di avvio sulla scheda Jiffy è di soli 0,37 secondi — dall'accensione alla disponibilità del filesystem Ext4. Di questo, 1 ms è dedicato all'inizializzazione hardware del SoC, 184 ms all'esecuzione del codice del firmware, 86 ms al bootloader, 62 ms all'avvio del kernel Linux e 40 ms all'attivazione di Ext4. Il tempo di riavvio è di 0,26 secondi. In caso di utilizzo dello stack di rete, a causa dei ritardi nella negoziazione del canale Ethernet e nell'ottenimento dei parametri di rete, il sistema è pronto per l'interazione di rete dopo 2,2 secondi.

Nel sistema è utilizzato il kernel Linux 4.14.78 in configurazione minima con ulteriori patch, che eliminano ritardi non necessari nel driver MMC (il MMC si collega tramite il firmware della scheda e al momento dell'avvio del driver è già attivato) e avviano l'inizializzazione dei driver MMC e FEC (Ethernet) in modalità parallela.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster