Écrivez un OS en C# moderne.
Compilé à l’avance.
Tourne sur tout matériel.
Cosmos est un framework open source pour écrire un système d’exploitation en C#. Écrivez votre noyau en C# 14, compilez-le avec NativeAOT et démarrez-le sur x64 ou ARM64 : pas de JIT, pas de runtime managé.
Tout ce qu’il faut pour démarrer du C# sur du matériel nu.
Gen3 remplace IL2CPU par la chaîne d’outils .NET officielle. Tout ce qui est au-dessus (GC, ordonnanceur, pilotes, réseau, système de fichiers) est du C# que vous pouvez lire, plugger ou remplacer.
Le pipeline de build Cosmos enchaîne la génération de code NativeAOT, l’assemblage et l’édition de liens, puis produit une ISO amorçable pour le chargeur Limine.
Cosmos.Patcher remplace des méthodes du runtime au niveau IL avant que NativeAOT ne les compile.
Cible choisie par le RuntimeIdentifier : interruptions APIC sur x64, GIC sur ARM64, assembleur GAS sur les deux, MMIO là où il n’y a pas d’E/S par port.
Chaînes, collections, génériques, threads, Console : compilés par NativeAOT, sans JIT ni runtime managé.
GC marquage-balayage avec analyse précise de la pile, ordonnanceur préemptif à priorités (stride scheduling) avec verrous, gestion des exceptions avec déroulement de la pile.
Sockets TCP et UDP sur la pile réseau de Cosmos : ARP, IPv4, DHCP et DNS. HTTPS/TLS est sur la feuille de route.
Pilotes AHCI/SATA et NVMe, partitionnement MBR/GPT/EBR, FAT12/16/32 sur un VFS de type Unix.
API Canvas à double tampon sur le framebuffer UEFI GOP (via Limine), entrées clavier et souris.
Prise en charge d’ACPI via la bibliothèque LAI, plus un port série UART pour journaliser et déboguer le noyau.
Projets à découvrir
Vous ne savez pas par où commencer ? Parcourez ces projets pour apprendre Cosmos par l’exemple et trouver l’inspiration !
- Project-Prism/Prism-OS89 étoilesAn operating system written in C#, Made possible by the cosmos community! #csharp #operating-system #os
- LumaTechnologies/SphereOS74 étoilesSphereOS - An operating system written in C#, powered by Cosmos. #operating-system
- Ncleardev/NclearOS-241 étoilesCosmos based Operating System with GUI. #operating-system #os
- Adisol07/SaphireOS25 étoilesNew operating system #csharp
- ascpixi/cosmos-coroutines22 étoilesA simple, non-preemptive coroutine scheduler that allows for cooperative multitasking within Cosmos kernels #coroutines #multitasking #csharp
- AAM1075/XenOS15 étoilesXenOS is an operating system written in .NET C# and is made possible by the Cosmos OS project. #c-sharp #dotnet #operating-system
- mirage-desktop/Mirage-classic12 étoilesMirage Desktop Environment (Classic) #csharp #desktop
- DogOSdev/DogOS9 étoilesA Operating System made with Cosmos and in C#. #csharp #dotnet
Dix-huit ans de C# sur le métal.
Cosmos a eu trois vies. Gen3 est la plus grande refondation depuis la naissance du projet.
- (tag: gen1)Date: 2007
La preuve.
Le Cosmos d’origine. La preuve qu’on pouvait compiler du C# en quelque chose qui démarre sur du matériel nu. Un petit projet avec une grande idée.
- (tag: gen2)Date: années 2010 à 2024
L’ère IL2CPU.
Un compilateur IL vers x86 maison, construit et maintenu par la communauté pendant plus de dix ans. IL2CPU traduisait le bytecode .NET directement en assembleur et a fait tourner des OS amateurs pendant des années.
- (HEAD -> gen3)Date: Aujourd’hui
NativeAOT.
Nous avons retiré 15 ans de compilateur maison pour nous appuyer sur NativeAOT. Cosmos patche désormais le pipeline AOT officiel de .NET au niveau IL : fonctionnalités modernes du langage, builds plus rapides, moins de code à maintenir.
