Modalità utente e modalità kernel

Un processore in un computer che esegue Windows opera in due modalità diverse: modalità utente e modalità kernel. Il processore passa da queste modalità a seconda del tipo di codice in esecuzione. Le applicazioni operano in modalità utente, mentre i componenti principali del sistema operativo funzionano in modalità kernel. Anche se molti driver operano in modalità kernel, alcuni possono funzionare in modalità utente.

Modalità utente

Quando si avvia un'applicazione in modalità utente, Windows crea un processo per tale applicazione. Questo processo fornisce all'applicazione uno spazio indirizzi virtuale privato e una tabella handle privata. Poiché lo spazio indirizzi virtuale di ogni applicazione è privato, un'applicazione non può modificare i dati di un'altra applicazione. Ogni applicazione viene eseguita in isolamento, assicurandosi che, in caso di arresto anomalo, non influisca su altre applicazioni o sul sistema operativo.

Lo spazio degli indirizzi virtuali di un'applicazione in modalità utente è limitato. Un processo in esecuzione in modalità utente non può accedere agli indirizzi virtuali riservati al sistema operativo. La limitazione dello spazio degli indirizzi virtuali di un'applicazione in modalità utente impedisce all'applicazione di modificare o danneggiare i dati critici del sistema operativo.

Modalità kernel

Tutto il codice in esecuzione in modalità kernel condivide un singolo spazio indirizzi virtuale. Di conseguenza, un driver in modalità kernel non è isolato da altri driver o dal sistema operativo. Se un driver in modalità kernel scrive erroneamente nell'indirizzo virtuale errato, potrebbe compromettere i dati appartenenti al sistema operativo o a un altro driver. Se un driver in modalità kernel si arresta in modo anomalo, causa l'arresto anomalo dell'intero sistema operativo.

Il diagramma seguente illustra la comunicazione tra i componenti in modalità utente e in modalità kernel.

Diagramma che mostra la comunicazione tra i componenti in modalità utente e in modalità kernel in un sistema computer.

Spazi indirizzi virtuali