[Windows] Créer son système d’exploitation avec Cosmos

À travers ce tutoriel et une future suite de tutoriels, nous allons apprendre à créer notre propre OS, ou plutôt le vôtre ! Nous n’allons évidemment pas surpasser Windows ou Ubuntu, ce sera un petit OS fait maison pour les passionnés et débutants en programmation ! Nous n’allons pas utiliser de langage assembleur, ne créerons un noyau, nous le programmerons simplement en C# avec l’aide du projet Cosmos, magnifique non ?

cosmos


Une petite présentation de notre support s’impose, comme ce tutoriel est ciblé aux débutants et que je ne suis pas expert en programmation, je vais m’appuyer sur le super, que dis-je, le magnifique projet Cosmos.

Cosmos est un système d’exploitation, ou plutôt un « kit de construction », basé sur SysLinux autour du compilateur IL2CPU (créé par les mêmes développeurs que CosmosOS). COSMOS signifie d’ailleurs C# Open Source Managed Operating System.

Bref, Cosmos n’est donc pas un système d’exploitation à proprement parler, mais plutôt un « kit de création de système d’exploitation ». Cosmos va vous permettre de créer des systèmes d’exploitation sur Visual Studio et en C# (ou Visual Basic). Le véritable point fort de Cosmos réside dans le fait qu’il est intégré à Visual Studio, ce qui va permettre un développement sous Windows accompagné d’éléments essentiels. En effet, Visual Studio (avec Cosmos) va débugger et générer votre OS avant de l’envoyer à une machine virtuelle.

Logo CosmosOS

Logo officiel de Cosmos


1) Installation de Cosmos

  • Si vous avez une ancienne version de Cosmos installée, désinstallez-la avant de commencer
  • Les anciennes versions de Visual Studio ne sont pas supportées par Cosmos (il faut la version 2015 au minimum)
  • Les anciennes versions de Windows ne sont également pas supportés ! Il vous faut Windows 7 au moins

A. Pré-requis
  • Un minimum de connaissances en algorithmique (C# ou VB) et informatique…
  • Être sous Windows 7 au minimum ;
  • Visual Studio Community 2015télécharger ici) ;
  • .NET Framework 4.5télécharger ici) ;
  • VMWare Player (version gratuite) (à télécharger ici) ;
  • .NET Framework 3.5 SP1, quelques composants requérant cette version (à télécharger ici).
B. Installation de Cosmos

Premièrement, téléchargez la dernière version de Cosmos (le fichier CosmosUserKit-XXXXXXXX-vs2015.exe). Patientez le temps du téléchargement et lancez-le en tant qu’administrateur mais :

  • Assurez-vous que Visual Studio 2015 n’est pas en cours d’utilisation ;
  • Assurez-vous que VMWare n’est pas non plus en cours d’utilisation ;
  • Et assurez-vous que vous n’êtes pas en train de faire des mises à jour Windows, ce qui pourrait éteindre votre ordi, ou quelque chose d’autre de stupide.

Après exécution de l’installateur, cliquez sur « Ok », « Suivant », « Suivant » encore « Suivant » puis « Installer ». Si vous avez échoué cette étape vous pouvez abandonner dès maintenant. 😛

Patientez pendant l’installation, jusqu’à que cette fenêtre s’affiche, et appuyez sur « Terminer ».

cosmosintall

Cosmos User kit est maintenant installé ! Passons à la création de notre premier OS !


2) Créer son premier OS

A. Création du projet

Lancez Visual Studio, appuyez sur « Nouveau projet… », cette fenêtre se lance alors :

Fenêtre créer un nouveau projet

Fenêtre « créer un nouveau projet »

Créez un nouveau projet comme n’importe quel projet C#, mais sélectionnez Cosmos comme type de projet. Vous pouvez ensuite choisir de programmer votre OS en C# ou en Visual Basic (je conseille le C# mais Visual Basic est tout aussi bien).

Renseignez ensuite le nom de votre projet, ici « Custom Protocol ». Appuyez ensuite sur « OK ».

Oh, diable, du code ! Ne vous inquiétez : tout va être expliqué.

B. Le code

Tout d’abord, on peut remarquer que votre nouveau projet ressemble beaucoup à une application console C # standard.

explorateur

Pour l’instant, il faudra rester dans « C# Custom Protocol » et non dans « Custom ProtocolBoot ».

Le fichier Kernel.cs contient le code d’amorçage et d’exécution de votre OS.

Quant au fichier AssemblyInfos.cs, il contient des informations relatives à votre programme.

 


Voici le code source de votre OS, j’ai traduit le texte pour plus de compréhension (vous pouvez copier coller celui-là) :

demarrer

Lets’ go !

C. Votre premier boot !

Vous pouvez maintenant appuyer sur le petit bouton vert « Démarrer », il se situe sur la barre du haut de Visual Studio.

Si votre code n’a pas d’erreurs, et si VMWare est bien installé, la génération va commencer. Voici une petite vidéo d’exemple de génération. 

Après que VMWare se soit lancé, vous devriez normalement voir du texte défiler (il correspond à l’initialisation de l’ISO dans VMWare). Et après tout ceci, si vous avez correctement copié-collé le code plus haut, vous devriez obtenir ceci :

Voici le CTPOS ! XD

Voici le CustomProtcolOS ! XD

Voilà, vous venez de créer la première version de votre premier OS en 32 bits, bravo ! Vous pouvez évidemment continuer à le développer, avec l’aide de plusieurs tutoriels qui vont arriver très bientôt ou de la documentation officielle du projet Cosmos.