top of page
  • Immagine del redattorefabio

Kernel, chi fu costui?

Kernel, che non é parente di Kermit, é la parte fondamentale di un sistema operativo. Lo dice il nome stesso: Kernel = nucleo.

Farei un corso abbreviato sul funzionamento di un computer ma la prenderei troppo da lontano. Lo farò un'altra volta.

Vi ricordate il Dos? Quello di Un Dos Tres? No, non quello li. Dos per la maggior parte di noi é sinonimo di PC IBM, era il sistema operativo in uso prima di Windows ed era una Vera Sega. In realtà Dos é qualcosa di più generico, non strettamente collegato ai PC IBM del millennio scorso. DOS sta per Disk Operating System o in altre parole Sistema Operativo su Disco.

Ogni volta che voi digitavate un comando, il computer andava sul disco a cercarsi il significato di quel comando e lo eseguiva.

Ma come faceva il computer a capire che doveva reagire in qualche modo ad una sequenza di tasti premuti sulla tastiera? Ovvero, io premevo DIR. Il computer andava sul disco a cercarsi il significato di DIR e poi mi listava il contenuto di una directory. Bene. Ma c'é una fase a monte. Perché mai premendo dei tasti il computer avrebbe dovuto risvegliarsi dal suo torpore e andare a sfavare sul disco? Cioè, ma chi glielo faceva fare? Fosse stato per me avreste potuto affaticarvi sulla tastiera a sfinimento ed io me ne sarei fregato. E qui entra in gioco il kernel. Ci sono operazioni di alto livello come andare a cercare un comando su disco ed eseguirlo ma ci sono anche operazioni di basso livello quale dire al computer hei, qualcuno scassa la minchia sulla tastiera, vedi che vuole. Questo é il kernel. Allo stesso tempo sempre lui é quello che vi fa vedere sullo schermo I caratteri DIR che avete appena premuto. Non sta ancora eseguendo il comando DIR, che il kernel non conosce, sta solo acquisendo I tasti che avete premuto e ve li mostra a schermo.

Il kernel é la prima porzione di sistema operativo che viene caricata al boot e resta residente in memoria da dove si occupa di gestire le risorse del computer ma anche di fare molto di più. Linux ad esempio é un sistema multitasking ovvero esegue operazione di programmi diversi allo stesso tempo (che é diverso dal multithread con CPU multiple).

Per fare questo qualcuno deve assegnare le giusto risorse ai vari richiedenti. Ad esempio, garantire l'accesso esclusivo in determinate zone di memoria ad un solo task in modo da evitare che il task A scrivo ad esempio 42 ed il task B 108. Poi il task A va a riprendere il suo dato ma trova 108 e sbaglia tutto e succede un casino. Ogni task può essere eseguito per un determinato tempo, guai se un solo task prendesse possesso della CPU e della memoria in esclusivi, finirebbe il multitasking.

In breve il Kernel é quello che permette ai programmi che abbiamo installato di funzionare in modo sincronizzato e non distruttivo e fa tutte le operazioni di basso livello che permettono al pc di funzionare.

Non so se sono stato chiaro, in caso contrario chiedete.



60 visualizzazioni9 commenti

Post recenti

Mostra tutti
bottom of page