Offre de stage – Gestion de la mémoire flash sous Linux

Exploration et amélioration des technologies de gestion de la mémoire flash sous Linux

Note: Cette offre a été pourvue. Nous ne recherchons plus de stagiaire sur cette thématique. Nos futures offres de stage seront publiées sur notre page carrières.

Penguin worksLe noyau Linux ainsi que les chargeurs de démarrage tels que U-Boot et Barebox supportent les mémoires Flash de type NOR ou NAND au travers d’un sous-système appelé MTD et de systèmes de fichiers spécialisés. Ce type de mémoire est extrêmement utilisé dans le monde de l’embarqué, et il revêt pourtant des caractéristiques qui rendent son utilisation délicate: l’usure des blocs de stockage qui deviennent
inutilisables au fil des écritures. Cette caractéristique des mémoires Flash nécessite une gestion relativement élaborée de ces périphériques (détection et correction des erreurs, répartition équitable des écritures, remplacement des blocs défectueux).

L’objectif de ce stage est de :

  1. Explorer l’existant. Comprendre comment les mémoires Flash fonctionnent au niveau matériel, comment elles sont gérées par le sous-système MTD du noyau, par le sous-système UBI ainsi que par les différents systèmes de fichiers pour Flash (JFFS2, YAFFS, LogFS et UBIFS), comprendre comment les mécanismes de CRC et de détection/marquage des blocs en erreur, de cleanmarkers fonctionnent, les interactions entre chargeur de démarrage (U-Boot / Barebox) et le noyau. Étudier dans quel mesure des systèmes de fichiers en lecture seule tels que SquashFS peuvent être utilisés sur une Flash de manière fiable.
  2. Améliorer l’existant. Selon les observations effectuées à l’étape 1, proposer des améliorations ou corrections aux différents projets concernés. L’utilisation fiable de SquashFS au-dessus d’une mémoire Flash, c’est à dire en tenant compte des blocs en erreur détectés, pourra être l’une des améliorations possibles.
  3. Documenter l’existant. La phase d’exploration pourra donner lieu à la rédaction d’articles de blogs ou dans un magazine, ou de présentations orales lors de conférences spécialisées du monde Linux embarqué.

L’intégralité des travaux effectués pendant le stage sera publié sous licence libre: code et documentation.

Selon les intérêts du candidat et la progression sur le sujet du stage, le stage pourra être étendu à d’autres thématiques liées à Linux embarqué.

Qualités et compétences requises :

  • Autonomie, recherche d’informations et de ressources sur le Web, connaissance minimale du fonctionnement des communautés Logiciel Libre / Open Source.
  • Développement en C sous Linux
  • Connaissance générale du fonctionnement d’un système Linux
  • De préférence, un intérêt pour le bas niveau et le support du matériel
  • Aptitude pour la rédaction d’articles techniques et pour la présentation en public de sujets techniques, en particulier lors de conférences. Bonne maîtrise de l’anglais oral et écrit.

Informations diverses

  • Durée du stage: 4 mois ou plus, suivant la disponibilité de chacun. Le stage pourrait commencer dès la fin de 2010, et se poursuivre jusqu’à la rentrée 2011.
  • Préférence pour les étudiants en dernière année d’études, dans la perspective d’un recrutement en CDI à l’issue du stage.
  • Lieu: le stage aurait lieu soit en région toulousaine, soit dans un contexte de télé-travail en France.
  • Rémunération: 800 EUR mensuels. Prime en fin de stage en fonction des résultats.
  • Contact: envoyer un CV et une lettre de motivation à notre adresse jobs.