É um projeto de sistema operacional de código aberto escrito na linguagem de programação em zig.
O BAMOS não introduz novos padrões, mas busca a melhor implementação possível dos existentes.
O principal recurso e o objetivo deste projeto é desenvolver um sistema operacional leve e extremamente rápido, com uma base de código bem documentada , concisa e simples , tanto quanto possível.
Ele visa incluir suporte nativo para vários sistemas ABIS entre o kernel e o espaço do usuário (GNU/Linux, Windows NT, etc.) simultaneamente. Isso deve melhorar significativamente a experiência do usuário e simplificar o trabalho para desenvolvedores de software.

Apesar dos idiomas familiares e estabelecidos como C/C ++ ou a ferrugem possivelmente mais segura, nossa escolha é ZIG.
O ZIG é simples o suficiente para ser mais sustentável que a ferrugem, oferecendo uma alternativa mais segura e funcional a C/C ++. O ZIG permite gerar código de máquina de alta velocidade e otimizado, e uma de suas principais vantagens é o sistema de construção, que torna o processo de compilação sem costura e incrivelmente simples.
Para criar um executável do kernel, tudo o que você precisa é o código -fonte, o compilador ZIG e o zig build kernel Command.
A documentação geral do sistema operacional está disponível nesta página.
A documentação do código está disponível nesta página. Se você deseja gerar a documentação localmente, execute o seguinte comando:
zig build docs Um local estático será colocado no diretório docs , que pode ser lançado usando:
cd docs
python -m http.serverA descrição e a documentação do idioma ZIG para sua biblioteca padrão podem ser encontradas no site oficial.
Bamos ainda é um projeto pequeno, mas crescente .
Congratulamo -nos com quaisquer contribuições e convidamos você a participar do desenvolvimento e evolução do projeto.
Veja informações sobre como contribuir.
O processo de construção é bastante direto:
git clone https://github.com/bagggage/bamos.git
cd bamos
zig build kernel --release=[small | safe | fast] Por padrão, o resultado da compilação estará localizado no diretório .zig-out . Para especificar um caminho diferente, use a opção --prefix=[path] durante a compilação.
Atualmente, o sistema operacional se baseia no bootloader de terceiros e o utilitário bootboot/mkbootimg é usado para criar a imagem. No futuro, esse estágio está planejado para ser simplificado e tornado mais plataforma cruzada. No entanto, por enquanto, para criar uma imagem, você precisa:
mkbootimg para o seu sistema operacional host.bootboot-bin , configurando a variável BOOTBOOT em env.shiso.sh Por padrão, a imagem será colocada no diretório dist .
Para teste e lançamento rápido do sistema operacional, é recomendável usar o emulador Qemu.
No Windows , você também deve adicionar o diretório qemu na variável do ambiente PATH com antecedência.
No diretório raiz do projeto, existem os scripts qemu.sh e debug.sh :
qemu.sh executa uma imagem do sistema pré-criada (por padrão dist/bamos.iso ) no emulador.debug.sh compila, cria a imagem e executa o sistema no emulador. Bamos está em um estágio inicial de desenvolvimento e muitas coisas ainda não foram implementadas. Além disso, escrever a implementação e o desenvolvimento da arquitetura do sistema operacional requer uma abordagem iterativa para encontrar as melhores soluções, para que alguns detalhes possam mudar, mas isso é tudo para melhor.
Para rastrear o que já foi implementado no projeto e em que estágio está atualmente, confira esta página .