Projet système PC : 2010 - Charles EYNARD, Olivier PARENT-COLOMBEL, Matthieu RUCH

De Ensiwiki
Révision de 15 juin 2010 à 14:37 par Parentco (discussion | contributions) (Extensions)

Aller à : navigation, rechercher

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. Vous pouvez également revenir à l'index des projets systèmes.


Notre projet
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 tels 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 sont 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

Outils utilisés

Outils informatiques

svn ddd virtualbox


Outils de gestion de projet

diagramme de gantt cahier de bord

fait que le projet était bien encadré

Bilan

Aspects positifs

instructifs intéressant satisfaisant la fin

Difficultés rencontrées

bugs fonctionnalités plus longues que prévu à deévelopper readaptation de l'ancien code aux extensions peu de connaissances

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.)