Bem -vindo ao ... Uh ... BrightSystem?
É um sistema operacional x86_64 escrito inteiramente do zero (sem dependências), feito pelo seu verdadeiramente.
Este projeto foi escrito sem a assistência do Github CodeStealer, do OpenAI da ChatgpThief ou de outros algoritmos preditivos semelhantes para roubar conteúdo.
TLDR: Desastre parcial e meio-rei e parcial! Diversão!
_old possui um kernel funcional que usa as grandes bibliotecas da Phil-Opp e algumas outras. O código não está super bem documentado, mas não é muito complicado, por isso deve ser bastante legível. Foi feito para um incrível fórum de desenvolvimento do sistema operacional no meu ensino médio.
Todo o resto é a minha reescrita sem dependência do WIP. No momento, ele possui apenas um carregador de inicialização do BIOS que pode inserir o modo de 64 bits. A próxima etapa é implementar um analisador ELF, depois um carregador de elfo e, em seguida, carregar o kernel (que simplesmente será um arquivo ELF).
A nova versão do BS é extremamente bem documentada, incluindo recursos para mais pesquisas. Parte do meu objetivo é fazer com que este excelente código de demonstração para futuros programadores faça referência e aprendam.
Toda pasta tem um ReadMe e, esperançosamente, é auto-explicativo, mas aqui está um índice difícil para este repositório:
boot : Todas as caixas no BS 'Bootloader.kernel : kernel da BS (atualmente vazio até que o carregador elfo esteja escrito).lib : Bibliotecas auxiliares usadas por BS. Isso possui ferramentas de construção, Frieren (o carregador de elfo WIP) e uma biblioteca comum (que em breve será dividida em várias caixas). Essas caixas têm suas próprias bibliotecas porque são usadas por várias caixas no BS (por exemplo, o carregador de inicialização carrega um ELF, mas o sistema operacional final também poderá).qemu : Uma caixa que transforma BS em um disco final e o inicia no Qemu. Para a versão antiga e mais funcional do BS com dependências, execute cargo r na pasta _old .
A nova versão usa meu sistema de construção personalizado, o Bargo, então você precisará instalar esse primeiro (não tem medo - o Bargo tem apenas 1 dependência, um analisador Toml sem dependência e deve compilar em segundos). Bargo é uma espécie de embalagem em torno da carga, para que você possa usá -lo quase exatamente da mesma maneira - bargo b para construir, bargo r para executar, -r para modo de liberação, etc.
Se você está se perguntando por que o BS usa Bargo em vez de carga, é porque a carga não tem todos os recursos que eu preciso. Preciso de scripts pós-construção e a capacidade de usar build-std para vários alvos, pois o carregador de inicialização possui um alvo diferente do kernel e OS. Eu tentei por horas, mas não consegui criar uma maneira sã de implementar isso na carga de baunilha.
Ambas as versões são executadas no Qemu, portanto, verifique se está instalado primeiro. Se você deseja construir e executá-lo manualmente, o comando que está sendo usado embaixo da calma se resume a isso: cargo b; qemu-system-x86_64 -drive format=raw,file=target/bs.bin,index=0 . Para a versão antiga, você deseja carregar o arquivo _old/disk.bin em vez de target/bs.bin .