Projet système PC : 2013 - Laurent ALEPEE, Thi Hoai Huong HUYNH et Baptiste REYNAL DE SAINT MICHEL

De Ensiwiki
Aller à : navigation, rechercher
WindOS
WindOS.png
système d'exploitation

Développeurs Laurent ALEPEE

Thi Hoai Huong HUYNH
Baptiste REYNAL DE SAINT MICHEL

Cette page servira de vitrine à notre système d'exploitation WindOS.

Présentation

Le projet système

Le projet système clos la deuxième année en alternance. Le cahier des charges est donné dans Projet système

Réalisation

Vous trouverez ici détaillé point par point les éléments du projets réalisés.

Matériel

  • Affichage à l'écran
  • Interruptions horloge
  • Interruptions clavier

Gestion des processus

  • Cycle de vie du processus (Lancement, exécution, terminaison)
  • Ordonancement (Le processus le plus prioritaire doit toujours s'exécuter)

Implémentation des sémaphores

Mode protégé

  • Exécution des processus en mode user
  • Librairie d'appels systèmes

Shell

  • Implémentation d'un shell
  • Historique des commandes gérés
  • Liste des commandes disponibles avec la commande 'help'

Apports et Difficultés

Technique Une notion clé du projet système est que "le processus le plus prioritaire doit toujours s'exécuter". La manipulation des files d'attente est délicate et il faut penser à toujours appeler l'ordonanceur lorsque une de ces files est modifiée. L'utilisation intensive de GDB a permis d'améliorer la maîtrise de l'outil.

Code Un important effort a été réalisé afin de garder un code clair, modulable et bien factorisé. Cela a vraiment aidé lors des phases de débogage pour passer les tests.

Gestion de projet Une méthode de Pair Programming "à 3" a été instaurée. Pendant que deux personnes codent, la troisième contrôle les fautes et aide à la correction de bugs. Les rôles changent régulièrement (au moins une fois par jour). Cela est très pratique pour la résolution de bugs, et le temps "perdu" par la troisième personne est largement rentabilisé.

Information Globalement, la recherche d'information pour le projet n'est pas évidente. Cependant, on peut trouver pas mal de choses sur le wiki de l'Ensimag, mais aussi sur d'autres sites. Il ne faut pas hésiter notamment à lire les documentations, qui sont souvent bien détaillées et très claires (Avec parfois des exemples de codes).

Extensions

Partie graphique En fin de projet, on s'est intéressé à la possibilité d'implémenter un mode graphique pour WindOS. Les solutions sont particulièrement bien documentées, notamment sur OSDev. Après avoir essayé le mode VESA, le mode VGA a finalement été implémenté (Le mode VESA utilise un patch pour pouvoir s'exécuter, et la non-maîtrise de ce patch nous a empêché de coder "proprement" le mode graphique). Par manque de temps, seule la possibilité d'afficher un pixel rouge au centre de la fenêtre en mode kernel est disponible. De plus, le retour au mode texte ne marche pas.

Références