Esistono sistemi operativi abbastanza semplici per l'apprendimento? [chiuso]


19

Mi piacerebbe davvero capire come funziona un sistema operativo dietro le quinte. Tuttavia, penso che il kernel della maggior parte dei SO open source sia troppo complesso per scopi di apprendimento, anche per un programmatore a tempo pieno per imparare. Esistono sistemi operativi "semplici" creati esclusivamente a fini di apprendimento?




L'ho trovato sulla mia ricerca, non l'ho mai provato. pdos.csail.mit.edu/6.828/2012/xv6.html apparentemente è stato scritto per sostituire Unix v6 come strumento di apprendimento.
ctrl-alt-delor,

Risposte:


28

Il Minix di Andrew Tanenbaum (consultare Progettazione e implementazione di sistemi operativi ) è destinato esattamente a questo tipo di scopo. Un'altra possibilità (anche se piuttosto datata) è quella di leggere il Lion's Book , che copre Unix V6 (Unix completo, ma una versione abbastanza vecchia che è ancora abbastanza semplice per uno studio abbastanza facile). Gli ovvi svantaggi di quest'ultimo sono che il C che utilizza è piuttosto obsoleto, quindi anche programmatori C abbastanza esperti possono trovare parti un po 'difficili da leggere e non è possibile pianificare un moderno compilatore che digerisce il codice.


7
MINIX 3 non è uno strumento di insegnamento e il microkernel MINIX 3 non è sicuramente facile da capire. Secondo Tanenbaum solo MINIX 1 era uno strumento didattico.
sakisk,

10

Dovresti prendere in considerazione un moderno Unix-a-like, il sistema operativo Xv6, utilizzato in un corso OS presso il MIT. Sembra che abbia anche del materiale didattico associato ad esso.

Funziona con entrambi gli emulatori Bochs e Qemu x86. Ho fatto quella parte. È stato divertente.


7

Minix è un'ottima scelta ed è descritto in una delle altre risposte.

Xinu

Considera anche XINU - XINU non è Unix.

È anche UNIX scritto al contrario.

C'è un libro di Douglas Comer che pensavo fosse ben scritto, ben illustrato e ben definito.

C'è un Xinu incorporato e un sito web sull'insegnamento con Xinu.

http://xinu.mscs.mu.edu/Teaching_With_Xinu

FreeRTOS

Un altro piccolo sistema operativo che ama molto in questi giorni è FreeRTOS. Funziona su quasi tutto. Se provenissi da Marte e disponevi di un processore o di una scheda di valutazione in cui non è in esecuzione, potresti leggere circa 10 pagine di documentazione, modificare circa cinque file relativi a interruzioni, timer e UART e sarai in esecuzione.

http://www.freertos.org/

Sostengono che supporta 31 architetture e 18 catene di utensili. La mia esperienza alla fine del 2009 è stata buona e da allora ho sentito che è stato migliorato molto.

Altri collegamenti

Una domanda simile che potrebbe avere informazioni utili per te si trova qui:

/programming/254149/how-do-you-write-a-basic-operating-system

Linux e molti altri design del sistema operativo sono influenzati da UNIX, quindi questo video in cui i designer originali (Kernigan, Richie, Thompson e altri) sono entrambi informativi e ottengono le idee di design direttamente dalla fonte.

http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System

Esiste un libro di testo sui sistemi operativi classico ma spesso rivisto:

Silberschatz, Galvin, Gagne: Concetti relativi al sistema operativo, 7a edizione

Potrebbero esserci anche nuove edizioni. Raramente mi collego a un libro tramite un venditore di libri, ma l'anteprima è molto generosa, quindi per saperne di più sui sistemi operativi, controlla:

http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720


3

Nella mia università abbiamo imparato NachOS . È un ottimo sistema operativo open source per l'apprendimento. Puoi anche trovare molti esercizi universitari su NachOS per l'apprendimento.

Nachos è un software didattico per l'insegnamento di corsi di sistema operativo di livello universitario e potenzialmente laureati. La distribuzione di Nachos include:

  • Un documento di sintesi
  • Semplice codice di base per un sistema operativo funzionante
  • Un simulatore per assegnazioni di esempio di un personal computer / workstation generico
  • Un primer C ++ (Nachos è scritto in un sottoinsieme di C ++ di facile apprendimento e il primer aiuta a insegnare ai programmatori C il nostro sottoinsieme)

Le assegnazioni illustrano ed esplorano tutte le aree dei moderni sistemi operativi, inclusi thread e concorrenza, multiprogrammazione, chiamate di sistema, memoria virtuale, TLB caricati con software, file system, protocolli di rete, chiamate di procedure remote e sistemi distribuiti.


0

Dai un'occhiata a KOS (Kid OD) e SOS (Simple OS). Entrambi sono sistemi operativi progettati per insegnare agli interni di un sistema operativo. KOS è il "padre" di SOS ed è stato costruito sulla base dell'esperienza acquisita da KOS.

Questi progetti furono la base di molti articoli educativi su Linux Magazine France.

Sul sito Web di KOS è inoltre possibile trovare una pagina in cui è possibile scaricare le fonti di altri sistemi operativi semplici.


0

Se sei nella famiglia di tecnologie .NET, puoi dare un'occhiata a Singularity . Non è stato aggiornato dal 2008, ma può essere scaricato in codice sorgente e ISO da CodePlex qui .


Motivo particolare del downvote, downvoter ? I collegamenti sono ancora attivi ed è un semplice sistema operativo scritto in un linguaggio di alto livello.
Jesse C. Slicer,

0

Le persone possono comprendere tutte le versioni di CP / M e DOS precedenti. Dopo ciò le cose sono andate fuori controllo e nessuno sa più tutto. Non sono stati progettati per apprendere come funziona un sistema operativo, ma molte persone lo hanno imparato da quel sistema operativo.


1
Valuta di aggiungere alcuni riferimenti o ulteriori prove aneddotiche per eseguire il backup della tua risposta. Oppure aggiungi alcuni dettagli aggiuntivi per indicare perché la versione X è più facilmente comprensibile della versione Y.

-1

Vai a leggere un libro sulla programmazione in assemblatore. Non devi diventare esperto in questo, ma ti insegnerà molto del funzionamento interno di un computer.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.