604 votes

Quelles sont les ressources pour se lancer dans le développement du système d'exploitation?

Une chose que j'ai toujours voulu faire, c'est de développer mon propre système d'exploitation (pas nécessairement de fantaisie comme Linux ou Windows, mais mieux qu'un simple chargeur de démarrage qui je l'ai déjà fait).

Je vais avoir un moment difficile de trouver des ressources/guides qui vous passé de l'écriture d'un simple "Hello World" de l'OS.

Je sais que beaucoup de gens vont probablement vous recommander je regarde Linux ou BSD; mais le code de base pour les systèmes comme ça, c'est (sans doute) si grand que je ne sais pas par où commencer.

Toutes les suggestions?

Mise à jour: Pour le rendre plus facile pour les gens qui débarquent sur ce post via Google voici quelques OS de développement des ressources:

D'autres ressources:

J'ai trouvé une belle ressource nommée MikeOS, "MikeOS est un outil d'apprentissage pour démontrer comment de simples Systèmes d'exploitation de travail. Il utilise 16 bits en mode réel pour le BIOS de l'accès, de sorte qu'il n'a pas besoin des motivations complexes"

Mise à jour 11/14/08

J'ai trouvé quelques ressources à Freebyte du Guide...Libre et non-Systèmes d'Exploitation libres que des liens vers des kits comme OSKit et ExOS de la bibliothèque. Ces paraître super utile dans la prise en main de l'OS de développement.

Mise à jour 2/23/09

Ric Tokyo recommandé nanoos dans cette question. Nanoos est un système d'exploitation écrit en C++.

Mise à jour 3/9/09

Dinah fourni de façon utile de Débordement de Pile dans la discussion des aspirants OS développeurs: Obstacles à la création d'un système d'exploitation personnalisé explique quels sont les pièges que vous pourriez rencontrer lors du développement d'un OS et les OS de Développement est un débat plus général.

Mise à jour 7/9/09

LB fourni un lien vers le Pintos Projet, une éducation OS conçu pour les étudiants à l'apprentissage des OS de développement.

Mise à jour 7/27/09 (Toujours aussi fort!)

Je suis tombé sur un OS en ligne cours de Berkley mettant en vedette 23 conférences.

TomOS est un fork de MikeOS qui comprend un peu de gestionnaire de mémoire et de soutien de la souris. Comme MikeOS, il est conçu pour être un projet éducatif. Il est écrit en assembleur NASM.

Mise à jour 8/4/09

J'ai trouvé les diapositives et d'autres matériaux pour aller avec en ligne de Berkeley conférences énumérés ci-dessus.

Mise à jour 8/23/09

Toutes les questions tagged osdev sur stackoverflow

OS/161 est un universitaire OS écrit en c qui s'exécute sur un matériel simulé. Cet OS est similaire dans les Nachos. Grâce Novelocrat!

tangurena recommande http://en.wikipedia.org/wiki/MicroC/OS-II, un système d'exploitation conçu pour les systèmes embarqués. Il y a un livre d'accompagnement .

Le Noyau Linux de Développement par Robert Amour est suggéré par Anders. C'est un "largement acclamé initié sur le noyau Linux."

Mise à jour 9/18/2009

Merci Tim S. Van Haren pour nous parler de Cosmos, un système d'exploitation entièrement écrit en c#.

tgiphil nous raconte Géré Système d'Exploitation de l'Alliance (MOSA) Cadre, "un ensemble d'outils, les spécifications et le code source pour favoriser le développement de la gestion des systèmes d'exploitation fondés sur la Common Intermediate Language."

Mise à jour 9/24/2009

Steve trouvé un couple de ressources pour le développement sur windows à l'aide de Visual Studio, consultez BrokenThorn guide de l'installation avec VS 2005 ou OSDev de VS Section.

Mise à jour 1/20/2012

Un ensemble de tutoriels pour ambition de vous par le biais de la programmation d'un simple UNIX-clone du système d'exploitation pour l'architecture x86. JamesM du développement du noyau tutoriels

Mise à jour 9/5/2012

kerneltrap.org n'est plus disponible. Le noyau linux v0.01 est disponible à partir de kernel.org

Mise à jour 12/21/2012 Un OS de base de développement tutoriel conçu pour être un semestre de projet. Il vous guidera pour construire un OS avec des composants de base. Très bon début pour les débutants. Liées papier. Grâce Srujan!

Mise à jour 11/15/2013

L'écriture d'un Simple Système d'Exploitation à Partir de Zéro. Merci James Moore!

Mise à jour 12/8/2013

Comment faire un système d'exploitation d'ordinateur Grâce ddtoni!

Mise à jour 3/18/2014

ToAruOS un OS construit principalement à partir de zéro, y compris GUI

