Domanda

Sto studiando per il mio sistema operativo finale e mi chiedevo se qualcuno potesse dirmi perché il sistema operativo deve passare alla modalità kernel per syscalls?

È stato utile?

Soluzione

Una syscall viene utilizzata specificamente per eseguire un'operazione nella modalità kernel poiché il normale codice utente non è autorizzato a farlo per motivi di sicurezza.

Ad esempio, se si desidera allocare memoria, il sistema operativo ha il privilegio di farlo (poiché conosce le tabelle delle pagine ed è autorizzato ad accedere alla memoria di altri processi), ma come programma utente non dovrebbe essere consentito sbirciare o rovinare la memoria di altri processi. È un modo per inscatolarti. Quindi invii una syscall che richiede al sistema operativo di allocare memoria, e ciò accade a livello di kernel.

Modifica: vedo ora che l'articolo di Wikipedia è sorprendentemente utile su questo

Altri suggerimenti

Dato che questo è etichettato " compiti a casa " ;, non darò solo la risposta ma fornirò un suggerimento:

Il kernel è responsabile dell'accesso all'hardware del computer e della garanzia che le applicazioni non si incrocino l'una sull'altra. Cosa accadrebbe se qualsiasi applicazione potesse accedere a un dispositivo hardware (ad esempio il disco rigido) senza la collaborazione del kernel?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top