Il s'agit d'un projet de système d'exploitation open source écrit dans le langage de programmation en zig.
Bamos n'introdonne pas de nouvelles normes mais s'efforce de la meilleure mise en œuvre possible de celles existantes.
La principale caractéristique et l'objectif de ce projet est de développer un système d'exploitation léger et extrêmement rapide avec une base de code bien documentée , concise et simple , autant que possible.
Il vise à inclure la prise en charge native de plusieurs ABI système entre le noyau et l'espace utilisateur (GNU / Linux, Windows NT, etc.) simultanément. Cela devrait considérablement améliorer l'expérience utilisateur et simplifier le travail pour les développeurs de logiciels.

Malgré les langues familières et établies comme C / C ++ ou la rouille peut-être plus sûre, notre choix est le zig.
Le zig est assez simple pour être plus maintenable que la rouille tout en offrant une alternative plus sûre et plus fonctionnelle à C / C ++. Zig permet de générer du code machine à grande vitesse et optimisé, et l'un de ses principaux avantages est le système de construction, ce qui rend le processus de compilation transparent et incroyablement simple.
Pour créer un noyau exécutable, tout ce dont vous avez besoin est le code source, le compilateur zig et le zig build kernel .
La documentation générale du système d'exploitation est disponible sur cette page.
La documentation du code est disponible sur cette page. Si vous souhaitez générer la documentation localement, exécutez la commande suivante:
zig build docs Un site statique sera placé dans le répertoire docs , qui peut ensuite être lancé en utilisant:
cd docs
python -m http.serverLa description et la documentation de la langue en zig pour sa bibliothèque standard se trouvent sur le site officiel.
Bamos est toujours un projet petit mais croissant .
Nous accueillons toutes les contributions et vous invitons à participer au développement et à l'évolution du projet.
Voir les informations sur la contribution.
Le processus de construction est assez simple:
git clone https://github.com/bagggage/bamos.git
cd bamos
zig build kernel --release=[small | safe | fast] Par défaut, le résultat de la construction sera situé dans le répertoire .zig-out . Pour spécifier un chemin différent, utilisez l'option --prefix=[path] pendant la construction.
Actuellement, le système d'exploitation s'appuie sur le chargeur de démarrage de bootboot tiers, et l'utilitaire bootboot/mkbootimg est utilisé pour créer l'image. À l'avenir, cette étape est prévue pour être simplifiée et rendue plus multiplateforme. Cependant, pour l'instant, pour créer une image, vous devez:
mkbootimg pour votre système d'exploitation hôte.bootboot-bin en définissant la variable BOOTBOOT dans env.shiso.sh Par défaut, l'image sera placée dans le répertoire dist .
Pour les tests et le lancement rapides du système d'exploitation, il est recommandé d'utiliser l'émulateur Qemu.
Sur Windows , vous devez également ajouter au préalable le répertoire qemu dans la variable d'environnement PATH .
Dans le répertoire racine du projet, il y a les scripts qemu.sh et debug.sh :
qemu.sh exécute une image système prédéfinie (par défaut dist/bamos.iso ) dans l'émulateur.debug.sh compile, crée l'image et exécute le système dans l'émulateur. Bamos est à un stade de développement et beaucoup de choses ne sont pas encore mises en œuvre. De plus, la rédaction de la mise en œuvre et le développement de l'architecture du système d'exploitation nécessite une approche itérative pour trouver les meilleures solutions, donc certains détails peuvent changer, mais c'est tout pour le mieux.
Pour suivre ce qui a déjà été mis en œuvre dans le projet et à quelle étape il se trouve actuellement, consultez cette page .