Che cosa e’ un SISTEMA OPERATIVO
Un sistema operativo è una piattaforma software che crea un ambiente in cui un utente può eseguire diverse applicazioni su un dispositivo di elaborazione. Il sistema operativo funge da ponte tra i programmi software e i componenti hardware di un sistema. È utilizzato da diversi dispositivi come cellulari, schede, desktop, server Web, console per videogiochi, ecc. Esistono vari sistemi operativi disponibili sul mercato e Windows, Linux, Unix e Mac OS X sono alcuni degli esempi.
Diamo un’occhiata ai componenti necessari per il funzionamento di un sistema operativo.
Bootloader: Si occupa del processo di avvio del dispositivo.
Shell: Una shell è un linguaggio di programmazione che controlla altri file, elabora e controlla anche tutti gli altri programmi.
Il kernel: E’ il componente principale del sistema operativo e gestisce la memoria, la CPU e altri componenti correlati.
Ambiente desktop: Dove interagisce un utente.
Server grafico: E’ un sottosistema di sistema operativo utilizzato per mostrare la grafica sullo schermo.
Applicazioni: Sono i programmi che eseguono diverse attività utente come word, excel, ecc.
Demoni: Fornitore di servizi in background.
BOOTLOADER :
La funzione fondamentale di un boot loader è dunque caricare ed eseguire un kernel di sistema operativo, unitamente ai processi e servizi secondari. Nella maggior parte dei casi, questo richiede di accedere alla memoria di massa, per leggere il kernel di sistema operativo, e potenzialmente altri file. Nei casi più semplici, il boot loader contiene l’indirizzo dei blocchi di disco in cui sono memorizzati i file da caricare, e deve quindi essere aggiornato se questi file vengono modificati. L’accesso al disco spesso avviene attraverso le funzioni fornite dal firmware (il BIOS nei sistemi PC IBM compatibili). Alcuni boot loader posseggono la capacità di interpretare uno o più file system per trovare i file da caricare. In questo caso, possono anche caricare un file di configurazione dal disco, o permettere ad un utente avanzato di esplorare il disco alla ricerca di file da caricare. Alcuni boot loader sono in grado di utilizzare le funzionalità fornite da alcune schede di rete (tipicamente ethernet) per scaricare un kernel dalla rete, tipicamente via TFTP.
Ogni sistema operativo installato anzi ogni volume avviabile (esistono infatti anche ambienti di ripristino o simili) ha uno specifico boot loader o, meglio, il file di configurazione di avvio (per Windows 10 si chiama BCD, ad esempio) contiene le istruzioni di avvio specifiche che devono essere lette dal boot loader per ogni volume avviabile.
Funzionalità aggiuntive presenti in alcuni boot loader:
-
Molti kernel supportano la possibilità di ricevere parametri di avvio per configurare il loro comportamento; il boot loader si occupa di passarli al kernel, e in alcuni casi permette all’utente di editare questi parametri.
-
Alcuni kernel prevedono che altri file siano resi disponibili al kernel durante il boot (per esempio nei sistemi Unix-like è comune l’uso di initrd, un piccolo file system memorizzato in un file). Il caricamento di questi file viene gestito dal bootloader.
-
Un boot loader può mostrare all’utente un menù di possibili kernel da caricare, con relativi parametri, permettendo all’utente di scegliere quale sistema operativo avviare.
-
Un boot loader può richiedere una password per consentire l’avvio del sistema.