Projets-2015-2016-Portage Bossa

= Présentation du projet =

Qu’est-ce-que BOSSA ?
BOSSA est un generateur d’ordonnanceur. L’ordonnanceur choisit l’ordre dans lequel les processus vont s’executer. La plupart du temps, un processus n’est pas execute d’une traite mais morceau par morceau. Cela permet d’allouer du temps a tour de role a tous les processus. BOSSA permet de choisir selon quels parametres l’ordonnanceur fonctionnera (temps alloue a chaque processuer, priorite donnee...) Les ordonnanceurs generes fonctionnent actuellement sur les kernels Linux 2.4 et 2.6. Ces deux versions sont tres 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 - 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 - Etude du rapport du portage de Bossa vers Linux 2.6.32 http://air.imag.fr/index.php/File:Bossa2.6Rapport.pdf - 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 :

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

Semaine 3 (du 8 au 12 Février 2016)
- Etude du bug du compilateur 2.6.32 - Installation de BOSSA

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 - 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 -Mise à jour du manager -Mise à jour du traceur -Démarrage du Bossa-Kernel

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