Projets-2015-2016-Portage Bossa

From air
Jump to navigation Jump to search

Présentation du projet

Qu’est-ce-que BOSSA ?

BOSSA est un générateur d’ordonnanceur. L’ordonnanceur choisit l’ordre dans lequel les processus vont s’exécuter. La plupart du temps, un processus n’est pas exécuté d’une traite mais morceau par morceau. Cela permet d’allouer du temps à tour de rôle à tous les processus. BOSSA permet de choisir selon quels paramètres l’ordonnanceur fonctionnera (temps alloué à chaque processus, priorité donnée...) Les ordonnanceurs genérés fonctionnent actuellement sur les kernels Linux 2.4 et 2.6. Ces deux versions sont très vieilles, datant respectivement de 2001 et 2003.

Portage de BOSSA

Le but du projet est de rendre les ordonnanceurs de BOSSA utilisables sous les versions les plus recentes : 4.x, datant de 2015.

Actuellement, les sources de BOSSA sont deja portees vers la version 4.x. Elles utilisent un langage de programmation specifique et propre a BOSSA (DSL). Il nous faut donc valider la chaine de compilation qui traduira ce code DSL en un code comprehensible par le système d’exploitation, probablement en C.

Il faut egalement mettre a jour l’executable de BOSSA pour qu’il fonctionne sous les versions plus recentes de l’OS.

Parties prenantes du projet

L'équipe chargée de la réalisation du projet est constituée de :

Tuteurs Polytech

- Monsieur Nicolas PALIX

- Monsieur Didier DONSEZ

Etudiants RICM5

- Ombeline ROSSI (Chef du projet)

- Longfei YAO (Responsable Logistique)

- Eric Michel FOTSING (Responsable Technique)

Etudiants DUT

Aucun

Durée prévisionnelle et lieu de réalisation du projet

Le projet est totalement realise a Polytech’Grenoble, sur la periode de mi-janvier à mi-mars.

Livrables et outils de suivie du projet

Espace Github

Chronograme Waffle.io

Déroulement du projet schedule

Semaine 1 (du 25 au 29 Janvier 2016 )

- Lecture autour de BOSSA

BossaArchitecture.png

Nous observons ici l'architecture de BOSSA.

- Rendez-vous avec M. PALIX pour l'explication détaillée du projet
- Création du Wiki

Semaine 2 (du 1er au 5 Février 2016)

- Mise en place des machines virtuelles 2.6 et 4.3 / 4.4

Ubuntu2.6.png

- Etude du rapport du portage de Bossa vers Linux 2.6.32
   
- Configuration du dépôt git sur mandelbrot
  Pour créer le dépot sur mandelbrot à partir d'une sauvegarde il suffit re renommer le repertoire principale de chaque projet, 
  comme vous pouvez le voir sur la capture suivante : 
  GitServeur.png
  
   Ensuite de se rassurer que l'option bare du fichier config est positionné à true
   - [core]
       repositoryformatversion = 0
       filemode = true
       bare = true
       logallrefupdates = true


- Prise en main de la compilation du noyau Linux
   Notice de compilation du noyau Linux : http://air.imag.fr/index.php/File:CompilationDeLinux.docx
   (Sources : https://fr.opensuse.org/Configurer,_Compiler_et_Installer_un_noyau_Linux_personnalis%C3%A9#Pr.C3.A9paration )
   Les étapes pour compiler Linux
        1. Télécharger le code source du noyau: #git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
         2. Configurer le noyau
             (1) Nettoyage: # make clean ou # make mrproper
             (2)Récupération de la configuration: # make oldconfig
             (3) Configuration: # make menuconfig
         3. Créer l'image finale
             Il est possible de construire divers types d'images binaires de noyau. Nous pouvons compiler une image de noyau complète ou une version compressée de celle-ci; 
             habituellement, on choisit la version compressée ou l'image bzImage, que l'on peut créer en saisissant: #make bzImage
         4. Compiler et installer les modules
             Si, dans la section configuration, nous avons sélectionné des composants devant être intégrés en tant que modules du noyau, il faut maintenant les compiler. 
             Pour compiler les modules, exécutons la commande : #make modules
         5. Amorcer à partir du nouveau noyau
             L'installation des modules terminée, nous pouvons entreprendre une procédure d'installation automatique du noyau pour l'exécutable du noyau. Saisissons simplement : #make install
         6. Réinitialisation du secteur de démarrage
             Il faut maintenant recréer le ram disk initial pour le nouveau noyau, sinon le système ne sera certainement pas capable de redémarrer le nouveau noyau: # mkinitrd ou #mkinitramfs
         7. Redémarrage: # reboot
- Etude du code de BOSSA
   Bossa dossier.png

Semaine 3 (du 8 au 12 Février 2016)

- Etude du bug du compilateur 2.6.32
- Installation de BOSSA
   Bossa install1.png
   Bossa install2.png

Semaine 4 (du 15 au 19 Février 2016)

- Mise à jour des exécutables
- Portage de la version 4.3 vers 4.4 de BOSSA
- Spécifiation des tests

Semaine 5 (du 22 au 26 Février 2016)

- Vacances

Semaine 6 (du 29 Février au 04 Mars 2016)

- Prise en main des outils de traçage des événements Linux
- Prise en main des concepts d'ordonnancement de Linux

Semaine 7 (du 07 au 11 Mars 2016)

- Mise au point sur les événements renvoyés par le kernel BOSSA

EvenementsBossa.png

- Création de la bzImage Linux utilisable via QEmu

Semaine 8 (du 14 au 17 Mars 2016)

- Intégration théorique des tests

Bilan

Travail Réalisé

-Phases de renseignements
-Mise en place du l'environnement de travail
-Portage de Bossa de Linux 4.3 vers 4.5
-Mise à jour du code kernel
-Mise à jour du compilateur
  Bossa install1.png
  Bossa install2.png
-Mise à jour du manager
  Manager.png
-Mise à jour du traceur
  Trace.png
-Démarrage du Bossa-Kernel
  LancementKermel.png

Difficultés rencontrées

-Petit groupe de 3
-Pas de connaissance antérieure
-Matériel
-Code kernel difficile à deboguer malgré des outils de virtualisation (QEmu)

Références

- Site web du projet Bossa
- Codes sources du Noyau Linux