Panoramica
Il kernel Linux® è il componente principale di un sistema operativo Linux e l'interfaccia primaria tra l'hardware di un sistema e i suoi processi, ai quali consente di comunicare gestendo le risorse nel modo più efficiente possibile.
Il kernel (in italiano "nocciolo") si chiama così perché, come un seme nel guscio, è situato all'interno del sistema operativo e controlla tutte le principali funzioni dell'hardware, che sia un telefono, un laptop, un server o qualsiasi altro tipo di computer.
L'importanza del sistema operativo
Il sistema operativo è la base dell'infrastruttura e degli ambienti IT ed è importante scegliere una piattaforma che supporti le strategie aziendali offrendo stabilità, sicurezza e flessibilità.
Funzioni del kernel
Il kernel svolge quattro funzioni principali:
- Gestione della memoria: tiene traccia della quantità di memoria utilizzata per lo storage dei dati e della loro posizione
- Gestione dei processi: stabilisce quali processi possono utilizzare la CPU e per quanto tempo
- Driver dei dispositivi: funge da elemento di mediazione tra l'hardware e i processi
- Gestione delle chiamate al sistema e della sicurezza: riceve le richieste di servizio dai processi
Se implementato in maniera corretta, il kernel opera autonomamente all'interno del suo spazio, nel quale alloca la memoria e tiene traccia di ogni elemento archiviato, risultando invisibile all'utente. Ciò che è visibile all'utente, ovvero i browser web e i file, sono noti come spazio utente. Queste applicazioni interagiscono con il kernel mediante un'interfaccia per le chiamate di sistema (SCI).
Immaginalo così: il kernel è come l'assistente personale di un dirigente molto importante (l'hardware). Si occupa di inoltrare al dirigente i messaggi e le richieste (processi) provenienti dai dipendenti e dal pubblico (utenti), ricorda dove si trova ogni cosa (memoria) e stabilisce chi può incontrare il dirigente, a che ora e per quanto tempo.
Le funzioni del kernel rispetto al sistema operativo
Per contestualizzare il kernel, immaginiamolo come un sistema Linux a tre livelli:
- Hardware: la macchina fisica, ovvero la base del sistema, che è costituita dalla memoria (RAM), dal processore (o CPU), dai dispositivi di input/output (I/O) quali storage e reti, e dalle funzioni di elaborazione grafica. La CPU esegue i calcoli e le attività di lettura e scrittura sulla memoria.
- Kernel Linux: il nucleo del sistema operativo. Si trova esattamente nel mezzo. È il software che risiede in memoria e che indica alla CPU cosa fare.
- Processi utente: si tratta dei programmi in esecuzione, gestiti dal kernel. Collettivamente, costituiscono lo spazio utente e sono noti anche solo come processi. Il kernel consente anche la comunicazione tra questi processi e server, un'attività nota come comunicazione tra processi o IPC.
Il codice eseguito dal sistema viene eseguito sulle CPU in modalità kernel o in modalità utente. Il codice eseguito con la modalità kernel ha accesso illimitato all'hardware, mentre la modalità utente limita l'accesso di CPU e memoria alla SCI. Esiste una separazione equivalente anche per la memoria (spazio del kernel e spazio utente). Questi due dettagli, apparentemente poco rilevanti, costituiscono la base di alcune operazioni complesse, come la separazione dei privilegi per la sicurezza, la creazione dei container e le macchine virtuali.
Inoltre, in caso di non riuscita di un processo in modalità utente, i danni saranno limitati e il kernel potrà recuperarli. Tuttavia, poiché un processo kernel può accedere alla memoria e al processore, un suo eventuale blocco può causare l'arresto dell'intero sistema. A condizione che siano state previste modalità di protezione e che siano necessari permessi per passare da un livello all'altro, è difficile che un blocco dei processi utente possa causare gravi problemi.
Inoltre, visto che il kernel Linux resta operativo durante l'applicazione di patch in tempo reale, non c'è alcun downtime quando vengono introdotte per le correzioni di sicurezza.
Perché scegliere Red Hat?
Linux è la base di tutto ciò che realizziamo. Red Hat è il secondo contributore aziendale al kernel Linux, a cui apporta la competenza e l'esperienza accumulate in 25 anni e una vasta community di partner, clienti ed esperti del settore. È una relazione di lunga data, con una storia e un livello di esperienza difficili da trovare altrove.
Il kernel Linux è open source, e l'open source è alla base di tutti i principi Red Hat. Scopri perché abbiamo scelto di far poggiare la nostra azienda su Red Hat® Enterprise Linux.