Projet système PC : 2019 - JULIEN Tristan, LANUSSE Quentin
De Ensiwiki
Révision de 18 juin 2019 à 14:48 par Lanusseq (discussion | contributions) (→Phases de développement)
![]() | |
---|---|
Titre du projet | BambinOS |
Cadre | Projet système
|
Équipe | Quentin LANUSSE, Tristan JULIEN |
Encadrants | Gregory Mounie, Patrick Reignier, Yves Denneulin |
Sommaire
- 1 Présentation
- 2 Equipe
- 3 Planning
- 4 Phases de développement
- 4.1 Phase 1 : prise en main de l'environnement
- 4.2 Phase 2 : Création et lancement de processus de niveau noyau
- 4.3 Phase 3 : Ordonnancement, création dynamique et terminaison de processus de niveau noyau
- 4.4 Phase 4 : Gestion des communications et synchronisation de processus de niveau noyau
- 4.5 Phase 5 : Séparation des espaces mémoire noyau et utilisateur : gestion de processus utilisateur
- 4.6 Phase 6 : Gestion du clavier et implémentation d'un pilote de console
- 4.7 Phase 7 : Implémentation d'un interprète de commandes
- 5 Journal de bord
- 6 Démonstration
- 7 Difficultés rencontrées
Présentation
L'objectif du projet système est la réalisation d'un noyau de système d'exploitation sur une architecture Intel x86 et, pour la première fois en 2019, le risc-v 64 bits. Les concepts principaux à mettre en oeuvre sont :
- la création et l'exécution des processus ;
- leur synchronisation ;
- leur ordonnancement ;
- la gestion des entrées/sorties (clavier, écran) ;
- l'implémentation d'un interprète de commandes.
Equipe
- Tristan Julien (filière apprentissage)
- Quentin Lanusse (filière apprentissage)
Planning
Planning prévisionnel
Planning effectif
Phases de développement
Phase 1 : prise en main de l'environnement
Phase 2 : Création et lancement de processus de niveau noyau
Phase 3 : Ordonnancement, création dynamique et terminaison de processus de niveau noyau
Phase 4 : Gestion des communications et synchronisation de processus de niveau noyau
Phase 5 : Séparation des espaces mémoire noyau et utilisateur : gestion de processus utilisateur
Phase 6 : Gestion du clavier et implémentation d'un pilote de console
Phase 7 : Implémentation d'un interprète de commandes
Journal de bord
Semaine 1
05 Juin 2019
- Clonage du projet
- Prise en main de l'environnement
- Insertion du code de gestion d'affichage fait en Logiciel de Base dans le projet
- Début de création des processus
06 Juin 2019
- Modification des processus
- Essayer de lancer une fonction
- Blocages sur la gestion des piles
- Mise en place du context_switch
- Découverte de l'environnement de débuggage
07 Juin 2019
- Fonctionnement du context_switch avec une table des processus statique
- Début d'utilisation de la queue des processus
- Création du logo de BambinOS
11 Juin 2019
- Modification et finalisation (pour la phase 2) de l'utilisation des processus avec une queue (queue de processus activables + pointeur vers le processus actif)
- Gestion du timer
- Gestion des interruptions pour changer de processus
→ Fin de la phase 2
12 Juin 2019
- Gestion automatique des PIDs
- Gestion de l'endormissement d'un processus pour une durée déterminée : wait_clock (Phase 4)
13 Juin 2019
- Fonctions de terminaison des processus : exit, kill
- Primitives de gestion des processus : getprio, chprio, getpid
- Gestion de la filiation entre processus, et implémentation de waitpid
→ fin de la phase 3
14 Juin 2019
- Correction de code pour passage de tests côté Kernel
→ les 6 premiers tests passent
15 Juin 2019
- Correction de code pour passage de nouveaux tests
- Refacto du code pour passage du test 8 (début)