MISE À JOUR : Ce projet n'est pas activement maintenu, faute de temps.

Thor est un système d'exploitation créé à des fins d'apprentissage et pour le plaisir.
Il s'agit actuellement d'un système d'exploitation 64 bits, écrit principalement en C ++, avec quelques lignes d'assemblage si nécessaire.
Il existe de nombreuses raisons de construire un système d'exploitation à partir de zéro.
Pour moi, les deux principales raisons sont pour le plaisir et pour apprendre de nouvelles choses. Lorsque je me suis ennuyé de travailler sur mon compilateur personnalisé, j'ai décidé de travailler sur un nouveau projet et j'ai choisi le développement du système d'exploitation. C'est probablement le projet de passe-temps le plus compliqué qui puisse être réalisé. J'ai dû apprendre beaucoup de choses à avancer pendant ce projet. Il y a des tonnes de difficultés auxquelles vous ne pensez même pas dans les programmes normaux. Plus généralement, depuis que j'aime la programmation, j'étais sûr que je pourrais avoir beaucoup de plaisir à développer mon propre système d'exploitation. Il y a aussi le côté geek d'avoir son propre système d'exploitation :)
Je n'ai absolument aucune intention de gagner de l'argent avec ce projet. Quand je ne m'amuserai plus à le développer, je vais simplement changer de projet pendant un certain temps;)
L'écriture d'un système d'exploitation à partir de zéro n'est pas facile et à chaque étape, vous avez besoin de beaucoup d'informations qui ne sont pas nécessairement facilement disponibles. Généralement, plus votre système d'exploitation est avancé, moins vous trouverez d'informations.
Les deux principales ressources pour le développement ont été:
Une bonne série de tutoriels pour commencer est la série Broken Thorn. Je n'ai pas suivi le tutoriel complet (seulement quelques pièces spécifiques), mais c'est plein de bonnes informations et c'est probablement un bon point de départ.
Il y a aussi la série James Molloy. C'est beaucoup moins complet, mais si vous aimez les tutoriels, ça va probablement être utile.
Et bien sûr (si vous développez sur Intel), le manuel du développeur du logiciel Intel 64 et IA-32 Architectures , il y a plusieurs pièces dans le guide, j'ai principalement utilisé la partie de programmation système - partie 1 . Bien que cela puisse sembler lourd, il est assez bon et sera un atout inestimable pour comprendre l'architecture: par exemple, la pagination et les interruptions.
Quant aux livres, j'ai été à peu près déçu jusqu'à présent. Il y a beaucoup de livres sur le système d'exploitation, mais aucun des rares que j'ai lus jusqu'à présent n'a été génial. Ils sont probablement doués pour vous aider à comprendre les Os, mais assez mauvais pour vous aider à développer votre propre système d'exploitation. De plus, ils sont également à peu près dépassés.
Les livres que j'ai lus sont:
En général, alors que les livres vous aideront à comprendre un peu les systèmes d'exploitation, ils ne vous aideront pas vraiment à développer quoi que ce soit. J'ai d'autres livres qui devraient arriver bientôt, j'espère qu'ils se passeront mieux.
Remarque: Ce référentiel utilise des sous-modules, n'oubliez pas l'option - réécursive lorsque vous le vérifiez.
La procédure de construction est décrite sur le wiki: https://github.com/wichtounet/thor-os/wiki/build
Ce projet est distribué sous la licence du MIT. Lisez la licence pour plus de détails.