Projet système PC : 2018 - DARBON Bertrand, MOTTET Emilien

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet INAGOS
Cadre Projet système

Équipe Bertrand Darbon, Emilien Mottet
Encadrants Julie Dumas , Gregory Mounie, Patrick Reignier


Présentation

L'objectif du projet système est le développement du noyau d'un OS compatible avec une architecture INTEL.

Notre +

  • Affichage de texte en couleur
  • Tests automatisés grâce à gitlab-ci

PSYSDarbonMottetScreen1.png

  • Création/adpation de patches pour ebuild (gentoo package) (coccinelle-1.0.6,bochs-2.6.9) [1], je projète de soumettre mes patches très prochainement
  • Contribution open-source : pull request merged sur le hook que nous utilisons [2]
  • Code respectant le coding style C/C++ de google en utilisant clang-format comme le noyau linux.

Journal de bord

Semaine 1

07 juin

  • Gestion de l'affichage à l'écran
  • Copie des affichages à l'écran dans un fichier externe
  • Début de mise en place de tests personnalisés

08 juin

  • Correction de bugs sur l'affichage
  • Amélioration de l'écriture dans un fichier
  • Amélioration des tests personnalisés
  • Automatisation des tests
  • Gestion du temps & affichage de la date à l'écran
  • Ajout de la fonction de changement de contexte & tests associés
  • Correctif sur l'outil de build (Makefile)

09 juin

  • Correctif sur l'outil de build (Makefile)
  • Correctif sur les tests automatisés

10 juin

  • Légère réorganisation du code

Semaine 2

11 juin

  • Correctif sur l'affichage à l'écran
  • Début de l'ordonanncement à 2 processus
  • Correctifs sur le changement de contexte

12 juin

  • Ajout des premières primitives systèmes
  • Ajout de tests sur l'ordonnanceur

13 juin

  • Ajouts de primitives systèmes
  • Ajouts de tests sur les primitives systèmes
  • Gestion de couleur pour l'affichage à l'écran
  • Début de gestion des processus fils
  • Mise en place d'un formatage unique du code source
  • Lancement des tests fournis en mode noyau

14 juin

  • Automatisation du formatage du code source
  • Correctif sur la gestion de la mémoire
  • Correctif sur l'outil de build
  • Ajout de tests sur les primitives systèmes
  • Début de l'implémentation sur les files de messages

15 juin

  • Correctif sur les tests automatisés
  • Correctifs liés aux tests fournis
    • Changement de priorité
    • Fuites mémoires
    • Valeurs retours des processus
  • Ajout du blocage des processus sur file de messages pleine

Semaine 3

18 juin

  • Correctif sur la terminaison des processus
  • Correctif sur l'attente de fin d'un processus
  • Ajout de la suppression d'une file de message
  • Ajout du blocage lors de la lecture d'un message dans une file vide

19 juin

  • waitpid: error if waiting -1 without children (Bertrand Darbon)
  • bug test6 link zombie brother (Emilien Mottet)
  • kernel: fix stack size (Bertrand Darbon)
  • re-enable tests (Bertrand Darbon)
  • Changement des structures de données dans la gestion des files de messages

20 juin

  • Changement de structure de données dans la gestion des files de messages
  • Correctif sur la suppression d'un processus
  • Correctif sur la gestion de la mémoire dans les files de messages
  • Correctif de priorité dans les files de messages
  • Nettoyage du code
  • Validation des files de messages

21 juin

  • Validation de la phase 4
  • Correctif sur la pile utilisateur d'un processus
  • Correctif sur la gestion mémoire des processus

22 juin

  • Début du mode utilisateur

Semaine 4

25 juin

  • Ajout de l'affichage à l'écran en mode utilisateur
  • Correctifs sur les piles processus en mode utilisateur
  • Correctifs sur les interruptions en mode utilisateur
  • Correctifs sur la gestion mémoire dans les files de messages
  • Validation de la phase 5

PSYSDarbonMottetScreen2.png

26 juin

  • Début de la gestion du clavier

Réalisation des différentes phases

Phase 1

100 %

Phase 2

100 %

Phase 3

100 %

Phase 4

100 %

Phase 5

100 %

Phase 6

99 %

Documentation

Outils utilisés

  • visual studio code, emacs
    • spacemacs vim + emacs = spacemacs <3
      • autocompletion avec globals gtags pour les tags et ycmd (youcompleteme) pour une autocomplétion intégrer dans company. Nous sommes arrivé à avoir une intégration du projet parfaite dans notre editeur de texte
      • un mode très utile
  • gdb
    • utilisation de script gdb tel que .gdbinit `$ man gdbinit`
  • Qemu
  • Git