Ce code peut ne pas sembler si approprié dans de nombreux endroits et sera refactorisé tôt ou tard. Nouveau entrepôt Recover-OS. Attendez que je revienne pour remplir la fosse. Version refactorisée: https://github.com/yiezias/recover-os
Ce projet est basé sur la version AMD64 Architecture (ou X86_64 Architecture) du système d'exploitation implémenté par "Operation System Truth Restore". Les idées et le code principaux sont cohérents avec le livre original.
Le système d'exploitation implémenté par "Operation System Truth Restore" s'exécute sur un processeur d'architecture x86 32 bits, mais maintenant nous avons déjà entré l'ère 64 bits. Alors je copie Reportez-vous au code dans "Operation System Truth Restore" pour implémenter sa version 64 bits.
$ make run peut compiler et démarrer l'émulateur Bochs.
Ce système d'exploitation a intégré 2048, Snake et autres mini-jeux.
Écrivez du code avec Recover:
(Le terminal n'implémente pas la redirection d'entrée et de sortie, et le chat ci-dessous est différent du chat sous Linux)
(Affichez simplement la fonction d'écriture de fichiers texte)

2048 Mini jeu:

Snake gourmand (la chute du cadre est sérieuse, donc je ne laisserai pas les animations partir):

Les livres connexes les plus faciles à comprendre que j'ai lus, détaillés et intéressants. Même si cela semble un peu long, l'auteur doit encore essayer différentes façons de permettre aux lecteurs de comprendre (où puis-je trouver un livre aussi amical). Parmi les nombreux livres liés au système d'exploitation, j'ai finalement choisi celui-ci Le seul à comprendre Implémentation de livre du système d'exploitation.
Principalement la différence entre les architectures AMD64 et X86
Dans le cadre de l'architecture AMD64, les fonctions utilisent généralement des registres pour passer les paramètres et la convention d'appel de fonction sous x86 n'a aucune valeur de référence. Mais il est facile de se comprendre. Écrivez une fonction C en détail et compilez-la dans l'assemblage, puis vous le comprendrez en l'écrivant dans GCC. Ces connaissances sont nécessaires dans de nombreux endroits pendant le processus de développement.
Le mode long peut être compris comme 64 bits fonctionnalité Mode protégé, le processeur doit passer du mode réel au mode protégé, puis en mode long.
Le moyen le plus pratique d'obtenir des informations est bien sûr un moteur de recherche, mais les moteurs de recherche ne peuvent souvent pas trouver le contenu qu'ils souhaitent, et les informations vraiment faisant autorité sont toujours des documents AMD ou Intel.
Ce système abandonne complètement la méthode d'interruption de l'implémentation des appels système et utilise l'instruction SYSCall Sysret Fast System Call pour l'implémenter. Pour plus de détails, veuillez consulter les documents AMD ou Intel, et le contenu n'est pas compliqué.
Le système de fichiers de l'auteur ne semble pas très bien écrit. D'une part, le système de fichiers est déjà assez compliqué, mais l'auteur utilise souvent près de centaines de lignes de fonctions, et un certain code peut être réutilisé, mais il doit être mis en œuvre à plusieurs reprises, ce qui est très déroutant dans l'ensemble. Ce système de fichiers système équivaut à un changement majeur de l'auteur, mais il ne devrait pas être difficile à comprendre en fonction du livre et du code de l'auteur. Le système de fichiers de ce système n'implémente pas les fonctions au niveau du répertoire, mais n'affecte pas la mise en œuvre d'autres fonctions du système, il est donc omis.
Le shell de l'auteur est mis en œuvre dans le noyau. Ce système utilise le shell comme une application et le processus init utilise l'appel système EXECV pour charger le shell du répertoire racine. De nombreuses commandes intégrées du système des auteurs sont également directement implémentées comme applications dans ce système. Mais le niveau de code est similaire. Il existe également des mini-jeux spéciaux qui peuvent appeler l'interface du système d'exploitation pour implémenter les applications indépendamment, et ce système est essentiellement terminé.