97voto

Adam Davis Points 47683

Il y a beaucoup de liens après ce bref aperçu de ce qui est impliqué dans l'écriture d'un OS de la plate-forme X86.

Le lien qui semble être le plus prometteur est en baisse, de sorte que vous aurez besoin de pousser à travers la http://www.nondot.org/sabre/os/articles">Archive.org version de le lire.

À la fin de la journée, le chargeur de démarrage prend le code machine du noyau, il met dans la mémoire, et les sauts. Vous pouvez mettre n'importe quel code machine dans le noyau que vous voulez, mais la plupart des programmes en C s'attendre à un OS de sorte que vous aurez besoin de dire à votre compilateur qu'il ne va pas, ou le chargeur de démarrage a créer.

Le noyau, puis fait tout le levage lourd, et je soupçonne que c'est l'exemple du noyau que vous voulez. Mais il y a un long chemin à parcourir entre le fait d'avoir un noyau qui dit, "Bonjour le monde" à avoir un noyau qui charge une commande de l'interpréteur, des disques de services, et les charges et gère des programmes.

Vous pourriez envisager de vous abonner à ACM pour obtenir l'accès à leur littérature ancienne - il y a beaucoup d'articles dans la fin des années 80 et début des années 90, au début de l'informatique magazines sur la façon de créer l'alternative de l'OSs. Il y a probablement des livres qui sont épuisés de cette époque. Vous pourriez être en mesure d'obtenir la même information gratuitement en recherchant les indices de ces magazines (qui sont disponibles sur le site - cliquez sur "index" près du nom du magazine), puis de demander autour pour les personnes avec une copie.

Enfin, je sais que usenet est mort (donc sayeth les prophètes de l'internet doom), mais vous verrez que beaucoup de la les pentes escarpées de la vieille experts de l'époque y vivent toujours. Vous devriez faire une recherche google groupes (ils ont dejanews de l'ancien dépôt) et j'espère que vous trouverez beaucoup de gens poser les mêmes questions à une décennie ou 1,5 ans que vous vous demandez maintenant. Vous pouvez même courir à travers Linus Torvalds de nombreuses requêtes pour l'aide qu'il a été le développement de linux à l'origine. Si la recherche de ne pas apporter quoi que ce soit, demandez dans les groupes de discussion (commence probablement avec comp.arch, mais la recherche pour ceux avec OS dans le nom).

Bonne chance!

36voto

Mike Stone Points 21293

Minix est beaucoup plus petit, et conçu à des fins d'apprentissage, et le livre pour aller avec c' est une bonne trop.

Mise à jour: je suppose que Minix 3 est un peu un but différent, mais Minix 2 (et bien sûr, la première version) à des fins d'enseignement.

33voto

Richard T Points 1998

Comme quelqu'un qui a écrit un temps-réel multi-tâches du système d'exploitation à partir de zéro...

clavier anti-rebond routine, pilote du clavier, disque, vidéo, pilote de système de fichiers, et enfin un boot-loader - et c'est juste pour le lancer pour la première fois, rien à faire!

... Je ne peux pas souligner assez combien il est important de se familiariser avec le matériel! Cela est particulièrement vrai si vous voulez vraiment faire tout vous-même au lieu de simplement ramasser un système primitif de quelqu'un d'autre a déjà aménagé pour vous. Par exemple, contacter Intel et leur demander une carte CPU pour votre type de CPU! Cela permettra de poser pour vous - le "pin-out", des interruptions, des opcodes, you name it!

Rappelez-vous le matériel, tout est possible. L'étude du matériel. Vous ne le regretterez pas.

.

19voto

Paul Nathan Points 22910

Écrire un microcontrôleur OS. Je recommande un système x86 à base de microcontrôleur. Un système d'exploitation moderne est juste énorme. Apprendre les bases en premier.

17voto

Steve Tranby Points 3759

Je souhaite qu'il y ait un endroit pour obtenir toutes les infos sur le développement de votre système d'exploitation. Le plus proche à venir c'est l' OS Dev Wiki et les Forums. Ils offrent une tonne de bonnes informations concernant l'installation, le développement, et de matériel périphérique d'informations.

Il y a aussi quelques tutoriels grand à BoneFide, j'ai utilisé le tutoriel d'initiation par le Son, et je suis maintenant à la recherche à un plus récente basée sur son appelé Rouler votre propre jouet UNIX-clone OS.

J'deuxième vérification: "Systèmes d'Exploitation : Conception et mise en Œuvre"

Et si vous souhaitez développer sur Windows, découvrez jolson du blog.

Edit: Pour le développement sur windows à l'aide de Visual Studio, consultez BrokenThorn guide ou OSDev du wiki.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X