Segunda tentativa de fazer um sistema operacional
Verifique se você tem seguintes programas instalados:
Nota: Você pode precisar de mais pacotes para construir a sysroot, como flex bison automake autoconf autopoint gperf help2man texinfo libgmp-dev libmpc-dev libmpfr-dev etc etc
Nos sistemas baseados em Debian, recomendo instalar LLVM, CLANG e LLD daqui: https://apt.llvm.org
Se você estiver em um sistema baseado em Debian (Ubuntu, Linux Mint, pop_os! Etc), pode instalar a maioria deles com este comando:
sudo apt install clang lld llvm xorriso tar qemu-system-x86 qemu-system-arm
Para Meson, Ninja e XBStrap, primeiro verifique se você tem Python e Python-Pip instalados e depois execute:
python -m pip install meson ninja xbstrap
Siga estas etapas para construir e executar o sistema operacional:
Clone este repositório com:
git clone --depth=1 https://github.com/ilobilo/ilobilix
Atualmente, você precisa construir manualmente a sysroot:
boostrap.ymlmkdir build-sysrootpushd build-sysrootxbstrap init ..xbstrap install basesysroot não existir na fonte Ilobilix que se vincular à build-sysroot/system-root , crie-a com:ln -s $BUILD_SYSROOT_DIR$/system-root $KERNEL_DIR$/sysrootln -s build-sysroot/system-root ../sysrootpopd Configure o sistema de construção:
meson setup builddir --cross-file cross-files/meson-kernel-clang-(x86_64/aarch64)(-ccache).cross-file -Doptions=values
Construa e execute o kernel:
ninja -C builddir <see Ninja Targets>
| Nome do alvo | Descrição |
|---|---|
| run_bios | Corra com o Legacy BIOS (apenas em x86_64) |
| run_bios_debug | Mesmo, mas com a depuração habilitada |
| run_uefi | Corra com a UEFI |
| run_uefi_debug | O mesmo, mas com a depuração habilitada |
| Norun | Não execute o sistema operacional |
Notas:
-d int e -monitor telnet:127.0.0.1:12345 . Se a opção gdb estiver ativada, adicionar -s -Srun_bios será usado, caso contrário, run_uefi .| Opções do projeto | Valor padrão | Descrição |
|---|---|---|
| kernel_cflags | Argumentos extras do compilador C para kernel | |
| kernel_cxxflags | Argumentos extras do compilador CPP para kernel | |
| Modules_cflags | Argumentos extras do compilador C para módulos | |
| Modules_cxxflags | Argumentos extras do compilador CPP para módulos | |
| kernel_ubsan | falso | Ativar ubsanitizer no kernel |
| Modules_ubsan | falso | Ativar Ubsanitizer em módulos |
| 5LVL_PAGING | falso | Habilite a paginação de 5 níveis no kernel |
| syscall_debug | falso | Imprima Syscall Log in Serial Console |
| GDB | falso | Adicionar -s -S ao qemu ao depurar |
| Noaccel | falso | Desative os aceleradores qemu |
| vnc | falso | Inicie o QEMU VNC Server em 127.0.0.1:5901 |
https://discord.gg/fm5gk3rps7