J'ai l'intention d'écrire un système d'exploitation et je ne connais pas beaucoup les systèmes d'exploitation. Existe-t-il de bonnes ressources ou des livres à lire pour que je puisse apprendre? Quelles sont vos recommandations?
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 de Minix.
Je recommande également ce livre car, malgré son célèbre guerre à la flamme contre Linus Torvalds , quelques-uns de ses préjugés se manifestent. En outre, il est un écrivain assez décent et le livre est réellement divertissant.
Mise en œuvre des logiciels d'exploitation Prentice Software
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 d'un 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.
Sujets similaires sur ce même site:
Os dev website est riche en informations si vous voulez commencer à coder votre propre OS
Concepts de 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.
Bien que vieux, ces livres sont très bons:
Conception du système d'exploitation avec Xinu
Conception du système d'exploitation - Interconnexion de réseaux avec XINU, vol. II
3 : http: // Opération Conception du système - Interconnexion de réseaux avec XINU, Vol. II
Jetez un coup d’œil à HelenOS , qui est un système d’exploitation basé sur un micro-noyau intégral et 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 réellement 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 le GNU HURD (basé sur Mach), ce dernier étant l’illustration des pièges de la conception lorsqu’on tente de tirer parti d’un micro-noyau.
Si vous voulez suivre la voie monolithique, étudiez simplement Linux.
Je vous recommande vivement de consulter la classe MIT Operating Systems . 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 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 lorsque j'étais au collège. C'est probablement l'un des meilleurs manuels sur le sujet.
Développer 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 CPU de la classe Pentium.
Vous devriez regarder dans MINIX 3. C'est un système d'exploitation écrit en moins de 10 000 lignes, je crois. 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 comment fonctionne MINIX 3. Vous pourriez aller directement à Linux, mais je pense que c'est une tâche utile et vous aide vraiment à comprendre qu'il ne faut pas tant de lignes pour créer un système d'exploitation fonctionnel.
Si je me souviens bien, le HOWTO Powerup to Bash Prompt contenait beaucoup d'informations qui semblaient utiles pour cela. Il en a été de même pour les anciennes versions du HOWTO Linux From Scratch, mais dans les versions récentes, cela a été supprimé.
Vous trouverez également de nombreuses informations utiles dans Comprendre le noyau Linux .
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.
Au printemps dernier, j’avais écrit un système d’exploitation intégré multitâche comme projet final, c’est plus facile que vous ne le pensez.
Outre les livres, il existe de nombreux sites qui apprennent le développement de système d'exploitation
BrokenThorn Entertainment est un des membres de ce site Web qui apprend le développement de systèmes d'exploitation