Jump to content

JFFS2

JFFS2
Разработчик(и) Дэвид Вудхаус
Полное имя Журналирование файловой системы Flash версии 2
Представлено 23 сентября 2001 г. ( 23 сентября 2001 г. ) с Linux 2.4.10.
Функции
Прозрачный
сжатие
zlib , рубин и rtime
Другой
Поддерживается
операционные системы
Линукс

Журналируемая файловая система Flash версии 2 или JFFS2 — это файловая система с журнальной структурой для использования с устройствами флэш-памяти . [1] Это преемник JFFS . JFFS2 был включен в ядро ​​Linux с 23 сентября 2001 года, когда он был объединен с основной веткой ядра Linux как часть версии ядра 2.4.10. JFFS2 также доступен для некоторых загрузчиков , таких как Das U-Boot , Open Firmware , eCos RTOS, RTEMS RTOS и RedBoot . Наиболее заметное использование JFFS2 происходит из OpenWrt . [2]

В качестве замены JFFS2 были разработаны как минимум три файловые системы: LogFS , UBIFS и YAFFS .

JFFS2 представил:

  • Поддержка флэш-устройств NAND . Это потребовало значительного объема работы, поскольку устройства NAND имеют последовательный интерфейс ввода-вывода и не могут быть отображены в памяти для чтения.
  • Жесткие ссылки. В JFFS это было невозможно из-за ограничений дискового формата.
  • Сжатие. Доступно пять алгоритмов: zlib , Rubin, lzma, rtime и lzo .
  • Лучшая производительность. JFFS рассматривал диск как чисто циклический журнал. Это привело к большому количеству ненужного ввода-вывода. Алгоритм мусора сборки в JFFS2 делает это практически ненужным.

Как и в случае с JFFS, изменения файлов и каталогов «записываются» во флэш-памяти узлов , которые бывают двух типов:

  • inodes : заголовок с метаданными файла, за которым следуют полезные данные файла (если есть). Сжатые полезные данные ограничены одной страницей.
  • прямые узлы: записи каталога, каждая из которых содержит имя и номер индексного дескриптора. Жесткие ссылки представлены как разные имена с одинаковым номером индексного дескриптора. Специальный индексный дескриптор с номером 0 представляет собой разрыв связи.

Как и в случае с JFFS, узлы начинают действовать как действительные при их создании и становятся устаревшими, когда где-то еще создается более новая версия.

Однако в отличие от JFFS здесь нет циклического журнала. Вместо этого JFFS2 работает с блоками — единицей того же размера, что и сегмент стирания флэш-носителя. Блоки заполняются по одному узлами снизу вверх. блок Чистый — это блок, содержащий только допустимые узлы. блок Грязный содержит как минимум один устаревший узел. блок Свободный не содержит узлов. [3]

Сборщик мусора работает в фоновом режиме, превращая грязные блоки в свободные . Это делается путем копирования действительных узлов в новый блок и пропускания устаревших . После этого он стирает грязный блок и помечает его специальным маркером, обозначающим его как свободный блок (во избежание путаницы в случае отключения питания во время операции стирания). [3]

Чтобы сделать выравнивание износа более равномерным и предотвратить чрезмерную концентрацию стираний на преимущественно статических файловых системах, сборщик мусора иногда также использует чистые блоки. [3]

Недостатки

[ редактировать ]

Из-за логической структуры недостатки JFFS2 включают следующее: [3]

  • Все узлы по-прежнему необходимо сканировать во время монтирования . Это происходит медленно и становится все более серьезной проблемой по мере того, как флэш-устройства масштабируются до терабайтного диапазона. Чтобы решить эту проблему, функция Erase Block Summary в версии ядра Linux 2.6.15 была введена (EBS). EBS размещается в конце каждого блока и обновляется при каждой записи в блок, суммируя содержимое блока; во время монтирования EBS читается вместо сканирования целых блоков.
  • Запись большого количества небольших блоков данных может даже привести к отрицательной степени сжатия, поэтому приложениям важно использовать большие буферы записи.
  • Не существует практического способа узнать, сколько полезного свободного места осталось на устройстве, поскольку это зависит как от того, насколько хорошо могут быть сжаты дополнительные данные, так и от последовательности записи.

См. также

[ редактировать ]
  1. ^ «Подсистема устройств памяти (MTD) для Linux» . www.linux-mtd.infradead.org . Проверено 15 мая 2021 г.
  2. ^ «Макет OpenWrt Flash — OpenWrt Wiki» . Wiki.openwrt.org . 18 января 2010 г. Проверено 4 марта 2014 г.
  3. ^ Перейти обратно: а б с д «Профиль программного обеспечения: журналируемая файловая система Flash, версия 2 (JFFS2)» (PDF) . micron.com. 2011. Архивировано из оригинала (PDF) 7 марта 2014 г. Проверено 4 марта 2014 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9db22c4e5c65f6a68dda0dcd504381fc__1695134880
URL1:https://arc.ask3.ru/arc/aa/9d/fc/9db22c4e5c65f6a68dda0dcd504381fc.html
Заголовок, (Title) документа по адресу, URL1:
JFFS2 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)