Erik Moqvist, autore della piattaforma e degli strumenti , sta sviluppando una nuova distribuzione , 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 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 (libreria C Monolinux con shell, client DHCP e NTP, Device-mapper, ecc.), (framework asincrono), , (HTTP, FTP, ...), (patch delta), (algoritmo di compressione), (strumenti ausiliari), , e . È 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 e . La dimensione finale dei pacchetti è di circa 800 KB. La scheda è 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 , 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
