wiki:stageM2

Version 3 (modified by becoulet, 14 years ago) (diff)

--

M2

Objectif (x86-64/Sparc)[Dimitri]

L'objectif de ce stage est double.

L'étudiant commencera par le portage de l'exo-noyau Hexo sur le processeur x86 64 bits de type CISC. Hexo et MutekH s'exécute 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 et son portage x86. Le stagiaire devra développer les routines en assembleurs et en C des différents services: démarrage du système, handler d'interruption, changement de contexte, mémoire virtuelle, ... Ce code pourra s'inspirer fortement du portage 32 bits existant. L'exécution du système sur une machine muni d'un processeur 64 bits permettra de valider cette partie du stage.

Une fois le portage sur processeurs x86-64 réalisé, l'étudiant aura assez de connaissance sur le fonctionnement de l'exo-noyau Hexo. Il pourra alors réaliser le portage sur processeur Sparc V8. Pour cette partie, la validation sera réalisée sur la plate forme de simulation SoCLib.

Objectif (NFS)[Nicolas et Joel]

L'objectif de ce stage est le développement d'un driver de système de fichier Network File System (NFS) pour la nouvelle couche de système de fichier virtuel de MutekH. Ce driver permettra à MutekH d'accéder aux fichiers au travers du réseau et viendra compléter la collection de systèmes de fichiers déjà supportés: Vfat, Iso9660, RamFS...

Le stagiaire devra prendre en main le projet MutekH et particulièrement la pile réseau (libnetwork) et la gestion du système de fichiers (libvfs) pour développer le driver. Un serveur de fichiers NFS sera mis en place, l'accès aux fichiers depuis une application tournant sur MutekH permettra de valider le stage.

Objectif (Composant réseau SoCLib et le driver MutekH associé)?

L'objectif de ce stage est double. Tout d'abord il s'agit de développer un modèle de périphérique réseau pour la plate forme de prototypage virtuelle SoCLib. Ceci permettra à une simulation tournant sous SocLib? d'accéder au réseau de la machine hôte. Le modèle de simulation utilisera les mécanisme de DMA classiques qui sont déjà employé par d'autres composants. Il exploitera également la technologie TUN/TAP qui permet de créer facilement une interface réseau virtuelle sur la machine hôte. Ceci permettra d'immerger la simulation dans un vrai réseau, les paquets réseau entrant par l'interface réseau du noyau Linux seront reçu par le périphérique SoCLib et inversement.

Le second objectif est le développement du driver associé pour piloter l'interface réseau depuis MutekH qui contient déjà la pile réseau nécessaire et des pilotes pour des périphériques réseaux existants, MutekH étant déjà capable d'accéder au réseau lorsqu'il s'exécute sur certaines plateformes comme les PCs.

Le stage sera validé en exécutant une application sous MutekH capable d'échanger des paquets avec le réseau de la machine hôte.

Objectif (Libe2fs)[Nicolas et Joel]

L'objectif de ce stage est le développement d'un driver pour la famille des systèmes fichiers Ext2, Ext3 et Ext4. Ces systèmes de fichiers sont ceux de base généralement employés par les systèmes d'exploitation GNU/linux.

Le support de ces systèmes s'appuiera sur la bibliothèque existante Ext2fs qui contient l'algorithmique complexe nécessaire. Ce driver permettra à MutekH d'accéder, par exemple, aux fichiers d'une partition GNU/Linux et viendra compléter la collection de systèmes de fichiers déjà supportés: Vfat, Iso9660, RamFS...

Le stagiaire devra prendre en main le projet MutekH et notement la gestion du système de fichiers (libvfs) ainsi que la couche d'accès aux périphériques de blocs pour développer le driver. Il devra également prendre en main et adapter la bibliothèque Ext2fs qui est utilisé pour l'accès aux systèmes de fichiers sous GNU/Linux.

Objectif (Coprocesseur Crypto pour SoCLib et le driver MutekH associé)[Alexandre et Geoffrey]

L'objectif de ce stage est le développement d'un modèle de composants SoCLib de type crypto-processeur et de son driver de périphérique pour MutekH.

Les crypto-processeurs sont des périphériques qui sont capables de chiffrer et de déchiffrer des données en mémoire par des opérations DMA. Les algorithmes de chiffrement sont un élément clef de la sécurité et s'implémentent particulièrement bien en matériel. Ces crypto-processeurs permettent de soulager les processeurs centraux de la machine pour les opérations cryptographiques et sont de ce fait très employés dans les SoC.

Le stagiaire devra définir et le jeu de registre et les automates du nouveau périphérique avant de réaliser son implémentation. Il s'agit d'étudier les mécanismes (DMA, IRQ, ...) à implémenter pour permettre la collaboration entre le logiciel et le matériel qui s'échangeront les données à traiter. Parallèlement le développement du driver de périphérique pour MutekH et sont intégration à la libcrypto qui gère déjà des algorithmes logiciels permettra de tester le modèle de composant.

Le stage sera validé en appliquant une série d'opérations cryptographiques à un jeu de données et en comparant les résultats obtenus entre l'implémentation matériel et logiciel d'un même algorithme. Ce stage n'implique pas nécessairement le développement ou la compréhension profonde des différents algorithmes cryptographiques dont l'implémentation existe déjà sous forme de code libre.

Objectif (Driver de MMU pour ARM9 et boot sur GP32)[Dimitri]