In primis è necessario fare una gestione corretta del bootstrap, e per farlo è indispensabile l'uso di funzioni MOLTO a basso livello (e quindi Assembly) in quanto si richiede l'accesso diretto ai primi settori dell'hard disk. A quel punto c'è ancora una grossa mole di codice in Assembly e C a basso livello che attende per la gestione dell'hardware, per l'ottimizzazione delle risorse del processore, per la gestione delle comunicazioni I/O <-> memoria centrale <-> CPU, e soprattutto per la corretta gestione dei processi e dello scheduling della CPU (algoritmi di round robin ecc.). A tutto ciò devi aggiungere la gestione della rete e dello stack TCP/IP, dato che in tutti i kernel moderni l'intero stack viene gestito a livello di sistema operativo. Insomma, un paio di maniche non indifferenti. A suo tempo (poco prima di dare l'esame di sistemi operativi) mi aveva aiutato molto a riguardo lo studio dei sorgenti della versione 0.1 del kernel Linux, disponibile nella directory historycal di kernel.org, un kernel ancora relativamente semplice quindi comodo da studiare.
_________________
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/CM/CC/E/IT/LS/M d-(--) s:- a-- C+++$ UBL++++$ P+++ L+++++$ E- W+++ N+ o? K? w-- !O !M>+ !V PS+++ PE-- Y++ PGP+ !t !5 !X R+ tv-- b++>+++ DI? D+ G>+++ e++>++++ h r++ y+++
------END GEEK CODE BLOCK------
| Codice: |
blacklight@nightmare:/$ touch figa touch: cannot touch `figa': Permission denied |