Présentation
UnoDOS est un système d’exploitation open source hébergé sur GitHub sous le compte hmofet. Le dépôt indique une développement actif avec la mention « the forward, contract‑driven line », tandis que la branche master cible spécifiquement le pc64 x86‑64 avec support UEFI. Une version antérieure, unodos-3-legacy, est archivée, ce qui montre une évolution continue du projet.
Architecture et portabilité
Le répertoire racine comporte plus d’une trentaine de dossiers nommés d’après des plateformes historiques : amiga, apple2, c64, dreamcast, gb, gba, genesis, nes, pc64, ppcmac, ps2, rpi, sms, snes, vic20, ws, etc. Cette structuration indique une architecture modulaire où chaque sous‑dossier regroupe le code source, les scripts de build et les spécifications propres à la cible. Le terme « contract‑driven » suggère l’utilisation d’interfaces clairement définies entre le noyau générique et les modules matériels, facilitant le portage sur des architectures très différentes, des consoles 8‑bits aux machines modernes.
État du développement et gestion du code
Le dépôt recense 2 556 commits depuis sa création, témoignant d’une activité soutenue. Des fichiers de métadonnées tels que BUILD_NUMBER, VERSION, CHANGELOG.md et TODO.md permettent de suivre l’évolution du projet et d’organiser les jalons de versionnage. La présence d’un Makefile indique un processus de compilation automatisé, compatible avec les environnements de build classiques. Le projet est publié sous licence MPL‑2.0, garantissant la liberté de modification tout en imposant la diffusion du code source modifié.
Limites et perspectives
Bien que la structure du dépôt montre une ambition de prise en charge large, la documentation disponible dans le README.md reste succincte, limitant la visibilité sur les performances réelles ou les exigences matérielles précises. L’absence de références à des benchmarks ou à des tests automatisés rend difficile l’évaluation de la stabilité du noyau sur chaque plateforme. De plus, le focus actuel sur la branche master (pc64 x86‑64/UEFI) implique que les cibles rétro reçoivent potentiellement moins d’attention, ce qui pourrait ralentir les mises à jour pour ces architectures. Enfin, l’archivage du code legacy indique une rupture de compatibilité possible entre les versions antérieures et la ligne de développement actuelle.