Se siete tra quanti si sono sempre chiesti quale sia la magia che si scatena dal momento in cui si preme il tasto di accensione del proprio computer al momento in cui si effettua il login, potrebbe tornarvi utile dare un’occhiata all’articolo dal titolo “Loading and Starting a Linux* Kernel in Five Different Ways“, di Jakob Engblom, pubblicato sul sito community di Intel.
Ad esempio, sapevate tutti come per avviare un sistema Linux siano necessarie tre essenziali componenti? Queste sono:
- Il Kernel Linux vero e proprio, con tutti i suoi moduli.
- Il file system di root, dove risiedono tutti i dati della vostra installazione.
- I parametri della linea di comando del Kernel.
Grazie a queste tre componenti il bootloader è in grado di avviare il sistema.
L’articolo si basa su Intel Simics Simulator, un ambiente di simulazione completo che consente agli sviluppatori di eseguire e testare il proprio codice su simulazioni di sistemi completi, consentendo la risoluzione di problemi e la verifica del software prima che questo venga eseguito su hardware fisico.
Quale miglior ambiente quindi per esplorare le cinque modalità menzionate nel titolo dell’articolo?
La prima è quella che sfrutta l’architettura RISC-V (sarà un caso che viene qui mostrata dopo le recenti notizie che abbiamo raccontato che certificano l’ascesa dell’architettura?) e che viene riassunta in questo diagramma:
Ed è interessante notare la presenza di device tree, una struttura dati standard e condivisa che serve per descrivere l’hardware. In questo primo caso, tutte le componenti (ed eccezione del file system, logicamente) risiedono in RAM.
La seconda modalità è quella dell’avvio diretto del Kernel, con uno script che simula il bootloader in RAM insieme ai parametri di boot del Kernel (che risiede anch’esso nella RAM):
La terza modalità è quella che prevede l’avvio mediante bootloader diretto del Kernel da un disco flash, con il second-stage bootloader che risiede sul disco insieme al Kernel ed ai suoi parametri:
Quarta modalità (e qui le cose iniziano ad articolarsi) è quella del boot via rete, dove si inserisce all’interno del bootloader il PXE (Preboot eXecution Environment), uno standard che consente l’installazione da una locazione remota del sistema operativo:
Quinta ed ultima la modalità che introduce UEFI la quale, in termini di complessità, è certamente la più elevata:
È vero che solo ad osservare lo schema viene mal di testa, ma rappresenta anche una delle chiavi per comprendere i problemi di sicurezza di cui abbiamo recentemente parlato a proposito di UEFI.
La complessità non è mai amica della sicurezza, e questo articolo certamente aiuta a capire una volta di più il perché.
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.