Dans le vaste monde des systèmes d’exploitation , on ne sait plus trop où donner de la tête. Bien que Windows soit le système le plus employé sur PC, d'autres systèmes tels qu'OSX ou Linux existent. Mais si je vous disais que vous, utilisateurs de Windows, pouvez créer votre propre système d’exploitation ? Et ceci sans manipuler de langages complexes comme l'assembleur ou le C mais simplement en utilisant le langage C# ou VB.NET. Ceci est bien possible, grâce au projet Cosmos.
Cosmos est un « outil de construction » de système d’exploitation , open-source et écrit presque entièrement en C#. Cosmos utilise le compilateur IL2CPU pour créer des fichiers utilisables par la machine en transformant du langage de haut niveau, le .NET (C# ou VB.NET) en langage de bas niveau, l’assembleur. Ces fichiers peuvent être exécutés de différentes manières, par disquette, clé USB, CD-ROM par machine virtuelles et autres.
Intégré à Visual Studio , Cosmos va vous permettre de créer un système d’exploitation qu'aussi bien débutant ou expérimentés peuvent utiliser pour différents projets. Il existe une petite liste de projets utilisant Cosmos et voici par exemple Universum OS, un projet développé en C# et propulsé par Cosmos.
Pour l’instant, Cosmos supporte différentes fonctionnalités dont le système de fichier, le système graphique par exemple et est activement mis à jour grâce à ses nombreux contributeurs, si l'envie vous prend vous êtes invités à aider en cherchant des bugs ou en aidant au développement ! :)
Vous pouvez également installer Cosmos avec ce répertoire et suivre la documentation (en anglais) ou bien suivre cette série de tutoriel pour savoir comment installer et utiliser Cosmos (en français).
Source :
github.com
,
en.wikipedia.org
44 commentaires
Bonne journée,
ClaraGil
Merci pour la news!
C'est sympa comme concept, ça permettra aux écoliers, collégiens de s'initier à la programmation, de différencier entre programmation haut niveau et programmation bas niveau afin d'avoir une idée nette sur cette branche avant de se lancer dans des études plus poussées et pourquoi pas devenir informaticien et surtout aux profanes, aux amateurs et spécialement les dirigeants des entreprises que finalement l'informatique n'est pas que presse bouton
C'est juste un petit soft qui tourne dans une machine virtuelle, pour faire mumuse et se prendre pour un programmeur de génie, pas plus
.NET est un langage HAUT NIVEAU
.NET tourne dans une machine virtuelle cible
.NET ne se lance pas tout seul
.NET a besoin d'un tas de LIB, DLL, etc pour fonctionner
.NET est un Framework que Cosmos utilise pour fonctionner
Un logiciel qui utilise .NET et qui a besoin de son Framrwork pour fonctionner et qui tourne dans une machine virtuelle n'est tout simplement pas un système d'exploitation !
Comment peut on sortir aujourd’hui un truc pareil, non fonctionnel, en ligne de commande et le nommer OS
Si tu veux voir à l’œuvre un vrai OS en développement, regarde du coté de ReactOS...
Cosmos, c'est même pas un jouet à coté, c'est rien
Et comme le dit le collegue du bas, on ne code pas un OS en 10 lignes de code...
IL2CPU va "simplement" convertir du langage .NET en assembleur et en fichiers binaires.
Par exemple un système sous cosmos de 6000 lignes de C# va se transformer en 500 000 lignes d'assembleur.
Cosmos est donc une manière plus simplifié, pour un plus grand public de programmer un système d'exploitation qui peut démarrer pas seulement sur une machine virtuelle mais aussi sur une machine réelle grâce à un boot menu :P
Il n'existe pas à ce jour -à ma connaissance- un compilateur capable de compiler du .NET directement en instruction machine autonomes et exécutables directement par le processeur
"6000 lignes de C#" = "500 000 lignes d'assembleur"
Une simple boucle en C++ fait 1 lignes, en assembleur cette même boucle fait 10 lignes !
Le code d'une fenêtre en C++ fait 5 lignes
En assembleur, ça fait 100 lignes
ET c'est normal
"grâce à un boot menu"
Oui, un boot Linux avec tout ce qui va avec
Et si IL2CPU convertit ce qui est des méthodes écrites en C# en langage assembleur. Tu n'as qu'à regarder le code source de Cosmos ou l'interview de Kudzu, un des développeurs les plus actifs de ce projet par un membre de la fondation .NET https://channel9.msdn.com/Shows/On-NET/Chad-Z-Hower-aka-Kudzu-Cosmos)
Pour résumer :
Cosmos est un logiciel capable de compiler et rendre bootable un code X écrit en .NET sous Visual Studio (Au passage, belle prouesse technique)
Est-ce qu'un code qui devient bootable et qui a besoin de environnement Cosmos ou non est un OS ?
Voila le débat
Sur la démo ce n'est pas un OS qui est programmé mais un interpréteur de commandes !
Comme si un OS allait se programmer en 10 lignes...
De nos jours on appelle "hologramme" une simple illusion d'optique avec un miroir , et "OS" un simple interpréteur de commandes.... Portnawak...
M'étonnerait qu'ils l'aient codé en 10 ligne avec du .Net
C'était MS-DOS au départ, un interpréteur de commandes.
Et c'est sûr cette démo n'a pas les caractéristiques d'un système d'exploitation à proprement parler. Il y a bien plus de possibilité et par exemple je fais un système d'exploitation sous cosmos seulement en interpréteur de commandes j'ai déjà des milliers de lignes donc ne dis pas en dix lignes
Ce n'est pas juste une nuance de langage : un interpréteur de commande N'EST PAS un OS, et un OS N'EST PAS un interpréteur de commandes.
Et Windows 95 et 98 sont des systèmes d'exploitation, au même titre que MS-DOS et au même titre qu'un OS construit avec Cosmos.
Et aussi Cosmos n'est pas seulement un invite de commande, on peut exécuter un système graphique, ce n'est juste pas montré dans la vidéo de démo :P
W95 n'est pas basé sur un interpréteur de commandes, il est basé sur MS-DOS. C'est d'ailleurs un très bon exemple où MS-DOS à la fin de sa séquence de boot (qu'on ne voit pas) lance autre chose que COMMAND.COM : il lance l'exécutable de Windows 95.
Il rendait plus user friendly MS-DOS
Ça a changé avec Win98
https://fr.wikipedia.org/wiki/Windows_95#Windows_et_le_DOS
Ca permettait de maintenir une compatibilité quasi parfaite avec les anciennes applis (y compris celle de Win3.1), mais ce n'était pas terrible pour la stabilité
Command.com est l’interpréteur de commande du MS-DOS comme le dit Jacky64
MS-DOS et W95/98 ne boot pas de la même facon
Win95/98 se fout royalement de command.com, il ne figure même pas dans la séquence de démarrage
Il faut comprendre une chose, un OS est un programme autonome et il est construit pour se lancer à partir des seules instructions primaires du Bios de la machine et à partir des instructions machines du processeur, pas de bytcode, pas de framework, d’interpréteur de commande, etc...
Quand le PC est prêt à démarrer, on peut commencer à lancer/coder un noyau primaire mais pas en .NET ni en bytecode...
A ce stade, l'OS est primaire et il est toujours de bas niveau
Il utilise le Boot Loader Syslinux pour lancer un fichier Cosmos.bin qui sera directement chargé dans la RAM du PC. Et ceci sans aucun intermédiaire.
Je ne sais pas si tu te rends compte de ce que ça veux dire et implique "créer un OS", même un OS simple... Visiblement non.
"Développeurs, créez votre propre système d'exploitation avec Cosmos"
Il aurait été préférable de dire :
Créer des applications autonomes en C# directement exécutable sous Cosmos OS sans l'environnement Windows/Linux
L’intérêt principale -à terme- de Cosmos est de créer/lancer des applications écrite en C#, compilé avec IL2CPU qui utilise les Biblio de .NET et se passer de la lourdeur de Windows/Linux
Effectivement, un programmeur peut toujours compiler son Hello World ou son petit programme bidon ecrit en C# en disant à ses potes "hé les gars, j'ai créer mon OS, il boot tout seul, je suis un génie"