LKMPG: Fasi preliminari: differenze tra le versioni

Riga 28: Riga 28:


===User Space vs Kernel Space===
===User Space vs Kernel Space===
Il kernel gestisce l'accesso a qualsiasi risorsa, sia essa relativa ad una scheda video, ad un hard disk o anche alla memoria. I programmi spesso competono per le stesse risorse. Nel momento in cui ho salvato questo documento, updatedb ha iniziato ad aggiornare il database locale. La mia sessione di vim ed updatedb stanno entrambi usando l'hard disk in modo concorrenziale. Il kernel ha bisogno di mantenere le cose ordinate e non dare agli utenti l'accesso alle risorse in qualunque modo vogliano. A questo punto, la CPU può eseguire codice in modalità differenti. Ogni modalità dà diversi livelli di libertà per fare quello che si vuole sul sistema. L'architettura Intel 80386 ha 4 modalità differenti, che sono chiamati anelli (rings). Unix usa solo due anelli; l'anello più alto (ring 0, anche conosciuto come `modalità supervisore' dove tutto è permesso) e l'anello più basso, che è chiamato `modalità utente'.
Ricordati della discussione riguardo alle funzioni di libreria e le chiamate di sistema. Di solito, si usano le librerie di funzioni nella modalità utente. La funzione di libreria chiama una o più chiamate di sistema, e queste chiamate di sistema viengono eseguite alle spalle delle funzioni di libreria, ma in modalità supervisore poichè fanno parte del kernel stesso. Una volta che la chiamata di sistema ha completato il suo compito, finisce e l'esecuzione ritorna in modalità utente.


===Name Space===
===Name Space===
43

contributi