Segundo intento de hacer un sistema operativo
Asegúrese de tener los siguientes programas instalados:
Nota: Es posible que necesite más paquetes para construir el sysroot, como flex bison automake autoconf autopoint gperf help2man texinfo libgmp-dev libmpc-dev libmpfr-dev , etc.
En Sistemas con sede en Debian, recomiendo instalar LLVM, Clang y Lld desde aquí: https://apt.llvm.org
Si está en un sistema basado en Debian actualizado (Ubuntu, Linux Mint, Pop_os!, Etc), puede instalar la mayoría de ellos con este comando:
sudo apt install clang lld llvm xorriso tar qemu-system-x86 qemu-system-arm
Para Meson, Ninja y XBStrap, primero asegúrese de tener instalados Python y Python-Pip y luego ejecutar:
python -m pip install meson ninja xbstrap
Siga estos pasos para construir y ejecutar el sistema operativo:
Clon este repositorio con:
git clone --depth=1 https://github.com/ilobilo/ilobilix
Actualmente debes construir manualmente el sistema de sistema:
boostrap.ymlmkdir build-sysrootpushd build-sysrootxbstrap init ..xbstrap install basesysroot no existe en la fuente de Ilobilix que vincula a build-sysroot/system-root , luego cree con:ln -s $BUILD_SYSROOT_DIR$/system-root $KERNEL_DIR$/sysrootln -s build-sysroot/system-root ../sysrootpopd Configurar el sistema de compilación:
meson setup builddir --cross-file cross-files/meson-kernel-clang-(x86_64/aarch64)(-ccache).cross-file -Doptions=values
Construir y ejecutar el núcleo:
ninja -C builddir <see Ninja Targets>
| Nombre objetivo | Descripción |
|---|---|
| run_bios | Ejecute con Legacy BIOS (solo en x86_64) |
| run_bios_debug | Lo mismo pero con la depuración habilitada |
| run_uefi | Correr con UEFI |
| run_uefi_debug | Lo mismo pero con la depuración habilitada |
| norón | No ejecute el sistema operativo |
Notas:
-d int y -monitor telnet:127.0.0.1:12345 . Si la opción gdb está habilitada, agrega -s -Srun_bios , de lo contrario run_uefi .| Opciones de proyecto | Valor predeterminado | Descripción |
|---|---|---|
| kernel_cflags | Argumentos de compilador C adicionales para el núcleo | |
| kernel_cxxflags | Argumentos de compilador de CPP adicionales para el núcleo | |
| módulos_cflags | Argumentos de compilador C adicionales para módulos | |
| módulos_cxxflags | Argumentos de compilador CPP adicionales para módulos | |
| kernel_ubsan | FALSO | Habilitar Ubsanitizer en el núcleo |
| módulos_ubsan | FALSO | Habilitar UBSanitizer en módulos |
| 5lvl_paging | FALSO | Habilitar la paginación de 5 niveles en el núcleo |
| syscall_debug | FALSO | Imprima el registro de syscall en la consola serie |
| gdb | FALSO | Agregar -s -S a Qemu al depurar |
| noccel | FALSO | Desactivar los aceleradores QEMU |
| VNC | FALSO | Iniciar el servidor QEMU VNC en 127.0.0.1:5901 |
https://discord.gg/fm5gk3rps7