Projet système PC : 2010 - Charles EYNARD, Olivier PARENT-COLOMBEL, Matthieu RUCH : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Le projet)
(Fonctionnalités principales)
Ligne 59 : Ligne 59 :
  
 
=== Fonctionnalités principales ===
 
=== Fonctionnalités principales ===
'''Note:''' les fonctionnalités citées ici sont un bref résumé du cahier des charges [[Projet système : spécification|complet]]. Pour plus d'informations, merci de vous y référer.
+
'''Note:''' les fonctionnalités citées ici représentent un bref résumé du cahier des charges [[Projet système : spécification|complet]]. Pour plus d'informations, merci de vous y référer.
  
 
* '''Multi-tâches''' : possibilité de lancer plusieurs [http://fr.wikipedia.org/wiki/Processus_informatique processus] sur notre système ([http://fr.wikipedia.org/wiki/Multi-t%C3%A2ches wikipedia]).
 
* '''Multi-tâches''' : possibilité de lancer plusieurs [http://fr.wikipedia.org/wiki/Processus_informatique processus] sur notre système ([http://fr.wikipedia.org/wiki/Multi-t%C3%A2ches wikipedia]).

Version du 15 juin 2010 à 15:37

Mycomputer.png  Deuxième Année  CDROM.png  Informatique 

tacOS
Tacos-logo.png
Développeur Charles Eynard, Olivier Parent-Colombel, Matthieu Ruch

Le projet

Vous pouvez télécharger le fichier binaire exécutable par Virtual Box ici.


Intitulé Description

L'équipe (Qui ?)

Nous sommes trois étudiants de phelma venus en deuxième année à l'ensimag. Charles Eynard et Matthieu Ruch sont en SLE (systèmes et logiciels embarqués) et Olivier Parent-Colombel est en télécommunications. Nous sommes encadrés par Mr. Franck Rousseau.

Le projet (Quoi ?)

Le but du projet était de réaliser un système d'exploitation. C'est-à-dire un programme informatique faisant le lien entre le matériel de l'ordinateur (clavier, écran, souris) et les logiciels utilisateurs tel qu'un éditeur de texte par exemple.

Il fallait dans un premier temps répondre à un cahier des charges clair et dans un second temps réfléchir à des ajouts possibles.

Où ?

Le projet s'est déroulé dans les salles d'ordinateurs D200 et D201 de l'ENSIMAG.

Quand ?

Le projet a débuté le 20 mai 2010 et s'est terminé le 16 juin 2010, date de la soutenance. Il a eu lieu dans le cadre des projets de spécialité de l'ENSIMAG.

Comment ?

Dans un premier temps, nous avons principalement utilisé les connaissances acquises dans les cours de deuxième année de l'ENSIMAG tels que Systèmes d'exploitation et programmation concurrente et Pratique du Système. Dans un second temps, nous avons utilisé des sources externes pour réaliser les extensions.

Vous pourrez voir plus bas les outils informatiques et de gestion de projet utilisés.

Fonctionnalités

Les réalisations peuvent être séparées en deux parties:

  • La réalisation du cahier des charges initial
  • Les fonctionnalités secondaires que l'équipe a choisies

Fonctionnalités principales

Note: les fonctionnalités citées ici représentent un bref résumé du cahier des charges complet. Pour plus d'informations, merci de vous y référer.

  • Multi-tâches : possibilité de lancer plusieurs processus sur notre système (wikipedia).
  • Files de messages : infrastructure logicielle permettant à deux processus de communiquer (wikipedia).
  • Protection du système: création d'un mode utilisateur où les opérations possibles sont restreintes pour que l'utilisateur ne puisse pas faire des actions dommageables pour le système (wikipedia).

Extensions

  • Signal de terminaison: dans le terminal, un processus qui s'exécute peut être terminé en appuyant sur CTRL+C
  • Multi-console: permet de gérer plusieurs consoles
  • Souris: la souris est gérée et peut être affichée sur l'écran
  • Copier-coller: l'utilisateur peut sélectionner le texte avec le clique gauche et le coller avec un clique droit
  • Date: l'heure et la date connue par l'ordinateur avec l'horloge en temps réel (wikipedia) est récupérée et peut être affichée
  • Disque-dur: les disques dur de type IDE sont reconnus. Notre système d'exploitation peut lire le système de fichier ext2, lire des fichiers et les modifier (on ne peux pas en créer).

Démonstration video

  • Test des fonctions de base (attente sur un processus, terminaison d'un processus): vimeo
  • Affichage de la date, multi-console, souris et copier-coller: vimeo
  • Navigation dans les fichiers du disque dur et affichage d'un fichier: vimeo
  • Écriture dans un fichier du disque-dur et affichage des information sur le disque-dur vimeo

Outils utilisés

Outils informatiques

Nous avons utilisé ces outils durant le projet

  • Subversion pour distribuer le code entre les membres du groupe
  • DDD et GDB pour debugger le système d'exploitation
  • VirtualBox qui est un logiciel qui permet d'émuler un ordinateur. Virtual Box nous a permis de démarrer et redémarrer notre système d'exploitation plus facilement.

Outils de gestion de projet

Seulement deux outils de gestion de projet ont été utilisés:

  • Diagramme de GANTT (prévisionnel et effectif)
  • Cahier de bord permettant de suivre avec précision l'évolution de notre projet

Le fait que le projet était bien encadré, avec une feuille de route claire, nous a évité bien des déboires au niveau de la planification.

Bilan

Aspects positifs

  • Très instructif et intéressant
  • Application de plusieurs de nos cours de deuxième année
  • Très satisfaisant d'obtenir un système d'exploitation qui fonctionne à la fin du projet

Difficultés rencontrées

  • De nombreux bugs insoupçonnés sont apparus dans la phase de test
  • Extensions plus longues à développer que prévu
  • Difficile de réadapter des portions de code écrites au début du projet pour les extensions qui furent développées.
  • Manque de connaissances et de documentation pour réaliser certaines des extensions (gestion du disque-dur, souris, etc.)

Références

Références
Lien Contenu

IRQ et PS/2

http://a.p.c.free.fr/cours_irq.html

Documentation sur les IRQ (pic maître et esclave)

http://www.computer-engineering.org

Source intéressante sur le port PS/2 (clavier et souris)

http://wiki.osdev.org/Mouse_Input

Information plus précise sur la souris et bien structurée (avec les différentes commandes)

L'horloge temps réel (RTC)

http://www.nondot.org/sabre/os/files/MiscHW/RealtimeClockFAQ.txt

Commandes et registres de la RTC

Disque dur et systèmes de fichier

http://sos.enix.org/

Toutes les structures utilisées dans le projet pour l'ide et l'ext2 (sous licence GPL)

http://wiki.osdev.org/Ext2

Documentation de fond sur le format de fichier ext2.)