Accueil🇫🇷Chercher

Cosmos (système d'exploitation)

Cosmos (C# Open Source Managed Operating System) est un outil de création de systèmes d'exploitation open-source écrit principalement en C# ainsi que de petites parties d'un langage de programmation assembleur de haut niveau appelé X#. Il utilise un compilateur connu sous le nom de IL2CPU pour traduire le langage CIL généré d'une application .NET en langage assembleur natif. Cosmos compile des programmes et des bibliothèques à l'aide d'IL2CPU pour créer un fichier exécutable démarrable. Le résultat peut être démarré à partir d'une clé USB, un CD-ROM, sur le réseau via PXE, par Hyper-V, ou dans une machine virtuelle (généralement VMWare ou Bochs).

Cosmos
Logo
Capture d'écran d'un système réalisé avec COSMOS
Capture d'écran d'un système réalisé avec COSMOS

Type de noyau Monolithique
État du projet Actif
DĂ©pĂ´t github.com/CosmosOS/Cosmos
Plates-formes x86
Entreprise /
DĂ©veloppeur
Cosmos Project
Licence BSD
États des sources Open-source
Écrit en C#, X#
Dernière version stable User Kit 20220209 ()
Environnement de bureau Cosmos Graphic Subsystem
Site web gocosmos.org

Selon le site web de Cosmos, Cosmos est un acronyme pour C# Open Source Managed Operating System (Système d'exploitation géré Open-Source en C#)[1]. Cosmos ne compte pas pour le moment devenir un système d'exploitation à part entière, mais plutôt un outil pour aider les développeurs pour créer simplement et facilement leur propre système d'exploitation.

Les anciennes versions de Cosmos Ă©taient classĂ©es en « Milestones Â», jusqu'au Milestone 5 (aoĂ»t 2010). Les versions de Cosmos sont divisĂ©es en deux types : les « User Kit Â» et les « Dev Kit Â». Les « User Kit Â» sont des versions prĂ©-packagĂ©es qui sont mises Ă  jour Ă  chaque modifications majeures. Les « Dev kit Â» sont simplement le code source de Cosmos qui doit ĂŞtre compilĂ© manuellement, ce qui permet Ă  l'utilisateur d'obtenir les dernières mises Ă  jour du code (toutes les modifications des contributeurs, depuis la page github du projet), qui ne sont pas implĂ©mentĂ©s dans d'anciens « User Kit Â». La plupart du travail sur Cosmos est actuellement portĂ© sur le dĂ©bogueur et l'intĂ©gration Ă  Visual Studio. Le travail sur le noyau est centrĂ© sur les systèmes de fichiers, gestion de mĂ©moire et dĂ©veloppement d'une interface rĂ©seau. GRUB est utilisĂ© comme chargeur d'amorçage.

Intégration à Visual Studio

Un des atouts de Cosmos (contrairement à d'autres systèmes de ce type) est son intégration à Visual Studio. Le code peut être écrit, compilé, débogué et exécuté entièrement à travers Visual Studio. Visual Studio 2013, Visual Studio 2015 et Visual Studio 2017 sont supportés. Le port de Cosmos sur Visual Studio 2017 est désormais disponible[2], ce qui apporte un nouvel "Userkit" installable comprenant toutes les mises à jour depuis la version 20150918 (environ 900 modifications).

DĂ©bogage

Cosmos peut être débogué sans encombre à travers Visual Studio, pendant une exécution en PXE ou dans une machine virtuelle. La plupart des fonctions standards de débogage sont présentes, comme les points d'arrêt. Additionnellement, le débogage peut être effectué par port série, en exécution sur une machine physique.

Exécution

Cosmos utilise la virtualisation pour aider le développement en aidant les développeurs à tester leurs systèmes sans avoir à redémarrer leurs ordinateurs. Par défaut, VMWare Player est utilisé, dû à sa facilité d'utilisation en termes d'intégration. D'autres environnements sont supportés comme Bochs par exemple. Une image ISO est générée pour être gravée sur une clé USB ou un CD.

Le démarrage sur PXE est aussi supporté, permettant à des machines distantes d'exécuter Cosmos sur une connexion réseau.

Compilation

IL2CPU

Pour compiler le code IL .NET en assembleur, les développeurs de Cosmos ont créé IL2CPU, pour interpréter le IL et sortir des opérateurs x86.

Écriture du code de Cosmos

Un système d'exploitation fait avec Cosmos commence en tant que projet .NET (une bibliothèque de classes).

Le développeur peut ensuite ajouter du code dans les fonctions BeforeRun (avant le démarrage) et Run (exécution) qui ont été pré-ajoutées dans le fichier Kernel.cs (noyau) :

protected override void BeforeRun()
{
     Console.WriteLine("Cosmos a correctement démarré. Tapez une ligne de texte.");
}
        
protected override void Run()
{
     Console.Write("Texte : ");
     // Lecture de l'entrée
     var input = Console.ReadLine();
     Console.Write("Texte entré : ");
     // RĂ©affichage
     Console.WriteLine(input);
}

Le code ci-dessus est celui qui est pré-inscrit dans un projet Cosmos. C'est une sorte "d'écho". Bien sûr, le développeur peut le remplacer par son propre code, en utilisant des fonctions du .NET Framework si elles ont au préalable été "pluggées" dans Cosmos, ou bien simplement les bibliothèques de Cosmos qui contiennent toutes sortes de classes d'objets comme des pilotes vidéo et d'entrée entre autres.

Le Cosmos User Kit et Visual Studio

Le Cosmos User Kit est une partie de Cosmos créée pour faciliter la vie des développeurs avec Visual Studio. Il ajoute un nouveau type de projet à Visual Studio, appelé Cosmos Operating System. C'est une application console modifiée qui contient un code de démonstration par défaut.

Compilation

Quand le code est terminé, il peut être compilé avec le compilateur .NET, qui convertit le code source (C# ou autre) en IL, "l'assembleur" du .NET Framework, et ce code IL sera compilé par le compilateur de Cosmos vers un langage machine natif (assembleur x86).

Options de débogage

Cosmos offre un grand nombre d'options pour déboguer le système.

Images disques

Cette option écrit le système d'exploitation sur une image disque ISO, qui peut être chargée par des émulateurs ou gravée sur un CD-ROM.

Démarrage réseau PXE

Cette option autorise le système d'exploitation à être démarré sur un matériel physique. Les données sont envoyées via le réseau local à la machine cliente.

Notes et références

Références

  1. (en-US) « COSMOS », sur COSMOS (consulté le )
  2. (en) Mise Ă  jour 20170612, CosmosOS, (lire en ligne)

Voir aussi

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.