Oltre al kernel Linux, quale kernel del sistema operativo dovresti studiare? [chiuso]

7

Il kernel di Linux è spesso elencato come una base di codice che si consiglia di leggere e, anche se è mal commentato (o i file che ho visto sono stati tutti), contiene del codice veramente buono.

Ora, mettendo da parte il kernel di Linux, quale altro kernel del sistema operativo consiglieresti alle persone interessate alla programmazione di sistemi e / o ai sistemi operativi di studiare? Perché? Che cosa c'è di così eccezionale nel codice base? Ti mostrerebbe approcci molto diversi da come è andato il kernel di Linux? Usano tecnologie interessanti? Qualcos'altro ...?

Che i kernel siano sotto una licenza open source è più o meno necessario.

    
posta Anto 23.03.2011 - 21:01
fonte

4 risposte

10

Un grande kernel è MINIX 3 spiegato in modo approfondito nel libro di Tanenbaum (esiste in edizione economica): Progettazione e implementazione di sistemi operativi .

...Written by the creator of Minux, professional programmers will now have the most up-to-date tutorial and reference available today.

Revised to address the latest version of MINIX (MINIX 3), this streamlined, simplified new edition remains the only operating systems text to first explain relevant principles, then demonstrate their applications using a Unix-like operating system as a detailed example. It has been especially designed for high reliability, for use in embedded systems, and for ease of teaching...

    
risposta data 23.03.2011 - 21:08
fonte
6

Microsoft Research Singularity . Un approccio molto diverso alla progettazione di un sistema operativo. Basato sui progressi nei moderni linguaggi di programmazione, digitare sistemi, strumenti, analisi statiche, compilatori e verifica dei programmi. In effetti, la maggior parte della squadra non proveniva nemmeno dalla Divisione Sistema Operativo di Microsoft Research, erano linguaggi, strumenti, verifiche e compilatori.

L'idea di base è che la tipizzazione statica e l'analisi possono fornire garanzie molto più severe sull'isolamento del processo rispetto alla MMU della CPU. E può dare queste garanzie a tempo di compilazione invece di runtime, il che significa che i processi sono molto più leggeri. Leggero quanto basta, infatti, che ogni driver di dispositivo, ogni file system, ogni sottocomponente di un'applicazione, può essere eseguito in un proprio processo isolato, inutile, con un sovraccarico praticamente nullo. (Un commutatore di contesto non fa altro che sfogliare un po 'di puntatori. Non è previsto alcun controllo, poiché tutto ciò è già stato fatto in fase di compilazione.)

Le idee in Singolarità sono portate avanti in altri sistemi operativi al di fuori di MSR: Midori (che si dice sia un'implementazione commerciale di Singularity e un possibile successore di Windows NT) e Helios (che prende l'idea di avere tutto il dispositivo driver, servizi e programmi del sistema operativo scritti in un linguaggio indipendente dall'hardware e applicato a un approccio multi-kernel, in cui diverse parti del sistema operativo sono eseguite su diverse CPU con ISA possibilmente differenti).

    
risposta data 23.03.2011 - 23:44
fonte
6

Inferno - vale la pena provarlo, perché molte delle sue idee prima o poi vengono "backportate" su Linux / Unix. È un sistema operativo sperimentale di Bell Labs e la prosecuzione del loro lavoro su Plan9 .

La caratteristica più interessante di Inferno è il modo in cui rende le risorse di rete completamente trasparenti alle applicazioni:

Transparent Resources

Inferno offers complete transparency of resources and data using a simple but powerful 'namespace' system. By representing resources as files and having one standard communication protocol — 9P (Styx®) — resources such as data stores, services and external devices can easily be shared between Inferno systems. A resource interface may be imported to the local system and used by the applications without them knowing, or needing to know, whether it is local or remote.

    
risposta data 24.03.2011 - 00:56
fonte
5

Oberon. I libri sono Il sistema Oberon: Manuale dell'utente e Manuale del programmatore e Progetto Oberon: la progettazione di un sistema operativo e un compilatore

Oberon è una prova di esistenza dell'affermazione secondo cui i grandi sistemi operativi per workstation non devono essere grandi. In un momento in cui Unix richiedeva molti megabyte solo per il caricamento (e una delle prime distribuzioni Linux non veniva caricata in meno di 8 megabyte), Oberon forniva un sistema operativo workstation completo con un footprint di memoria di circa 300 kbyte.

    
risposta data 23.03.2011 - 21:24
fonte