Tiny OS é um sistema operacional em execução na arquitetura x86_64 .
Este projeto é desenvolvido no sistema linux . Nos sistemas windows , você pode executar linux instalando WSL .
Se você estiver usando WSL :
windows ; Recomenda -se instalar xming ou vcxsvr.-ac ou verificar disable access control através da GUI.WSL :WSL (versão 1): export DISPLAY=:0WSL2 (versão 2): export DISPLAY= $( cat /etc/resolv.conf | grep nameserver | awk ' {print $2} ' ) :0~/.bashrc ou ~/.profile .Could not initialize SDL (No available video device) ... ou quaisquer erros sobre o GTK, verifique se o servidor X será iniciado e se a DISPLAY da variável de ambiente estiver definida corretamente. Rust é uma linguagem de programação moderna no nível do sistema, e este projeto é desenvolvido principalmente usando Rust . Faça o download e instale -o no site oficial da Rust. NOTA: Este projeto requer a instalação da versão nightly da cadeia de ferramentas.
Após a conclusão da instalação, instale llvm-tools via rustup :
rustup component add llvm-tools-preview Instale algumas ferramentas úteis através cargo para desenvolvimento:
cargo install cargo-binutilsbochs Simulação via simulador bochs . Link para download do código -fonte: fonte forge - emulador de pc bochs x86. Depois de baixar, compilar e instalar.
O comando é o seguinte:
cargo run --release O caminho da imagem do kernel compilado é target/os.img .
Crie um arquivo os.img no diretório ./bochs através bximage :
bximage -func=create -hd=10M -imgmode=flat ./bochs/os.img -q Grave ./target/os.img em ./bochs/os.img através da ferramenta dd :
# 注意下面的参数 count 要根据生成的 target/os.img 文件的大小进行调整
dd if=target/os.img of=bochs/os.img bs=512 count=250 conv=notruncbochs bochs/conf possui os seguintes arquivos de configuração no diretório:
bochsdbg-gdb.bxrc : você pode depurar remotamente gdb e amarrar localhost:1234 (você precisa habilitar --enable-gdb-stub ao compilar bochs )bochsdbg-win : Abra bochs debugger com interface gráfica na plataforma windowbochsrc.bxrc : o arquivo de configuração mais básico bochs , sem função debug Execute bochs para ativar a simulação:
bochs -q -f bochs/conf/bochsrc.bxrcqemu Ao contrário bochs , qemu pode carregar diretamente o target/os.img :
qemu-system-x86_64 -drive format=raw,file=bochs/os.img -boot c
Existe um arquivo Makefile no diretório raiz do projeto, que define alguns comandos em execução e depuração:
clean : usado para limpar os arquivos geradosbuild-release : Usado para compilar a versão release imagens do kernelbuild-debug : Usado para compilar imagens de kernel de versão debug (não concluídas)run-bochs : Usado para compilar imagens do kernel e iniciar a simulação bochsrun-qemu : usado para compilar imagens do kernel e iniciar a simulação qemudebug-bochs : Usado para compilar imagens do kernel, iniciar bochs e debug remota via rust-gdbdebug-qemu : Usado para compilar imagens do kernel, iniciar qemu e debug remota via rust-gdb Este projeto é dividido principalmente em 4 partes:
builder : Localizado no diretório src , ele é usado principalmente para compilar e construir imagens do kernelboot : Localizado no diretório boot , é bootloader para tiny OSboot_info : localizado no diretório boot_info , ele fornece BootInfokernel : Localizado no diretório kernel , é o código do kernel de tiny OS long mode BootInfo para passar informações do estágio bootloader para kernel elf do kernel logger (usado para implementar funções de impressão tiny os e depuração durante o desenvolvimento do kernel) Page Fault de processamento preliminar GP Fault Double Fault linked_list_allocator buddy system spawn disponível globalmente FAT32 shellBuilder mais flexível (você pode optar por compilar debug e release imagens) bochs podem ser carregados diretamente, em vez de gravá -la em bochs/os.img através da ferramenta dd