Existe-t-il des systèmes d'exploitation suffisamment simples pour l'apprentissage? [fermé]


19

J'aimerais vraiment comprendre comment fonctionne un système d'exploitation en coulisses. Cependant, je pense que le noyau de la plupart des systèmes d'exploitation open source est trop complexe à des fins d'apprentissage, même pour un programmeur à temps plein. Existe-t-il des OS «simples» uniquement à des fins d'apprentissage?




J'ai trouvé cela lors de ma recherche, je ne l'ai jamais essayé. pdos.csail.mit.edu/6.828/2012/xv6.html apparemment, il a été écrit pour remplacer Unix v6 comme outil d'apprentissage.
ctrl-alt-delor

Réponses:


28

Le Minix d' Andrew Tanenbaum (voir Conception et implémentation de systèmes d'exploitation ) est exactement destiné à ce genre de but. Une autre possibilité (quoique assez datée) est de lire Lion's Book , qui couvre Unix V6 (Unix complet, mais une version assez ancienne pour qu'elle soit encore assez simple pour une étude assez facile). Les inconvénients évidents de ce dernier sont que le C qu'il utilise est assez obsolète, donc même les programmeurs C assez expérimentés peuvent trouver des parties quelque peu difficiles à lire, et vous ne pouvez pas prévoir un compilateur moderne digérant le code.


7
MINIX 3 n'est pas un outil pédagogique et le micro-noyau MINIX 3 n'est certainement pas facile à comprendre. Selon Tanenbaum, seul MINIX 1 était un outil pédagogique.
sakisk

10

Vous devriez envisager un système Unix-a-like moderne, le système d'exploitation Xv6, utilisé dans un cours de système d'exploitation au MIT. Il semble que certains supports de cours lui soient également associés.

Il fonctionne dans les émulateurs Bochs et Qemu x86. J'ai fait cette partie. C'était amusant.


7

Minix est un excellent choix et est décrit dans l'une des autres réponses.

Xinu

Considérez également XINU - XINU n'est pas Unix.

Is est également UNIX orthographié à l'envers.

Il y a un livre de Douglas Comer que je pensais bien écrit, bien illustré et bien scopé.

Il existe un Xinu intégré et un site Web sur l'enseignement avec Xinu.

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

FreeRTOS

Un autre petit système d'exploitation qui reçoit beaucoup d'amour ces jours-ci est FreeRTOS. Il fonctionne sur presque tout. Si vous venez de Mars et que vous avez un processeur ou une carte d'évaluation où il ne fonctionne pas, vous pouvez lire environ 10 pages de documentation, modifier environ cinq fichiers liés aux interruptions, aux minuteries et aux UART et vous courrez.

http://www.freertos.org/

Ils affirment qu'il prend en charge 31 architectures et 18 chaînes d'outils. Mon expérience à la fin de 2009 a été bonne et j'ai entendu dire qu'elle s'était beaucoup améliorée depuis lors.

Autres liens

Une question similaire à ce sujet pourrait vous fournir des informations utiles:

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

Linux et beaucoup d'autres conceptions de systèmes d'exploitation sont influencés par UNIX, donc cette vidéo où les concepteurs originaux (Kernigan, Richie et Thompson et autres) est à la fois informative et obtient les idées de conception directement à la source.

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

Il existe un manuel de systèmes d'exploitation classique mais souvent révisé:

Silberschatz, Galvin, Gagne: Concepts du système d'exploitation, 7e édition

Il peut également y avoir de nouvelles éditions. Je fais rarement un lien vers un livre via un libraire, mais l'aperçu est très généreux, donc pour en savoir plus sur les systèmes d'exploitation, consultez:

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


3

Dans mon université, nous avons appris NachOS . C'est un excellent système d'exploitation open source pour l'apprentissage. Vous pouvez également trouver de nombreux exercices universitaires sur NachOS pour l'apprentissage.

Nachos est un logiciel pédagogique pour l'enseignement des cours de premier cycle et éventuellement de deuxième cycle sur les systèmes d'exploitation. La distribution Nachos comprend:

  • Un document de synthèse
  • Code de base simple pour un système d'exploitation fonctionnel
  • Un simulateur pour un exemple d'affectations génériques d'ordinateur personnel / poste de travail
  • Une amorce C ++ (Nachos est écrit dans un sous-ensemble facile à apprendre de C ++, et l'amorce aide à enseigner aux programmeurs C notre sous-ensemble)

Les missions illustrent et explorent tous les domaines des systèmes d'exploitation modernes, y compris les threads et la concurrence, la multiprogrammation, les appels système, la mémoire virtuelle, les TLB chargés par logiciel, les systèmes de fichiers, les protocoles réseau, les appels de procédure à distance et les systèmes distribués.


0

Jetez un œil à KOS (Kid OD) et SOS (Simple OS). Les deux sont des systèmes d'exploitation conçus pour enseigner les composants internes d'un système d'exploitation. KOS est le "père" de SOS et a été construit sur la base de l'expérience acquise de KOS.

Ces projets ont été à la base de nombreux articles pédagogiques dans Linux Magazine France.

Sur le site Web de KOS, vous pouvez également trouver une page où vous pouvez télécharger les sources d'autres OS simples.


0

Si vous êtes dans la famille de technologies .NET, vous pouvez consulter Singularity . Il n'a pas été mis à jour depuis 2008, mais il peut être téléchargé dans la source et la forme ISO de CodePlex ici .


Raison particulière du downvote, downvoter ? Les liens sont toujours actifs et il s'agit d'un simple système d'exploitation écrit dans un langage de haut niveau.
Jesse C. Slicer

0

Les gens peuvent comprendre toutes les versions CP / M et les premières versions DOS. Après cela, les choses sont devenues incontrôlables et personne ne sait plus tout. Ils n'étaient pas conçus pour apprendre comment fonctionne un système d'exploitation, mais beaucoup de gens l' ont appris de ces systèmes d'exploitation.


1
Pensez à ajouter des références ou des preuves anecdotiques supplémentaires pour étayer votre réponse. Ou ajoutez quelques détails supplémentaires pour indiquer pourquoi la version X est plus facile à comprendre que la version Y.

-1

Allez lire un livre sur la programmation en assembleur. Vous n'avez pas besoin de devenir compétent, mais cela vous apprendra beaucoup sur le fonctionnement interne d'un ordinateur.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.