Je prévois d'écrire un système d'exploitation et je ne sais pas grand-chose sur les systèmes d'exploitation. Y at-il de bonnes ressources ou des livres à lire pour que j'apprenne? Quelles sont vos recommandations?Ressources pour développer un système d'exploitation
Répondre
Nous avons utilisé Andrew Tannenbaum Modern Operating Systems à l'université, j'ai assisté. Je le recommande fortement pour ses explications claires des compromis inhérents à la plupart des décisions de conception que vous rencontrerez. Ce livre est un peu plus "juste et équilibré" que le livre Minix.
alt text http://ecx.images-amazon.com/images/I/51DptFJH9NL._SL500_AA240_.jpg
Je recommande aussi ce livre parce que, en dépit de son net-famous flame war with Linus Torvalds, quelques-uns de ses préjugés viennent à travers dans le livre. En outre, il est un écrivain assez décent, et le livre est réellement divertissant.
Operating Systems Implementation Prentice Software
alt text http://ecx.images-amazon.com/images/I/3125C47MR4L._SL500_AA180_.jpg
Ce livre est écrit par Tanenbaum, le gars principal derrière Minix, qui est ce que Linux était basée sur. Il fournit de bons aperçus pour les concepts de base de l'OS tels que la gestion de la mémoire, les systèmes de fichiers, les processus, etc. Les concepts de ce livre sont intimement liés aux exemples de Minix OS, ce qui est une bonne chose.
Je pense que vous devriez commencer par quelque chose comme ça.
Je veux juste souligner que Linux n'a pas été vraiment « basé sur » Minix , il était destiné à le remplacer. Linux a un noyau monolithique, tandis que Minix est basé sur un micro-noyau. –
Situé juste à côté du haut de ma tête.
Os dev site est riche en informations si vous voulez commencer à coder votre propre système d'exploitation aussi,
Operating System Concepts est le livre que nous avons utilisé à l'Université. C'est assez moche MAIS les informations à l'intérieur sont bien expliquées (à partir de la gestion de la mémoire de base, à la façon dont l'OS décide ce qu'il faut exécuter ou comment éviter les interblocages). Assez large.
Laid? Mais la couverture est _beautiful_! J'aime ce livre parce qu'il a l'air si joli sur ma bibliothèque. Cependant, je ne peux pas vraiment me souvenir de ce que c'est à l'intérieur. – mipadi
Oui, c'est un classique. Il est généralement appelé le livre des dinosaures. Je l'ai sur le canapé avec mon droit maintenant en fait. C'est un bon livre, c'est introductif cependant. Habituellement, c'est un texte de premier cycle. – BobbyShaftoe
Je l'ai toujours entendu parler de The Dino Book et je conviens qu'il s'agit d'un manuel de premier cycle. –
discussions similaires sur ce site très:
Je recommande vivement de jeter un oeil à la MIT Operating Systems class. Il y a beaucoup de références utiles, et un tas d'exercices de laboratoire avec lesquels vous pouvez jouer (y compris des scripts de notation automatisés, donc vous n'avez pas besoin d'être un étudiant du MIT pour les faire).
Si je me souviens bien, le Powerup to Bash Prompt HOWTO contenait beaucoup d'informations qui semblait serait utile pour cela. C'est ce que faisaient les anciennes versions de Linux From Scratch HOWTO, mais dans les versions récentes qui ont été supprimées.
Vous trouverez aussi beaucoup de bonnes informations en Understanding the Linux Kernel.
Alors que le vieux, ces livres sont très bons:
Operating System Design with Xinu
Operating System Design-Internetworking With XINU, Vol. II
alt text http://ecx.images-amazon.com/images/I/51MTVNE1PHL._SL500_AA240_.jpg
3: http://Operating Design System-Internetworking Avec Xinu, Vol. II
Je recommanderais d'examiner les systèmes d'exploitation embarqués et de construire un système d'exploitation intégré. Il va traiter les concepts de base sans la surcharge d'un processeur de bureau moderne.
J'ai écrit un système d'exploitation embarqué multitâche au printemps dernier en tant que projet final, c'est plus facile que vous ne le pensez.
Développement de votre propre système d'exploitation 32 bits par Richard A. Burgess. Je suis allé dans les détails sur les chargeurs de démarrage, la mise en place de ces registres de gestion de la mémoire et des processus, etc. Ce fut une excellente lecture en 1996 quand je pensais écrire un OS simple à partir de zéro, mais peut être daté maintenant, traitant uniquement des premières générations de processeurs Pentium.
Jusqu'où avez-vous eu à écrire un OS à partir de zéro? – Jeroen
Vous devriez regarder dans MINIX 3. C'est un système d'exploitation qui a été écrit, je crois, moins de 10 000 lignes. Vous pouvez avoir une très bonne idée de la façon dont fonctionne un OS à l'aide d'un des livres de Tanenbaum et comprendre comment fonctionne MINIX 3. Vous pouvez aller directement à Linux, mais je pense que c'est une tâche utile et vous aide vraiment à voir comment cela ne prend vraiment pas autant de lignes pour construire un système d'exploitation fonctionnel.
Il suffit de mettre là-bas ... mais je pense que MINIX 1 était <10 000. MINIX 3 est significativement plus complexe, je ne sais pas combien de lignes c'est. –
Jetez un oeil à HelenOS, qui est de zéro micronoyau base OS qui vise à être un système d'exploitation entièrement moderne. Disclamer, je suis un contributeur, je travaille sur son shell à partir de zéro. Helen12 a été porté sur ia32/64, SPARC, ARM et plus, son très bien conçu et facile à lire.
C'est encore à ses balbutiements, mais montre un design possible qui tire vraiment parti de la conception de micro-noyau et résout de nombreux problèmes dans la mise en œuvre d'un micro-noyau (tel que IPC).
Il comprend é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 également étudier L4, Minix3 et le GNU HURD (basé sur Mach), ce dernier étant une illustration des pièges de conception en essayant de tirer parti d'un micro-noyau.
Si vous voulez suivre la route monolithique, étudiez simplement Linux.
textbook http://ecx.images-amazon.com/images/I/411E3CQQYZL._SS500_.jpg
I utilisé Systèmes d'exploitation et Middleware: soutien Interaction contrôlée quand j'étais au collège. C'est probablement l'un des meilleurs manuels sur le sujet.
Outre les livres, il existe de nombreux sites qui apprennent OS Development
BrokenThorn Entertainment est sur de ce site qui apprennent OS dev de la base
- 1. Bibliothèque Ruby pour surveiller les ressources système
- 2. Ressources pour apprendre AppleScript pour Mac système 7.5.5
- 3. Moniteur de ressources système/Graph
- 4. Bon système de chargement de ressources
- 5. Ressources pour la programmation d'un 'chien de garde' pour un système complexe
- 6. Utilisation de l'instruction avec plusieurs ressources système
- 7. Développer un format d'échange (fichier) pour Java
- 8. Comment développer un addon pour Safari?
- 9. je veux développer un add-on pour mozilla
- 10. Quelles sont les bonnes ressources pour développer des schémas de service Web RESTful?
- 11. Est-il possible de développer Ruby on Rails avec des ressources limitées?
- 12. Développer le pilote d'impression
- 13. Ressources ASP.NET pour un programmeur C#
- 14. Comment développer un widget GWT?
- 15. Comment développer correctement pour l'iPhone sur un Mac PowerPC?
- 16. développer un bot pour utiliser comme contact gtalk avec java
- 17. Comment utiliser JavaScript pour développer un formulaire HTML?
- 18. Développer un chemin relatif dans le script Ant, pour Inkscape
- 19. VC (win32) ou WPF pour développer un éditeur de texte
- 20. Développer un lien pour afficher l'image sans utiliser javascript
- 21. Quels outils utiliser pour développer l'interface utilisateur à écran tactile basée sur flash/flex pour système embarqué
- 22. ressources d'apprentissage pour mockito
- 23. Ressources pour apprendre GNUMake?
- 24. File.WriteAllBytes provoque une erreur « ressources système insuffisantes pour terminer le service demandé »
- 25. Ressources pour l'apprentissage LINQ?
- 26. Base de données pour un système embarqué
- 27. Développer WPF Expander pour afficher l'élément contenu
- 28. Outils pour développer des services Web RESTful
- 29. Modèles pour développer des applications WCF
- 30. Ressources de développement pour Mono sur PS3
Je suis en train de lire ce livre (deuxième édition) de la couverture à la couverture au moment où nous parlons et tandis que c'est un livre énorme, il est incroyablement détaillé. Ceci et Concepts du système d'exploitation par Silberschatz et Galvin sont les deux meilleurs livres pour acquérir des connaissances sur les systèmes d'exploitation. –