Sur la base树莓派3 et ARMv8-AArch64 , un noyau de système de fonctionnement micro est mis en œuvre.
Le projet est organisé sous forme de overview + subprojects . overview stocke tout le code. Chaque subproject utilise ces codes en fonction de ses propres besoins, y compris le filtrage des fichiers inutiles (à l'exclusion de la compilation).
Le projet est développé à l'aide de la langue C++ moderne, et la principale architecture cible est ARMv8 . Le compilateur utilisé par le projet est g++ , donc le code contiendra des extensions de syntaxe de g++ , telles que __attribute__ , __asm__ .
De plus, compiler
Ce projet est basé sur eclipse ( version > = 4.6.3 ). Lors de la compilation, vous devez utiliser la version eclipse appropriée. Sur Windows , Linux ou MacOS , sélectionnez File -> Open Projects from File System -> Cliquez sur Directory , sélectionnez le répertoire où se trouve le projet et ouvrez -> Finish
Le projet a plusieurs sous-projets, principalement: host , qemu_virt , raspi3 et user_space .
Les objectifs (architecture) correspondants de ces configurations sont: le développement basé sur le système d'exploitation hôte hôte (principalement utilisé pour tester la gestion de la mémoire et d'autres fonctions indépendantes de l'architecture), le développement basé sur la simulation QEMU (utilisé pour tester la mémoire virtuelle, les interruptions, etc.), le développement basé sur Raspberry PI 3 (utilisé pour complexe la vérification) et le programme dans l'espace utilisateur.
Tous les sous-projets sont situés dans des sous-projets.
Le projet a configuré certains objectifs de construction spéciaux. Voir Build Targets pour le projet.
Dans le noyau, éviter l'utilisation de variables globales peut en fait être utilisé spécifiquement pour initialiser toutes les variables globales qui doivent être définies. Ces variables sont pratiques à utiliser uniquement car elles ont déjà alloué l'espace pendant la période de compilation. Si vous devez l'utiliser, définissez-le une fois à la définition et redéfinissez-le une fois dans la fonction d'initialisation.
Si la configuration du projet est modifiée, une nouvelle ligne de commande doit être redémarrée car tous les environnements Eclipse seront exportés.
Présentation du projet Présentation référence Progress_current.md
Enregistrement d'enregistrement de projet enregistrement_note.md
La structure et la configuration des sous-projets, reportez-vous aux sous-projets / Readme.md
En cours (peut-être la licence MIT, mais peut être fermé à nouveau, il est maintenant à moitié ouvert et à moitié fermé).
Non, faites-le à la place.
Suivez certaines règles de codage qui peuvent être référencées plus tard ici
Lisez le document qui pourrait être publié plus tard
Utilisation de Qemu pour déboguer un programme de démostration
Essayez de modifier le code de Kernel, rediffusion.
Ensuite, git add -a && git commit && git push!
Voir ici, voir également un document externe.
RSP3-Armv8-Baremital, le projet original.
Linux, Linux, officiellement.
Qemu, un émulateur qui aide beaucoup.
Gvisor, un noyau d'espace utilisateur, par Google, dans Go.
Mode utilisateur Linux (UML), comme son nom indique.
x2, un ancien noyau sur les bochs.
Tutoriel RasPI3, par BZT, très utile pour les débutants.
Armv8 Hello World, Hello World Exemple pour ARMV8, basé sur Qemu, utile pour les débutants.