[Windows] TUTO – [Partie 2] Utilisation du système de fichiers sous Cosmos

Voici une suite au premier tutoriel (mis à jour à la suite de cette deuxième partie, n’hésitez pas à y faire un tour au cas où :P) sur comment créer et lancer sur une machine virtuelle son premier système d’exploitation. Sous forme de console pour l’instant, le système n’est pas pourvu d’un système de fichiers (créer des dossiers/fichiers, se déplacer dans les dossiers, etc.). Nous allons donc ici voir comment faire cela. Faites place au tutoriel !

Logo de Cosmos


Utilisation du système de fichiers

A. Présentation du VFS

Comme défini plus haut, un système de fichiers va vous permettre de créer des fichiers et dossiers depuis votre système d’exploitation et vous déplacer, ouvrir, supprimer ces fichiers, dossiers, etc. Comme pour l’instant l’utilisation de Cosmos ne se fait essentiellement que sur machine virtuelle et non sur un support physique, nous allons utiliser ce qu’on appelle un système de fichiers virtuel (VFS) ou comme Wikipédia le définit : « Une couche d’abstraction au-dessus d’un système de fichiers plus concret ».

B. Utilisation du VFS

Lancez Visual Studio, créez un projet ou ouvrez votre projet Cosmos C#. Rendez-vous maintenant dans le fichier Kernel.cs.

Initialisation

Avant d’utiliser le système de fichiers virtuel, il va falloir l’initialiser depuis la boucle BeforeRun() de votre projet (voir le premier tutoriel à la partie 2B pour plus d’informations). Voici le code à utiliser :

Il est bon de savoir que le système de fichiers utilisé par Cosmos ressemble à celui de Windows, chaque lecteur a sa propre lettre et le répertoire par défaut est « 0:\ » comme « C:\ » sur Windows.

La variable dossier_actuel sera par défaut définie par :

Il faut impérativement utiliser une double barre oblique (« \\ ») inversée pour écrire une simple « \ ».

Commande pour créer un fichier

Commande pour lire un fichier

Commande pour supprimer un fichier

Commande pour créer un dossier

Commande pour supprimer un dossier

Commande pour se déplacer vers un dossier

Commande pour se déplacer vers un dossier parent (retour)

Commande pour lister les dossiers et fichiers du dossier ouvert

Commande pour lister les lecteurs disponibles

Voilà voilà, vous avez pu voir une liste de différentes commandes utiles à la création d’un système d’exploitation, si vous voulez voir l’application réelle de ces commandes, vous pouvez aller voir la méthode InterpredCMD d’un petit système d’exploitation réalisé par mes soins, où ces commandes y sont inscrites (Ctrl + F pour rechercher dans la page 😉 ).

C. Exemple d’implémentation du système de fichiers

Maintenant, depuis votre console, vous pouvez implémenter différentes commandes. Voici un algorithme basique qui va pouvoir interpréter les commandes transmises depuis l’utilisateur (comme depuis le CMD sur Windows) et permettre la création et suppression d’un dossier. Ensuite, à vous d’implémenter vos propres commandes !

3) Conclusion

À travers ce tutoriel, vous avez pu voir comment utiliser un système de fichiers dans votre projet Cosmos. Amusez-vous, développez et partagez votre projet ! Si vous manquez d’inspiration, voici même une page comprenant plusieurs projets sous Cosmos : Cosmos Projects.

D’autres tutoriels à propos de Cosmos arriveront sur Custom Protocol bientôt, si vous avez besoin de quoi que ce soit vous pouvez poser une question en commentaire ou sur la conversation Gitter du projet Cosmos ! 😉