Cos’è il kernel Linux?
Il kernel Linux® è il componente principale di un sistema operativo Linux (OS) ed è l’interfaccia principale tra l’hardware di un computer e i suoi processi. Comunica tra i due, gestendo le risorse nel modo più efficiente possibile.
Il kernel è così chiamato perché, come un seme dentro un guscio duro, esiste all’interno del sistema operativo e controlla tutte le principali funzioni dell’hardware, sia esso un telefono, un portatile, un server o qualsiasi altro tipo di computer.
Cosa fa il kernel
Il kernel ha 4 compiti:
- Gestione della memoria: Tiene traccia di quanta memoria viene utilizzata per memorizzare cosa, e dove
- Gestione dei processi: Determina quali processi possono usare l’unità centrale di elaborazione (CPU), quando e per quanto tempo
- Driver di periferica: Agisce come mediatore/interprete tra l’hardware e i processi
- Chiamate di sistema e sicurezza: Riceve le richieste di servizio dai processi
Il kernel, se implementato correttamente, è invisibile all’utente, lavorando nel suo piccolo mondo conosciuto come kernel space, dove alloca la memoria e tiene traccia di dove tutto è memorizzato. Ciò che l’utente vede, come i browser web e i file, è noto come spazio utente. Queste applicazioni interagiscono con il kernel attraverso un’interfaccia di chiamata di sistema (SCI).
Pensateci in questo modo. Il kernel è un occupato assistente personale per un potente dirigente (l’hardware). Il lavoro dell’assistente è quello di inoltrare messaggi e richieste (processi) dai dipendenti e dal pubblico (utenti) all’esecutivo, ricordare cosa è immagazzinato dove (memoria) e determinare chi ha accesso all’esecutivo in qualsiasi momento e per quanto tempo.
Dove si colloca il kernel nel sistema operativo
Per contestualizzare il kernel, si può pensare ad una macchina Linux come se avesse 3 strati:
- L’hardware: La macchina fisica – il fondo o la base del sistema, composta da memoria (RAM) e il processore o unità centrale di elaborazione (CPU), così come i dispositivi di input/output (I/O) come lo storage, la rete e la grafica. La CPU esegue i calcoli e legge da e scrive sulla memoria.
- Il kernel di Linux: Il nucleo del sistema operativo. È un software che risiede in memoria e che dice alla CPU cosa fare.
- Processi utente: Questi sono i programmi in esecuzione che il kernel gestisce. I processi utente sono ciò che collettivamente costituiscono lo spazio utente. I processi utente sono anche conosciuti come semplici processi. Il kernel permette anche a questi processi e server di comunicare tra loro (noto come comunicazione tra processi, o IPC).
Il codice eseguito dal sistema gira sulle CPU in 1 di 2 modalità: modalità kernel o modalità utente. Il codice eseguito in modalità kernel ha accesso illimitato all’hardware, mentre la modalità utente limita l’accesso alla CPU e alla memoria al SIC. Una separazione simile esiste per la memoria (spazio kernel e spazio utente). Questi 2 piccoli dettagli costituiscono la base per alcune operazioni complicate come la separazione dei privilegi per la sicurezza, la costruzione di contenitori e di macchine virtuali.
Questo significa anche che se un processo fallisce in modalità utente, il danno è limitato e può essere recuperato dal kernel. Tuttavia, a causa del suo accesso alla memoria e al processore, un crash di un processo del kernel può mandare in crash l’intero sistema. Poiché ci sono protezioni in atto e permessi richiesti per attraversare i confini, i crash dei processi utente di solito non possono causare troppi problemi.
Perché scegliere Red Hat?
A Red Hat, Linux è la base di tutto ciò che facciamo. Red Hat è il secondo maggior contributore aziendale al kernel Linux, portando con sé l’esperienza e la competenza di 25 anni e una grande comunità di partner, clienti ed esperti di tutto il settore. Questa è una lunga relazione, con una storia e un livello di esperienza che è difficile da trovare.