Projet système PC : 2012 - Gerault Xavier - Rocca Alexandre - Hackett Damien : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Extensions Réalisées)
 
(Aucune différence)

Version actuelle en date du 8 juin 2016 à 07:44


Mol OS
MolOS Banner.png

Développeurs Gerault Xavier
Rocca Alexandre
Hackett Damien

Sur cette page, vous trouverez un résumé des réalisations que nous avons effectuées dans le cadre du Projet Système.

Présentation du projet

Le Projet Système s'inscrit dans le cadre du Projet de Spécialité réalisé par tous les étudiants en 2ème année à l'ENSIMAG.

Ce projet s'est déroulé du 21 mai au 15 juin 2012.

Objectif du Projet

Nous avions pour but de réaliser un Système d'Exploitation d'une console de jeux, c'est à dire disposant de capacités graphiques (comme la couleur) et d'interactions (clavier, souris, sortie son) poussées, afin d'être capable de lancer des jeux vidéos.

Le Système d'Exploitation devra bien sûr posséder les caractéristiques minimales d'un OS que sont la gestion des périphériques, la gestion des processus et la segmentation.

Cette dernière propriété permet notamment d'obtenir un système stable et de restreindre les accès mémoires interdits (typiquement lorsqu'une application tente de modifier une case mémoire système).

Composition de l'équipe

L'équipe est composée de 3 étudiants issus de la formation Systèmes et Logiciels Embarqués de l'ENSIMAG

Nous étions encadrés par Franck Rousseau.

Réalisations

Exigences du Cahier des charges

  • Contrôleur de l'affichage (fonction "printf")
  • Interruption Horloge
  • Contrôleur du Clavier
  • Création, arrêt et ordonnancement de processus
  • Création, prise et libération de Sémaphores
  • Séparation Espace Utilisateur/Noyau
  • Interface Shell Utilisateur

Pour plus d'information, vous pouvez consulter le cahier des charges original

Extensions Réalisées

Le jeu de Parcours. (souris) Ne sortez pas du circuit!!!!!


  • Gestion de la couleur en console
  • Multiples Consoles Utilisateurs


  • Contrôleur du Buzzer (musique)
  • Contrôleur de Souris (permettant notamment de selectionner du texte en console)


  • Prise en compte des touches spéciales (Flèches directionnelles, Echap ...)
  • Contrôleur de Disque + Système de fichiers (du type du ext2 de Linux)




De plus, afin de tester les différents contrôleurs ainsi que les primitives systèmes, nous avons réaliser des jeux vidéos.

Le mythique jeu "Pong"(clavier+buzzer)
Un "Sokoban"(clavier+buzzer)

Commandes Shell

  • Multi Console: Notre système possède par défaut 6 shells (numérotés de 0 à 5) accessibles en appuyant sur F[numéro du shell voulu+1]. On accède ainsi par exemple, au shell 2 en appuyant sur F3.


  • Historique: Chacun de nos shells possèdent son propre historique. On peut ainsi accèder à une commande anciennement tapée en appuyant sur la flèche du haut.


  • Prompt Évolué: En plus du nom d'utilisateur et du nom de machine, le prompt affiche le répertoire courant (à la manière du prompt de Bash).


Commandes propres au Shell

Commande Description

echo

Active/Désactive l'affichage des caractères entrés.

exit

Arrête le shell.

clear

Efface l'écran.

color

Permet de régler la couleur de police et de fond du shell.

help

Liste les commandes du shell.

Commandes Système

Commande Description

ps

Affiche des informations sur les processus présents sur la machine.
(pid, ppid, etat, %CPU, heure de réveil ...)

sinfo

Affiche des informations sur les sémaphores présents sur la machine.
(numéro, valeur, prochain processus à libérer)

sys_info

Affiche des informations sur le système

lspci

Liste les périphériques et affiche leur description

Commandes Système de Fichiers

Commande Description

format

Formate le disque en une partition ext2.

ls [nomDuChemin]

Liste les fichiers et dossiers présents dans le chemin indiqué (répertoire local le cas échant).

mkdir [nomDuRépertoire]

Crée un nouveau répertoire.

cd [path]

Changer de répertoire pour le path indiqué.

write [nomDeFichier] [contenuAEcrire]

Ecrit dans un fichier (le crée si il n'existe pas déjà).

open [nomDeFichier]

Affiche le contenu d'un fichier.

Jeux et Musiques

Commande Description

pong

Le mythique jeu de Pong
(2 Joueurs => Z/S pour J1 et Flèches Directionnelles pour J2).

parcours

Garder le curseur le plus longtemps sur la piste dans ce circuit en lacets, tel est le principe de ce jeu.

soko

Un jeu de "Sokoban", qui fera chauffer vos méninges.

music

Permet de lancer différentes mélodies issues du monde des jeux vidéos.

piano

Transforme le clavier en véritable clavier de piano.

mute

Permet de faire taire le buzzer si il vous tape sur le système.

Autres Commandes

Commande Description

testprof

Lance le jeu de tests fourni par les professeurs.

testEvent

Permet de tester la réaction du système aux évenements (clavier, clic et mouvement souris, timer).

philo

Lance le test des Philosophes.

banner

Affiche le logo de Mol OS.

Logiciels Utilisés

Documentation du système générée en html par doxygen
  • Editeur de texte : vim, emacs et gedit
  • Gestionnaire de Version : Mercurial (semblable à Git)
  • Compilateurs / Debuggeur : Gcc, gdb/ddd
  • Virtualisation : Virtualbox

Bilan

Ce projet nous a permis de mettre en pratique les connaissances que nous avions acquises en cours de Système d'Exploitation et Programmation Concurrente (SEPC) et de Conception de Système d'Exploitation (CSE).

Nous avons de plus pu découvrir de nouveau aspects du Système d'Exploitation non abordés dans le cours de Pratique du Système, comme la programmation de drivers de périphériques ou la séparation Noyau/Utilisateur.

Enfin, ce projet nous a forcé à nous adapter à une environement nouveau (particulièrement avec Mercurial) et nous a apporté une nouvelle expérience du travail en groupe qui est enrichissante pour notre future vie d'ingénieurs.

Média:MolOS 2012.tar.gz <== Noyau à télécharger ici

Sites et Projets nous ayant inspirés

Pratique du Système d'Exploitation

OS Dev

Pepin OS

Souris