Deuxième tentative de faire un système d'exploitation
Assurez-vous que les programmes suivants sont installés:
Remarque: vous pouvez avoir besoin de plus de packages pour construire le sysroot, tels que flex bison automake autoconf autopoint gperf help2man texinfo libgmp-dev libmpc-dev libmpfr-dev , etc.
Sur les systèmes basés à Debian, je recommande d'installer LLVM, Clang et LLD d'ici: https://apt.llvm.org
Si vous êtes sur un système basé à Debian à jour (Ubuntu, Linux Mint, POP_OS!, Etc.), vous pouvez en installer la plupart avec cette commande:
sudo apt install clang lld llvm xorriso tar qemu-system-x86 qemu-system-arm
Pour Meson, Ninja et Xbstrap, assurez-vous d'abord que Python et Python-Pip sont installés, puis exécutez:
python -m pip install meson ninja xbstrap
Suivez ces étapes pour construire et exécuter le système d'exploitation:
Clone ce repo avec:
git clone --depth=1 https://github.com/ilobilo/ilobilix
Actuellement, vous devez construire manuellement le Sysroot:
boostrap.ymlmkdir build-sysrootpushd build-sysrootxbstrap init ..xbstrap install basesysroot n'existe pas dans la source ilobilix qui se lie à build-sysroot/system-root , alors créez-le avec:ln -s $BUILD_SYSROOT_DIR$/system-root $KERNEL_DIR$/sysrootln -s build-sysroot/system-root ../sysrootpopd Configurer le système de construction:
meson setup builddir --cross-file cross-files/meson-kernel-clang-(x86_64/aarch64)(-ccache).cross-file -Doptions=values
Construisez et exécutez le noyau:
ninja -C builddir <see Ninja Targets>
| Nom cible | Description |
|---|---|
| run_bios | Exécutez avec le BIOS hérité (uniquement sur x86_64) |
| run_bios_debug | Idem mais avec débogage activé |
| run_uefi | Courez avec UEFI |
| run_uefi_debug | Idem mais avec débogage activé |
| Norun | Ne pas exécuter le système d'exploitation |
Notes:
-d int et -monitor telnet:127.0.0.1:12345 . Si l'option gdb est activée, ajoute -s -Srun_bios sera utilisé, sinon run_uefi .| Options de projet | Valeur par défaut | Description |
|---|---|---|
| kernel_cflags | Arguments supplémentaires du compilateur C pour le noyau | |
| kernel_cxxflags | Arguments de compilateur CPP supplémentaires pour le noyau | |
| modules_cflags | Arguments supplémentaires du compilateur C pour les modules | |
| modules_cxxflags | Arguments de compilateur CPP supplémentaires pour les modules | |
| kernel_ubsan | FAUX | Activer Ubsanitizer dans le noyau |
| modules_ubsan | FAUX | Activer Ubsanitizer dans les modules |
| 5lvl_paging | FAUX | Activer la pagination à 5 niveaux dans le noyau |
| syscall_debug | FAUX | Imprimez le système de connexion dans la console série |
| gdb | FAUX | Ajouter -s -S à Qemu lors du débogage |
| noaccel | FAUX | Désactiver les accélérateurs Qemu |
| VNC | FAUX | Démarrez Qemu VNC Server sur 127.0.0.1:5901 |
https://discord.gg/fm5gk3rps7