Projet GELATO: Optimisation de Linux sur architectures IA-64
Développement sous EFI sur architecture IA-64
Matthieu Delahaye - SMIG, ESIEE
Au demarrage, un systeme d'exploitation utilise des fonctions
d'entree/sortie bas niveau afin de s'initialiser. Les plus connues
permettent d'afficher des caracteres a l'ecran et lire des donnees sur
le disque dur. Ces fonctions sont directement fournies par la machine
hote et appartiennent a un ensemble de mecanismes appele "firmware".
Il est appele aussi sur l'architecture PC le BIOS (Basic Input Output
System). Les fonctions fournies par le BIOS depuis les premiers PCs
ont sensiblement augmente pour s'adapter aux nouveaux peripheriques,
mais est devenu inaproprie face aux besoins actuels. Dand le cadre du
programme "Intel Boot Initiative" demarre en 1998, Intel a defini une
nouvelle specification appelee EFI, pour Extensible Firmware
Interface. Les nouvelles platformes IA64 utilisent cette specification
pour l'implementation de leur firmware, qui sera utilisee dans les
futures platformes de type PC d'Intel. Il offre en outre en standard
un interpreteur de commandes permettant d'executer des applications
avant meme le demarrage du systeme d'exploitation. Les applications
deja existantes permettent de mettre a jour le firmware, de
partitionner un disque dur ou tout simplement de charger en memoire un
systeme d'exploitation et de le demarrer.
Cependant, le nombre d'application est tres limite face aux capacites de
EFI. Les principales causes sont:
- la jeunesse de la specification;
- une diffusion encore faible des platformes IA-64;
- l'absence de librairies permettant d'utiliser des fonctions de
haut-niveaux pour faciliter l'implementation d'applications.
La federation GELATO, une federation internationale d'universites et
d'ecoles d'ingenieurs dont l'ESIEE fait partie, est interessee par le
developpement d'applications dans l'environnement EFI pour la
platforme IA-64. Avant tout developpement, il est necessaire
d'acquerir une competence minimum afin de maitriser l'environnement
EFI et de disposer d'un ensemble de librairies pouvant servir
d'exemples d'implementations et de base pour les applications futures.
Il est propose aux etudiants de 4eme annees d'effectuer cette prise en
main dans le cadre de leur etude de cas.
Objectifs de l'etude de cas
- Prise en main et validation de la chaine de developement (Ensemble
des procedes utilises pour executer une application en partant
uniquement de ses fichiers sources). Des fichiers sources sont deja
disponibles pour effectuer des tests.
- Etre capable d'utiliser a partir d'un source C une fonction fournie
par EFI et de l'executer dans l'environnement EFI.
- Etre capable de developper des fonctions de haut-niveau a partir des
fonctions EFI dans les domaines suivants: Console (Gestion des
entrees clavier et affichage de chaine de caracteres. Une adaptation
de la librairie ncurses est envisageable), Reseau (Envoi et
Reception de paquets reseaux niveau 2. Un portage de l'API socket en
mode raw puis IP est envisageable), Peripheriques de Stockage
(Lecture et ecriture de fichiers sur des partitions FAT16 dans un
premier temps, Ext2 si possible). Les applications utilisant ses
fonctions s'executeront sous l'environnement EFI.
Environnement de developement
- Les etudiants utiliseront les PC sous Debian GNU/Linux en salles
banalisees.
- Deux plateformes IA-64 seront mis a disposition pour effectuer les
tests.
Résultats attendus
Afin d'assurer la perennite des travaux, une documentation precise
permettant d'etablir le savoir-faire acquis ainsi que la reutilisation
des travaux effectues primera sur des developements pousses, inacheves
et non documentes. Pour de amples informations sur EFI:
http://www.intel.com/technology/efi/
Contact
Matthieu Delahaye, SMIG, ESIEE, bureau 5056