La roba del minix è piuttosto buona. Un esempio più semplice è la roba MicroC/OS. Viene fornito con un libro di testo che va bene nei dettagli, tutta la fonte è lì. Ha gli elementi di base e il codice è abbastanza piccolo da poter essere compreso in un periodo di tempo relativamente breve.
http://www.micrium.com/products/rtos/kernel/rtos.html
http://en.wikipedia.org/wiki/MicroC/OS-II
Un'altra cosa che si può fare, è fare un sistema operativo false in un'applicazione su linux. L'ho fatto impostando il segno di spunta base con un itimero, quindi scambiando i thread con la funzione call swapcontext (man 2 swapcontext) che salverà i reg in pila. Questo fa sì che le cose brutte rimangano fuori e sei lasciato ad implementare i semafori/mutex/timer e tutto il resto. È stato abbastanza divertente
Nonostante ciò che alcuni dei post dicono, l'assemblatore non è richiesto. Una conoscenza di esso aiuterà sempre.Non fa mai male capire come funzionano internals/complilers/etc quando scrivi anche applicazioni di alto livello.
Semafori, blocchi e variabili di condizione ans non sono meccanismi di comunicazione tra processi e non hanno nulla a che fare con il networking. –
sì lo so e sono d'accordo con te, ma solo menzionarlo come un libro di riferimento per l'argomento di cui è qualcosa che vale la pena, dare un'occhiata a quel libro :) – Afridi