Accueil🇫🇷Chercher

JFFS2

JFFS2 (Journaling Flash File System version 2) est un système de fichiers journalisé utilisé sur les systèmes à mémoire flash. Il succède à JFFS, et ne sera finalement pas remplacé par JFFS3 mais par UBIFS[1]. JFFS2 a été inclus dans le noyau Linux depuis la version 2.4.10.

Caractéristiques

JFFS2 a apporté :

  • le support des systèmes flash NAND. Cela a impliquĂ© une quantitĂ© de travail considĂ©rable Ă©tant donnĂ© que les systèmes NAND ont une interface entrĂ©e/sortie sĂ©quentielle et ne peuvent pas ĂŞtre accessibles en lecture comme de la mĂ©moire.
  • les liens durs. C'Ă©tait impossible dans JFFS Ă  cause des limitations du format sur disque.
  • la compression. Trois algorithmes sont disponibles : zlib, rubin et rtime.
  • une meilleure performance. JFFS traitait le disque comme un journal purement circulaire. Cela gĂ©nĂ©rait une grande quantitĂ© de communications superflues. L'algorithme du ramasse-miettes dans JFFS2 Ă©vite cela.

Conception

Comme avec JFFS, les changements apportés aux fichiers et répertoires sont enregistrés dans la flash dans des nodes, dont il existe deux types:

  • les inodes : un en-tĂŞte avec des mĂ©tadonnĂ©es, suivie des donnĂ©es du fichier (s'il y en a). Les donnĂ©es compressĂ©es sont limitĂ©es Ă  une page.
  • les nodes dirent : directory entries, (entrĂ©es de rĂ©pertoire) possĂ©dant chacune un nom et un numĂ©ro d'inode. Les liens durs sont reprĂ©sentĂ©s comme diffĂ©rents noms avec le mĂŞme numĂ©ro d'inode. Le numĂ©ro spĂ©cial d'inode 0 reprĂ©sente un non-lien. Comme avec JFFS, les nĹ“uds commencent comme valides quand ils sont crĂ©Ă©s, et deviennent obsolètes quand une nouvelle version a Ă©tĂ© crĂ©Ă©e ailleurs.

Toutefois, contrairement à JFFS, il n'y a pas de journal circulaire. Au lieu de cela, JFFS2 traite des blocs, une unité de la même taille que le segment d'effacement du média flash. Les blocs sont remplis, un par un, avec des nœuds de bas en haut. Un bloc propre est un bloc qui ne contient que des nœuds valides. Un bloc sale contient au moins un nœud obsolète. Un bloc libre ne contient aucun nœud.

Le ramasse-miettes tourne en tâche de fond, changeant les blocs sales en blocs libres. Il le fait en copiant les nœuds valides à la tête du journal et en sautant les nœuds obsolètes. Ceci fait, il efface le bloc et le marque pour empêcher toute confusion si l'alimentation est coupée durant une opération d'effacement.

Pour répartir l'usure sur la mémoire flash et empêcher les effacements d'être trop concentrés sur des systèmes de fichiers principalement statiques, le ramasse-miettes consommera occasionnellement des blocs propres.

Inconvénients

  • Tous les nĹ“uds doivent ĂŞtre examinĂ©s au moment du montage. C'est d'autant plus lent que le mĂ©dia flash a une grande capacitĂ©.

Voir aussi

Articles connexes

Références

  1. (en) Article de KernelTrap sur JFFS3 expliquant les raisons de l'abandon de JFFS3

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.