JFFS2

Cet article manque de repères chronologiques ou de dates (mars 2024).

JFFS2

JFFS2 (anglais : Journaling Flash File System version 2) est un système de fichiers journalisé utilisé sur les systèmes à mémoire flash. Il a succédé [Quand ?] à JFFS, et ne sera finalement pas remplacé par JFFS3 mais par UBIFS[1]. JFFS2 a été inclus dans le noyau Linux à partir de 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é.

Références

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

Voir aussi

Liens externes

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.