Présentation
Sylphide OS est présenté comme un système d’exploitation à usage général destiné aux ordinateurs construits à partir de microcontrôleurs (MCU). L’absence de MMU sur ces cartes empêche l’exécution d’un Linux complet, mais les MCU modernes offrent suffisamment de ressources pour reproduire un environnement similaire à celui des ordinateurs domestiques des années 80. Le projet, initié par Thomas Capricelli, est publié sous licence open‑hardware ; les schémas PCB sont réalisés avec KiCad et le code source est hébergé dans un dépôt Mercurial.
Architecture logicielle
Le noyau de Sylphide OS repose sur FreeRTOS, un micro‑kernel largement employé sur les plateformes embarquées. Au‑dessus de ce noyau, le projet ajoute des pilotes pour clavier, souris, affichage et stockage, ainsi qu’une interface graphique. Le code est majoritairement écrit en C, avec des modules C++ limités à l’interface graphique et, dans certains cas, de l’assembleur pour les pilotes bas‑niveau. La configuration du système utilise le système kconfig, permettant de sélectionner les SDK et les options matérielles lors de la compilation.
Cibles matérielles et contraintes
Trois plateformes sont officiellement supportées : l’Olimex esp32‑p4‑pc (cible phare), le Raspberry Pi Pico 2 avec une implémentation minimale VGA + USB, et le FabGL, un système plus ancien disposant d’entrées PS/2 et d’une sortie VGA. Toutes les cibles offrent un framebuffer réel, évitant la génération vidéo « on‑the‑fly ». Les exigences d’entrée comprennent un clavier et une souris, connectés via PS/2 ou USB, ainsi qu’un affichage VGA ou HDMI. Le stockage repose sur une carte micro‑SD, avec la prise en charge future d’appareils USB. Le réseau (Ethernet ou Wi‑Fi) n’est pas encore implémenté mais figure parmi les objectifs à venir.
État actuel et perspectives
La version disponible est la 0.1, axée sur la stabilité du cadre et la disponibilité de pilotes fonctionnels pour les trois cibles. Le système propose un gestionnaire de fenêtres, un menu, des icônes de bureau et un panneau d’information affichant les caractéristiques matérielles et les capacités de couleur. Les fonctionnalités manquantes comprennent la prise en charge du stockage complet (micro‑SD, USB), la connectivité réseau, des widgets d’interface (boutons, cases à cocher, dialogues) et l’exécution d’applications externes depuis la carte. Le projet invite les contributeurs à rejoindre le dépôt GitLab, à proposer des ports sur d’autres MCU ou à enrichir les pilotes existants.