-
-
-
-
-
-
-
HomeSite map
SoC/Offres d'emplois/Stages/2009-2010/ALSOC 6 Print page

Portage du système d'exploitation MutekH/Hexo

sur les processeurs x86-64 bits et Sparc V8

 

CONTEXTE

L’exo-noyau HEXO, développé au LIP6, est destiné à des systèmes multiprocesseurs intégrés sur puce (MP-SOC). Un exo-noyau offre principalement un service d’abstraction du matériel (c’est à dire une API indépendante des spécificités des différents processeurs). On peut développer sur cette API un ensemble de bibliothèques fournissant différents services système de plus haut niveau. La spécificité d'HEXO est qu'il peut supporter des architectures hétérogènes massivement parallèle. HEXO est portable sur des architectures de processeurs entre 8 et 64 bits.

Plusieurs bibliothèques ont été implémentées au dessus de HEXO : une libc, le support de systèmes de fichiers, le support des thread POSIX, une couche réseau TCP/IP, le support des scripts Lua, différents pilotes de périphériques. Cet ensemble constitue le système MutekH. A ce jour MutekH supporte des plates formes matérielles de type IBMPC utilisant des processeurs X86 et des plate-formes multi-processeurs modélisées avec SocLib utilisant des processeurs de type Arm, PowerPc et MIPS. Il supporte également des plate-formes matérielles de type micro-contrôleur.

MutekH est utilisé dans le département SoC du Lip6 dans divers projets de recherche comme Adam, DSX et Tsar. Des informations complémentaires peuvent être trouvées sur les sites WEB des projets SoCLib et MutekH:

 

TRAVAIL PROPOSE

Le stage se déroulera en deux parties:

Le stagiaire commencera par le portage de l'exo-noyau Hexo sur le processeur x86 64 bits, sachant que Hexo et MutekH s'exécutent déjà nativement sur l'architecture intel x86 32 bits classique des PCs.

Ce stage implique la prise en main du code du projet MutekH et plus particulièrement de l'hexo noyau Hexo. Le stagiaire devra développer les routines en assembleurs et en C des différents services : démarrage du système, Gestionnaire d'interruption, changement de contexte, mémoire virtuelle, etc. Ce code pourra s'inspirer fortement du code existant pour l'architecture 32 bits. L'exécution du système sur une machine équipée d'un processeur 64 bits permettra de valider cette partie du stage.

La seconde partie du stage s'appuiera sur les connaissances acquises concernant le fonctionnement et l'arhitecture de l'exo-noyau Hexo, et vise le portage sur processeur Sparc V8. Pour cette partie, la validation sera réalisée sur la plate forme de simulation SoCLib. D'autres processeurs de type RISC similaires sont déjà supportés par MutekH et seront une source d'inspiration pour l'implémentation, mais le système de fenêtrage du processeur Sparc présente une réelle particularité qui ouvre des pistes intéressantes quant à l'optimisation du changement de contexte. C'est clairement cette seconde partie qui donne une dimension recherche au sujet proposé. 

 

ENCADREMENT

L'encadrement de ce stage sera effectué par Dimitri Refauvelet ( Dimitri.refauvelet(at)lip6(.)fr ), sous la responsabilité du professeur Alain Greiner ( alain.greiner(at)lip6(.)fr).

REMUNERATION

Ce stage sera rémunéré pendant toute la durée du stage.

LIP6 LIP6-SoC LIP6 CNRS UPMC