Question

Je prévois d’écrire un système d’exploitation et je ne connais pas grand chose à ce sujet. Y a-t-il de bonnes ressources ou des livres à lire pour que je puisse apprendre? Quelles sont vos recommandations?

Était-ce utile?

La solution

Nous avons utilisé les systèmes d'exploitation modernes d'Andrew Tannenbaum à l'université que j'ai fréquentée. Je le recommande vivement pour ses explications claires sur les compromis inhérents à de nombreuses décisions de conception que vous rencontrerez. Ce livre est un peu plus "juste et équilibré" que le livre Minix.

 alt text

Je recommande également ce livre car, malgré sa célèbre guerre à la flamme avec Linus Torvalds , peu de ses préjugés transparaissent dans le livre. En outre, il est un écrivain assez décent et le livre est réellement divertissant.

Autres conseils

Mise en œuvre du logiciel Prentice

 alt text

Ce livre est écrit par Tanenbaum, le principal responsable de Minix, sur lequel est basé Linux. Il fournit une bonne vue d'ensemble des concepts de base du système d'exploitation, tels que la gestion de la mémoire, les systèmes de fichiers, les processus, etc. Les concepts décrits dans ce livre sont intimement liés aux exemples du système d'exploitation Minix, ce qui est une bonne chose.

Je pense que vous devriez commencer par quelque chose comme ça.

Le site Web

Os dev est riche en informations si vous souhaitez commencer à coder votre propre système d'exploitation,

Concepts du système d'exploitation est le livre que nous avons utilisé à l'université. C'est assez moche MAIS les informations qu'il contient sont bien expliquées (de la gestion de base de la mémoire à la manière dont le système d'exploitation décide quoi exécuter ou comment éviter un blocage). Assez large.

 alt text

Jetez un coup d’œil à HelenOS , un système d’exploitation basé sur un micro-noyau à partir de zéro, qui se veut tout à fait moderne. Disclamer, je suis un contributeur, je travaille sur sa coque à partir de zéro.

HelenOS a été porté sur ia32 / 64, SPARC, ARM et plus encore, il est très bien conçu et facile à lire. Il en est encore à ses balbutiements, mais montre une conception possible qui tire vraiment parti de la conception du micro-noyau et résout de nombreux problèmes dans une implémentation de micro-noyau (telle que IPC).

Il inclut également des scripts qui configurent automatiquement une chaîne d’outils appropriée pour la compilation croisée. Il est très facile à construire et fonctionne très bien dans la plupart des simulateurs (c'est-à-dire QEMU) ou en métal nu.

Je voudrais aussi étudier L4, Minix3 et GNU HURD (basé sur Mach), ce dernier étant l’illustration des pièges de la conception lorsqu’on essaie de tirer parti d’un micro-noyau.

Si vous souhaitez suivre la voie monolithique, étudiez simplement Linux.

Je vous recommande vivement de consulter la classe des systèmes d'exploitation MIT . . Il contient de nombreuses références utiles et un ensemble d'exercices de laboratoire auxquels vous pouvez jouer (y compris des scripts de notation automatisés, vous n'avez donc pas besoin d'être un étudiant du MIT pour les faire).

manuel http://ecx.images-amazon.com/ images / I / 411E3CQQYZL._SS500_.jpg

J'ai utilisé Systèmes d'exploitation et middleware: prise en charge de l'interaction contrôlée quand j'étais au collège. C'est probablement l'un des meilleurs manuels sur le sujet.

Développement de votre propre système d’exploitation 32 bits par Richard A. Burgess. Je me suis plongé dans les détails sur les chargeurs de démarrage, la configuration de ces étranges registres de gestion de processus, etc. maintenant, ne traite que des premières générations de processeurs Pentium.

Si je me souviens bien, le Powerup to Bash Prompt HOWTO contenait beaucoup d'informations qui semblaient utiles pour cela. Il en a été de même pour les anciennes versions du Linux From Scratch HOWTO, mais ces dernières versions ont été supprimées.

Vous trouverez également de nombreuses informations utiles dans Comprendre le noyau Linux . .

Vous devriez regarder dans MINIX 3. Il s’agit d’un système d’exploitation écrit en moins de 10 000 lignes. Vous pouvez avoir une très bonne idée du fonctionnement d'un système d'exploitation à l'aide de l'un des livres de Tanenbaum et comprendre le fonctionnement de MINIX 3. Vous pouvez passer directement sous Linux, mais je pense que cette tâche est utile et qu’elle vous aide vraiment à comprendre qu’il n’ya pas besoin de tant de lignes pour créer un système d’exploitation fonctionnel.

http://www.minix3.org/

Je recommanderais d'examiner les systèmes d'exploitation intégrés et de créer un système d'exploitation intégré. Il traitera des concepts de base sans les frais généraux d'un processeur de bureau moderne.

J'ai écrit un système d'exploitation intégré multitâche au printemps dernier en tant que projet final. C'est plus facile que vous ne le pensez.

Outre les livres, de nombreux sites Web traitent du développement de systèmes d’exploitation
  BrokenThorn Entertainment se trouve sur ce site Web pour apprendre le développement de système d'exploitation à partir de la base

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top