Similitudini e differenze dei kernel di Linux e Windows
Cos'è il kernel?
Il kernel è una parte fondamentale di qualsiasi sistema operativo. Il profano medio è beatamente ignaro della sua esistenza. Milioni di persone usano un computer ogni giorno senza capire come funziona. Di solito solo un programmatore ha a che fare direttamente con il kernel. Installare il software dei driver dei dispositivi o configurare un protocollo di rete è probabilmente quanto la maggior parte delle persone si avvicinerà mai al Kernel. Il Kernel è il nucleo del sistema operativo al livello più basso e basilare. La sua funzione è vitale praticamente per tutte le operazioni. Il Kernel è per un sistema operativo quello che il motore è per una macchina. Senza il Kernel, potremmo fare poco o niente con il nostro computer.
Somiglianze
Sia il Kernel di Linux che quello di Windows controllano il software di sistema di basso livello e le interazioni con l'hardware del computer attraverso l'Hardware Abstraction Layer (HAL). In questo modo il kernel mantiene il resto del sistema operativo indipendente dall'hardware, il che a sua volta permette una maggiore portabilità. I kernel dei sistemi operativi sono scritti in un linguaggio di alto livello noto come C. Il linguaggio C è stato scelto perché il C è stato portato praticamente su ogni piattaforma hardware esistente. La portabilità è importante per i programmatori e le aziende di software perché significa meno lavoro, meno tempo e meno spese. Entrambi i kernel gestiscono cose come driver di dispositivi, caching, memoria virtuale, protocolli di rete, file system, creazione e terminazione di processi e chiamate di sistema. L'obiettivo di un Kernel è simile da sistema a sistema, ma l'approccio può essere molto diverso tra i sistemi operativi.
Il Kernel in Linux
Il Kernel Linux si riferisce a tutto ciò che gira in modalità Kernel ed è composto da diversi livelli distinti. Al livello più basso, il Kernel interagisce con l'hardware attraverso l'HAL. Al livello intermedio, il Kernel UNIX è diviso in 4 aree distinte. La prima delle quattro aree gestisce i dispositivi a carattere, la TTY grezza e cotta e la gestione dei terminali. La seconda area gestisce i driver dei dispositivi di rete, i protocolli di routing e i socket. La terza area gestisce i driver dei dispositivi di disco, le cache di pagina e di buffer, il file system, la memoria virtuale, la denominazione e la mappatura dei file. La quarta e ultima area gestisce la distribuzione dei processi, la programmazione, la creazione e la terminazione, così come la gestione dei segnali. Sopra tutto questo abbiamo il livello superiore del Kernel che include le chiamate di sistema, gli interrupt e le trappole. Questo livello serve come interfaccia per ciascuna delle funzioni di livello inferiore. Un programmatore usa le varie chiamate di sistema e gli interrupt per interagire con le funzioni del sistema operativo.
Il Kernel e il 'Kernel Mode' in Windows
Il Kernel nel sistema operativo Windows è un po' diverso da quello di LINIX perché Microsoft ha preso un approccio un po' diverso alla progettazione del Kernel. Il termine "modalità Kernel" si riferisce non solo al Kernel stesso ma anche all'HAL e a vari servizi di sistema. Questo include l'HAL (hal.dll) al livello inferiore, seguito dal Kernel al secondo livello. Il terzo livello è il Kernel. Sopra di esso (quarto livello) abbiamo vari manager per oggetti, processi, memoria, sicurezza, cache, Plug in Play (PnP), alimentazione, configurazione e I/O. Anche il file system e Win32 GDI sono a questo livello. Molti degli elementi a questo quarto livello sono indicati collettivamente come il Windows Executive (ntoskrnl.exe). In cima e al quinto livello del Kernel ci sono i servizi di sistema.
Riassunto
Come si può vedere, sia i sistemi operativi Linux che Windows hanno un Kernel che svolge funzioni simili. Tuttavia, entrambi i kernel sono progettati in modo abbastanza diverso. Nel mondo dei computer; ci sono molti modi per raggiungere gli stessi obiettivi.