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?