Monolinux è una distribuzione a file singolo che si avvia su una CPU ARMv7 da 528 MHz in 0.37 secondi

Erik Moqvist, autore della piattaforma Simba e strumenti cantools, sta sviluppando una nuova distribuzione Monolinux, incentrato sulla creazione di sistemi Linux embedded per l'esecuzione autonoma di determinate applicazioni scritte in linguaggio C. La distribuzione si distingue per il fatto che il software è confezionato sotto forma di un file eseguibile collegato staticamente, che include tutti i componenti necessari per il funzionamento dell'applicazione (essenzialmente la distribuzione è composta dal kernel Linux e da un disco RAM con un collegamento statico processo init assemblato, che include l'applicazione e le librerie necessarie). Codice distribuito da con licenza MIT.

L'ambiente fornisce tutti i sottosistemi e le chiamate di sistema del kernel Linux, incluso l'accesso al file system, lo stack di rete e i driver di dispositivo. Biblioteche come: ml (Libreria C Monolinux con shell, client DHCP e NTP, Device-mapper, ecc.), async (quadro asincrono), bitstream, arricciare (HTTP, FTP, ...), detools (patch delta), termoretraibile (algoritmo di compressione), a misura d'uomo (strumenti ausiliari), mbedTLS, xz и zlib. È supportato un ciclo di sviluppo rapido, che consente di valutare il funzionamento di una nuova versione entro pochi secondi dopo aver apportato modifiche al codice.

Varianti Monolinux predisposte per schede Raspberry Pi 3 и attimo. La dimensione finale degli assembly è di circa 800 KB. Paga attimo dotato di SoC i.MX6UL con CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM e 4 GB eMMC. Il tempo di avvio sulla scheda Jiffy è di soli 0.37 secondi: dall'accensione alla disponibilità del file system Ext4. Di questo tempo, 1 ms viene dedicato all'inizializzazione hardware del SoC, 184 ms all'esecuzione del codice ROM, 86 ms al funzionamento del bootloader, 62 ms all'avvio del kernel Linux e 40 ms all'attivazione Ext4. Il tempo di riavvio è di 0.26 secondi. Quando si utilizza uno stack di rete, a causa dei ritardi nella negoziazione di un canale Ethernet e nell'ottenimento dei parametri di rete, il sistema è pronto per l'interazione di rete in 2.2 secondi.

Il sistema utilizza il kernel Linux 4.14.78 in una configurazione minima con funzionalità aggiuntive cerotti, eliminando inutili ritardi nel driver MMC (MMC è collegato dal firmware della scheda ed è già attivato al momento del lancio del driver) e avviando l'inizializzazione dei driver MMC e FEC (Ethernet) in modalità parallela.

Fonte: opennet.ru

Aggiungi un commento