Jump to content

ЯФФС

ЯФФС
Разработчик(и) Чарльз Мэннинг
Полное имя Еще одна файловая система Flash
Другой
Поддерживается
операционные системы
Android , Firefox OS , Linux , Windows CE , pSOS , RTEMS , eCos , ThreadX , LCOS

Yaffs ( Yet Another Flash File System ) — файловая система , разработанная и написанная Чарльзом Мэннингом для компании Aleph One.

Yaffs1 была первой версией этой файловой системы и была разработана для современных чипов NAND с размером страницы 512 байт (+ 16 байт резервной области (OOB; Out-Of-Band)). Работа началась в 2002 году, и в том же году он был впервые выпущен. Первоначальную работу спонсировали компании Toby Churchill Ltd и Brightstar Engineering.

Эти старые чипы обычно допускают 2 или 3 цикла записи на страницу. [1] YAFFS использует это преимущество: грязные страницы помечаются путем записи в определенный байт резервной области. Новые флэш-чипы NAND имеют страницы большего размера: сначала страницы размером 2 КБ (+ 64 байта OOB), затем 4 КБ, с более строгими требованиями к записи. Каждая страница в блоке стирания (128 килобайт) должна быть записана в последовательном порядке, и каждая страница должна быть записана только один раз. [ нужна ссылка ]

Проектирование системы хранения, в которой применяется правило «однократной записи» («свойство однократной записи»), имеет несколько преимуществ. [2]

YAFFS2 был разработан для размещения этих новых чипов. Он был основан на исходном коде YAFFS1, с основным отличием в том, что внутренние структуры не фиксированы и не допускают размера 512 байт, а порядковый номер блока размещается на каждой записанной странице. Таким образом, старые страницы могут быть логически перезаписаны без нарушения правила «записать один раз». Он был выпущен в конце 2003 года.

YAFFS — это надежная файловая система с журнальной структурой имеет , для которой целостность данных высокий приоритет. Вторичная цель YAFFS — высокая производительность. YAFFS обычно превосходит большинство альтернатив. [3] Он также разработан как портативный и использовался в Linux , WinCE , pSOS , RTEMS , eCos , ThreadX и различных операционных системах специального назначения. Вариант «YAFFS/Direct» используется в ситуациях, когда нет ОС, встроенных ОС или загрузчиков: он имеет ту же основную файловую систему, но более простой интерфейс как с кодом более высокого, так и с более низким уровнем, а также с оборудованием флэш-памяти NAND.

Кодовая база YAFFS лицензируется как по лицензии GPL , так и по лицензиям на каждый продукт, доступным у Aleph One.

Yaffs заблокирован для каждого раздела на высоком уровне, позволяя писать только одному потоку в любой момент времени. [4]

файловой системы YAFFS не существует специальной процедуры, Для инициализации кроме простого стирания флэш-памяти. При обнаружении плохого блока YAFFS следует схеме интеллектуального носителя, отмечая пятый байт резервной области блока. Блоки, помеченные как таковые, с этого момента остаются нераспределенными. [ нужны разъяснения ]

Для записи данных файла YAFFS первоначально записывает целую страницу (кусок в терминологии YAFFS), которая описывает метаданные файла , такие как метки времени , имя, путь и т. д. Новому файлу присваивается уникальный идентификационный номер объекта; каждый фрагмент данных в файле будет содержать этот уникальный идентификатор объекта в запасной области. древовидную структуру YAFFS поддерживает в оперативной памяти физического расположения этих фрагментов. Когда чанк больше не действителен (файл удален или части файла перезаписаны), YAFFS помечает определенный байт в запасной области чанка как «грязный». Когда весь блок (32 страницы) помечен как грязный, YAFFS может стереть блок и освободить место. Когда свободного места в файловой системе мало, YAFFS объединяет группу хороших страниц в новый блок. Затем YAFFS освобождает пространство, используемое грязными страницами в каждом из исходных блоков.

Когда система YAFFS монтирует флэш- устройство NAND , она должна посетить каждый блок, чтобы проверить наличие действительных данных, сканируя его запасную область. Используя эту информацию, он затем восстанавливает резидентную древовидную структуру данных.

YAFFS2 по своей концепции похож на YAFFS1 и использует большую часть того же кода; База кода YAFFS2 поддерживает форматы данных YAFFS1 благодаря обратной совместимости. Основное отличие состоит в том, что YAFFS2 необходимо преодолеть значительные трудности, чтобы удовлетворить требованию «однократной записи», предъявляемому к современной флэш-памяти NAND. [5]

YAFFS2 помечает каждый вновь записанный блок порядковым номером, который монотонно увеличивается . Последовательность фрагментов можно определить по порядковому номеру блока и смещению фрагмента внутри блока. Таким образом, когда YAFFS2 сканирует флэш-память и обнаруживает несколько фрагментов с одинаковыми ObjectID и ChunkNumbers, он может выбрать, какой из них использовать, взяв наибольший порядковый номер. По соображениям эффективности в YAFFS2 также представлена ​​концепция термоусадочных заголовков. Например, когда размер файла уменьшается до меньшего размера, YAFFS1 помечает все затронутые фрагменты как грязные — YAFFS2 не может этого сделать из-за правила «записать один раз». Вместо этого YAFFS2 записывает «сжатый заголовок», который указывает, что определенное количество страниц до этой точки недействительны. Это позволяет YAFFS2 восстановить окончательное состояние файловой системы при перезагрузке системы.

YAFFS2 использует более абстрактное определение флэш-памяти NAND, что позволяет использовать ее с более широким спектром частей флэш-памяти с различной геометрией, правилами обработки плохих блоков и т. д.

Позже в YAFFS2 была добавлена ​​поддержка контрольных точек , которая обходит обычное сканирование монтирования, что позволяет очень быстро монтировать. время монтирования для 2 ГБ составляет 3 секунды. Производительность будет варьироваться, но сообщается, что [ нужна ссылка ]

См. также

[ редактировать ]
  1. ^ Стирание блока стирания флэш-памяти устанавливает все его биты в 1, а запись блока записи (меньшего, чем блок стирания, но, возможно, большего, чем блок файловой системы), устанавливает выбранные биты в 0. Одна или две дополнительные записи в блок могут быть продолжены, если биты, записываемые в 0, ранее были равны 1 в блоке записи. Запись 0 в бит, который уже был 0, рисковала привести к тому, что 0 «прилипнет», т. е. может потребоваться несколько стираний, чтобы вернуть бит в 1. [ нужна ссылка ] Излишне говорить, что такая практика множественной записи обычно не тестировалась и не гарантировалась производителями флэш-памяти и вообще не может работать с технологиями флэш-памяти, отличными от SLC .
  2. ^ Джек Б. Деннис; Гуан Р. Гао; и Вивек Саркар. «Совместные исследования: модели программирования и системы хранения данных для высокопроизводительных вычислений с многоядерными процессорами» .п. 4
  3. ^ «Бенчмарки файловой системы флэш-памяти Linux 3.1» .
  4. ^ «Как работает Yaffs | Yaffs — файловая система Flash для встроенного использования» . yaffs.net . Проверено 18 марта 2024 г.
  5. ^ «Спецификация и замечания по разработке YAFFS 2» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 25a8b76968e447ab6b7f39105a5b267a__1710784380
URL1:https://arc.ask3.ru/arc/aa/25/7a/25a8b76968e447ab6b7f39105a5b267a.html
Заголовок, (Title) документа по адресу, URL1:
YAFFS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)