Projet système PC : 2019 - SAMAILLE Noé, MUGNIER Jean-Charles

De Ensiwiki
Révision de 26 juin 2019 à 01:07 par Mugnijea (discussion | contributions) (Sources externes)

Aller à : navigation, rechercher
Project schedule.png
Titre du projet aperOS
Cadre Ensimag

Équipe Noé Samaille, Jean-Charles Mugnier
Encadrants Gregory Mounié, Patrick Reignier


Présentation

TODO

Executable

TODO

Planning

Prévisionnel

TODO

Effectif

TODO

Avancement du projet

Phase 1 - Prise en main de l'environnement

100 %

Phase 2 - Processus, changement de contexte gestion du temps (kernel)

100 %

Phase 3 - Ordonnancement et cycle de vie des processus (kernel)

100 %

Phase 4 - Files de messages

100 %

Phase 5 - Protection de l'éxecution et appels systèmes

95 %

Phase 6 - Console

100 %

Phase 7 - Interprète de commandes

100 %

Extensions

Sources

Journal de bord

Liste chronologique des jours, puis sous-liste chronologique des tâches.

Mercredi 5 Juin 2019

  • Présentation initiale du projet par M. Mounié.
  • Jean-Charles et Noé : Mise en place (en parallèle) du code nécessaire à l'affichage.
  • Fin de la phase 1.
  • Jean-Charles et Noé: Début de la réflexion sur le changement de contexte entre processus.

Jeudi 6 Juin 2019

  • Jean-Charles : démarrage des tests de la phase 1.
  • Noé : Mise en place des structures de processus.
  • Noé : Mise en place du changement de contexte.
  • Jean-Charles et Noé : Choix d'un nom d'OS et d'un logo ASCII.

Vendredi 7 Juin 2019

  • Noé : Fin du changement de contexte.
  • Noé : Mise en place du Timer.
  • Bon Week-end !

Mardi 11 Juin 2019

  • Fin de la phase 2
  • Jean-Charles : Fin des tests de la phase 1.
  • Jean-Charles & Noé : merge branches tests -> master puis develop -> master.
  • Jean-Charles & Noé : Début de la phase 3.
  • Noé : Gestion de l'ordonnancement.

Mercredi 12 Juin 2019

  • Noé : Fin gestion de l'ordonnancement.
  • Jean-Charles : Endormissement des processus.
  • Noé : Terminaison des processus.

Jeudi 13 Juin 2019

  • Jean-Charles : implemenation des tests fournis.
  • Jean-Charles & Noé: Fin de l'endormissement des processus.
  • Noé: Fin de la terminaison des processus.
  • Fin de la phase 3.

Vendredi 14 Juin 2019

  • Noé & Jean-Charles : Debbuging des 3 premieres phases sur les tests fournis.
  • Noé : Tests 1, 2 et 3 PASSED.
  • Noé : Début de la phase 4 : File de messages.
  • Jean-Charles : Tests 4 et 5 PASSED.
  • Bon Week-end !

Lundi 17 Juin 2019

  • Jean-Charles : Test 6 PASSED.
  • Noé : Tests 7, 8, 9 PASSED.
  • Noé : Implementation des files de messages.
  • Noé : Tests des files de messages.
  • Noé : Tests 10, 11, 12 PASSED.

Mardi 18 Juin 2019

  • Jean-Charles et Noé : Pair programming.
    • Tests 13-17 & 20 PASSED.
  • Fin de la phase 4.
  • Jean-Charles et Noé : Début phase 5, réflexions sur la protection de l'execution.

Mercredi 19 Juin 2019

  • Jean-Charles et Noé : Pair programming.
  • Jean-Charles et Noé : Initialisation du traitant d'intérruption 49.
  • Noé : Implémentation du traitant d'intérruption 49.
    • Switch kernel lançant la bonne primitive système.
  • Noé : Implémentation d'une fonction assembleur init_user qui modifie ESP0 et permet le iret du premier processus user.
  • Noé : Implémentation de la primitive système cons_write.
  • Noé : Lancement du premier processus en mode user qui print hello world.

Jeudi 20 Juin 2019

  • Jean-Charles : début de la phase 6
  • Noé : Modification de init_user pour permettre le premier iret de chaque processus user.
  • Noé : Ajout de la fonction ret_user mappée côté kernel qui permet de gérer le return des processus user.
  • Noé : Implémentation et tests de chaque primitive système.
  • Noé : Passage des tests 1-8, 9-17 et 20 en mode user
    • Problème lors du user_stack_free, que l'on traitera par la suite si le temps le permet.

Vendredi 21 Juin 2019

  • Noé : correction du problème de user_stack_free
    • Phase 5 : le kernel se fait hack par le test 18, on suppose que la pagination pourrait nous aider à corriger ce problème. Comme elle est optionnelle pour les apprentis, on passe à la suite.
  • Fin de la phase 5
  • Jean-Charles : Phase 6 - gestion du keyboard (traitant côté kernel et fonctions côté user).
  • Jean-Charles : Phase 6 - implémentation de cons_read.
  • Jean-Charles & Noé : Phase 6 - Pair programming.
  • Fin de la phase 6
  • Jean-Charles & Noé : Conception de notre interprète de commande.
  • Bon Week-End !

Lundi 24 Juin 2019

  • Jean-Charles & Noé : Mise à jours et intégration du parseur de commandes fourni avec l'ensishell dans notre OS.
  • Jean-Charles & Noé : Commande ps.
  • Noé : Commande test.
  • Jean-Charles : Gestion du backspace et des flèches directionnelles gauche et droite dans la console.
  • Noé : Reffonte visuelle de la console.
    • Avec appel système de changement de couleur
  • Noé : Gestion du CTRL+L dans la console.
  • Noé : Commande clear.
  • Noé : BUGFIX libération de la mémoire lors d'input vide.

Mardi 25 Juin 2019

  • Jean-Charles : Gestion du mode inser.
  • Jean-Charles : Refactoration du code keyboard.
  • Jean-Charles : Gestion des touches begin, end et del.
  • Noé : Amélioration de la commande test (lancement d'un test particulier).
  • Noé : Commandes exit, kill, loop et waitpid pour la gestion des processus.
  • Noé : Commande reboot permettant de redémarrer la machine.
    • Trigger de reboot lors de l'exit du premier shell.
  • Noé : Modification du user_start affichant un écran d'accueil demandant le username.
  • Noé : Commande help affichant la documentation des différentes commandes.
  • Noé : Commande shell-fish lançant un nouveau shell.
    • Avec sauvegarde et restauration de la mémoire vidéo en switchant de shell.

Apports du projet

TODO

Difficultés rencontrées

TODO

Documentation

https://wiki.osdev.org

Sources externes

OSdevhttps://wiki.osdev.org/