Es un proyecto de sistema operativo de código abierto escrito en el lenguaje de programación ZIG.
Bamos no introduce nuevos estándares, pero se esfuerza por la mejor implementación posible de los existentes.
La característica principal y el objetivo de este proyecto es desarrollar un sistema operativo ligero y extremadamente rápido con una base de código bien documentada , concisa y simple , tanto como sea posible.
Su objetivo es incluir el soporte nativo para múltiples abis del sistema entre el núcleo y el espacio de usuario (GNU/Linux, Windows NT, etc.) simultáneamente. Esto debería mejorar significativamente la experiencia del usuario y simplificar el trabajo para los desarrolladores de software.

A pesar de los idiomas familiares y establecidos como C/C ++ o el óxido posiblemente más seguro, nuestra elección es el zig.
Zig es lo suficientemente simple como para ser más mantenible que el óxido, al tiempo que ofrece una alternativa más segura y funcional a C/C ++. ZIG permite generar un código de máquina de alta velocidad y optimizado, y una de sus principales ventajas es el sistema de compilación, que hace que el proceso de compilación sea perfecto e increíblemente simple.
Para crear un ejecutable de núcleo, todo lo que necesita es el código fuente, el compilador ZIG y el comando zig build kernel .
La documentación general del sistema operativo está disponible en esta página.
La documentación del código está disponible en esta página. Si desea generar la documentación localmente, ejecute el siguiente comando:
zig build docs Se colocará un sitio estático en el directorio docs , que luego se puede lanzar usando:
cd docs
python -m http.serverLa descripción y la documentación del idioma zig para su biblioteca estándar se pueden encontrar en el sitio web oficial.
Bamos sigue siendo un proyecto pequeño pero creciente .
Agradecemos cualquier contribución y lo invitamos a participar en el desarrollo y la evolución del proyecto.
Ver información sobre contribución.
El proceso de construcción es bastante sencillo:
git clone https://github.com/bagggage/bamos.git
cd bamos
zig build kernel --release=[small | safe | fast] Por defecto, el resultado de compilación se ubicará en el directorio .zig-out . Para especificar una ruta diferente, use la opción --prefix=[path] durante la compilación.
Actualmente, el sistema operativo se basa en el cargador de arranque de bootboot de terceros, y la utilidad bootboot/mkbootimg se usa para crear la imagen. En el futuro, esta etapa está planeada para simplificar y hacer más multiplataforma. Sin embargo, por ahora, para crear una imagen, necesita:
mkbootimg para su sistema operativo host.bootboot-bin configurando la variable BOOTBOOT en env.shiso.sh Por defecto, la imagen se colocará en el directorio dist .
Para pruebas y lanzamiento rápidas del sistema operativo, se recomienda usar el emulador QEMU.
En Windows , también debe agregar el directorio qemu en la variable de entorno PATH de antemano.
En el directorio raíz del proyecto, están los scripts qemu.sh y debug.sh :
qemu.sh ejecuta una imagen del sistema preconstruida (por defecto dist/bamos.iso ) en el emulador.debug.sh compila, crea la imagen y ejecuta el sistema en el emulador. Bamos se encuentra en una etapa temprana de desarrollo, y muchas cosas aún no se implementan. Además, escribir la implementación y el desarrollo de la arquitectura del sistema operativo requiere un enfoque iterativo para encontrar las mejores soluciones, por lo que algunos detalles pueden cambiar, pero todo esto es para mejor.
Para rastrear lo que ya se ha implementado en el proyecto y en qué etapa se encuentra actualmente, consulte esta página .