中文说明
AVERTISSEMENT: Le projet est encore à tout début et les programmes d'utilisateurs ne sont pas disponibles dans le système d'exploitation. Tout risque potentiel d'exécuter le logiciel dans des machines virtuels ou des métaux nus doit être pris en compte par l'utilisateur.
Actuellement, le projet ne prend en charge que l'architecture x86_64, et il prendra probablement en charge Aarch64 à l'avenir.
io-uring de Linux.debug - contient les fichiers d'assemblage décompilés, les symboles de débogage, les informations de fichiers d'objet. et les fichiers journaux série des machines virtuelles.h2o - contient le code source du noyau.scripts - Contient les scripts requis pour construire le projet.src - contient le code source des bibliothèques et des exécutables pour l'ensemble du projet.target - contient les binaires et les fichiers de disque virtuel.xtask - contient le constructeur du projet.Téléchargez Rust et d'autres dépendances (Ubuntu par exemple):
# Select the nightly channel for rust
curl --proto ' =https ' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt install build-essential qemu-system-x86 llvm-14 nasm
export LLVM_PATH= " /usr/lib/llvm-14 "Ajouter la cible suivante:
rustup target add nightly-x86_64-unknown-linux-gnuPassez au répertoire racine du projet et exécutez la commande suivante:
cargo xtask dist imgPour exécuter le système d'exploitation avec Qemu, exécutez la commande suivante:
sh scripts/run.sh qemu N # N for the number of CPUs Et vérifiez le fichier debug/qemu.log , vous devriez voir la sortie du système d'exploitation.
Pour déboguer avec Qemu, exécutez la commande suivante:
sh scripts/run.sh qdbg N # Same as aboveet ouvrez un nouveau terminal:
# cd to the working directory
gdb debug/FOO.sym
# FOO for the binary you want to debug;
# you may check it in the directory first.
# In the gdb:
target remote :1234Ensuite, vous pouvez définir des points d'arrêt (Kernel.Sym par exemple):
b kmain
cSi vous souhaitez exécuter le système d'exploitation avec d'autres logiciels de machine virtuelle, vérifiez d'abord le run.sh et créez manuellement des fichiers de configuration de machine virtuelle comme vous le souhaitez. N'oubliez pas d'ajouter le disque virtuel et le journal série ou aucune sortie ne sera présente!
Si vous souhaitez apporter des contributions, assurez-vous de me contacter en premier.