Operazione del kernel

4

Sto cercando di cogliere il concetto di un sistema operativo al momento (su macchine simili a Unix)

Il kernel è il processo con PID 0. Ovviamente il Kernel non è realmente "solo un altro processo" perché un processo è un concetto del kernel, ma non è come il controllo del kernel restituisce ad altri componenti (... ?).

Tutto ciò che il kernel può fare, può essere cercato nel codice sorgente del kernel (ad esempio il kernel di Linux è su Github che tutti possono vedere)

Quindi il sistema operativo inizia con il kernel come "processo" attivo. Quindi restituisce una porzione di tempo ad un altro processo (ad esempio il processo con PID 1), ma allo stesso tempo assicura che restituirà il controllo al kernel.

Quindi il controllo della CPU è sempre: kernel - > qualche processo - > kernel - > qualche processo - > (...)

Mai: qualche processo - > qualche processo

Le chiamate di sistema sono un'API per i processi userland per fare alcune cose che il kernel è in grado di fare. Tutte le "funzionalità avanzate" (accesso ai file, connessione al web) di qualsiasi programma possono essere ricondotte ad alcune chiamate di sistema.

Ho qualche grave incomprensione?

    
posta hgiesel 07.04.2016 - 03:41
fonte

1 risposta

5

Diversi tipi di UNIX hanno diverse architetture. In Linux e nei sistemi UNIX monolitici tradizionali il kernel è non un processo. È un blocco di codice e dati che viene mappato nello spazio di memoria del processo ogni (di solito agli indirizzi con il bit più alto impostato), ma con un diverso livello di privilegio I / O. Quando un processo effettua una chiamata di sistema, attiva un interrupt, che commuta la CPU in un livello di privilegi più elevato e rende il codice del kernel e i dati accessibili fino a quando l'interrupt non ritorna. Processi come init (PID 1) e getty (avviato da init) non sono il kernel, sono solo processi ordinari in modalità utente che vengono avviati automaticamente dal sistema.

Altri sistemi UNIX, Mach per esempio, usano un'architettura micro-kernel e hanno più sottosistemi in esecuzione come processi separati .

    
risposta data 07.04.2016 - 06:00
fonte

Leggi altre domande sui tag