БИФС
Разработчик(и) | Nokia при поддержке Университета Сегеда |
---|---|
Полное имя | Файловая система несортированных блочных изображений |
Представлено | 2008 год ядром Linux 2.6.27 | с
Структуры | |
Содержимое каталога | B+ деревья |
Пределы | |
Разрешенное имя файла персонажи | Любой байт, кроме NUL и косой черты "/" [ нужна ссылка ] |
Функции | |
Вилки | Да |
Атрибуты | Да |
Файловая система разрешения | Разрешения Unix |
Прозрачный сжатие | Да |
Другой | |
Поддерживается операционные системы | Линукс |
UBIFS ( UBI File System , более полно — Unsorted Block Image File System ) — это файловая система флэш-памяти для неуправляемых устройств флэш-памяти . [1] UBIFS работает поверх слоя UBI (несортированного изображения блока), [2] который сам по себе находится поверх уровня устройства памяти (MTD). [3] Файловая система разработана инженерами Nokia при поддержке Университета Сегеда , Венгрия. Серьезная разработка началась в 2007 году, когда в октябре 2008 года была выпущена первая стабильная версия ядра Linux 2.6.27. [4]
Два основных различия между UBIFS и JFFS2 заключаются в том, что UBIFS поддерживает кэширование записи. [5] и UBIFS ошибается в пессимистическом расчете свободного пространства. [6] UBIFS имеет тенденцию работать лучше, чем JFFS2, для больших устройств флэш-памяти NAND . [7] Это следствие целей проектирования UBIFS: [8] более быстрое монтирование, более быстрый доступ к большим файлам и улучшенная скорость записи. UBIFS также сохраняет или улучшает сжатие JFFS2 «на лету», возможность восстановления и устойчивость к сбоям питания. [8] Сжатие данных UBIFS «на лету» позволяет использовать zlib ( алгоритм дефляции ), LZO или Zstandard .
UBIFS хранит индексы во флэш-памяти, тогда как JFFS2 хранит индексы файловой системы в памяти. [9] Это напрямую влияет на масштабируемость JFFS2 , поскольку таблицы необходимо перестраивать каждый раз при монтировании тома. Кроме того, таблицы JFFS2 могут занимать достаточно системной оперативной памяти, поэтому некоторые изображения могут оказаться непригодными для использования.
ГДЕ
[ редактировать ]UBI ( несортированные блочные изображения ) [10] — это уровень управления блоками стирания для устройств флэш-памяти . UBI служит двум целям: отслеживает сбойные блоки флэш-памяти NAND и обеспечивает выравнивание износа . Функция выравнивания износа распределяет операции стирания и записи по всему флэш-устройству. UBI представляет блоки логического стирания на более высоких уровнях и сопоставляет их с блоками физического стирания. UBI был написан специально для UBIFS, чтобы UBIFS не приходилось заниматься выравниванием износа и бэд-блоками. Тем не менее, UBI также может быть полезен при работе со сквошами и флэш-памятью NAND; sqashfs не знает о сбойных блоках флэш-памяти NAND.
В документации UBI поясняется, что это не полный уровень трансляции флэш-памяти (FTL). Хотя FTL также обрабатывает поврежденные блоки и выравнивает износ, интерфейс, предоставляемый FTL, представляет собой блочное устройство с небольшими (обычно 512 байт) секторами, которые можно записывать совершенно независимо. Напротив, интерфейс UBI напрямую предоставляет блоки стирания и программируемые страницы (которые имеют разные размеры и намного больше, чем типичные секторы блочных устройств), а файловые системы, использующие UBI, должны знать размеры и ограничения на то, как блоки должны быть удалены перед записью. .
UBI в некотором смысле аналогичен диспетчеру логических томов . При типичном использовании вместо разделения флэш-памяти на фиксированные области одно устройство UBI охватывает всю флэш-память (за исключением, возможно, нескольких страниц в фиксированных местах, зарезервированных для загрузчика), и внутри устройства UBI создается несколько томов. Это позволяет распределить выравнивание износа по всей флэш-памяти, даже если некоторые тома записываются чаще, чем другие. Тома UBI могут быть статическими (которые содержат целый файл или изображение, записанное один раз и защищенное UBI CRC-32) или динамическими (которые содержат файловую систему для чтения и записи, которая отвечает за целостность своих данных). Единственная файловая система, которая напрямую поддерживает UBI, — это UBIFS, но при использовании gluebi
можно эмулировать устройство MTD, которое затем можно использовать для запуска других файловых систем флэш-памяти, таких как JFFS2 и YAFFS, и используя ubiblk
можно эмулировать блочные устройства, которые могут работать с обычными файловыми системами, такими как Ext4.
Фастмап
[ редактировать ]В Linux 3.7 UBI был дополнен поддержкой fastmap. [11] [12] Fastmap сохраняет на диске версию информации, ранее созданной в памяти, путем сканирования всего флэш-устройства. Код возвращается к предыдущему механизму полного сканирования на предмет сбоев, а старые системы UBI просто игнорируют информацию fastmap.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Джонатан Корбет (2 апреля 2008 г.). «ЮБИФС» . LWN.net . Проверено 18 декабря 2016 г.
- ^ «UBIFS – Файловая система UBI: Большая красная заметка» . 22 января 2015 года . Проверено 18 декабря 2016 г.
Он не работает поверх блочных устройств. UBIFS был разработан для работы поверх необработанной флэш-памяти.
- ^ «UBIFS – Файловая система UBI: Обзор» . 22 января 2015 года . Проверено 18 декабря 2016 г.
- ^ Артем Битюцкий (27 марта 2008 г.). «UBIFS – новая файловая система флеш-памяти» . Проверено 18 декабря 2016 г.
- ^ «UBIFS – Файловая система UBI: поддержка обратной записи» . 22 января 2015 года . Проверено 18 декабря 2016 г.
- ^ «Часто задаваемые вопросы и инструкции по UBIFS: почему df сообщает, что слишком мало свободного места?» . 18 декабря 2015 года . Проверено 18 декабря 2016 г.
- ^ «UBIFS – Файловая система UBI: Масштабируемость» . 22 января 2015 года . Проверено 18 декабря 2016 г.
- ^ Перейти обратно: а б Битюцкий Артем; Хантер, Адриан (24 сентября 2008 г.). «Файловая система UBIFS» (PDF) . п. 9.
- ^ Адриан Хантер (27 марта 2008 г.). «Краткое введение в проектирование UBIFS» (PDF) .
- ^ «UBI – Несортированные блочные изображения» . 22 января 2015 года . Проверено 18 декабря 2016 г.
- ^ Томас Петаццони (3 октября 2012 г.). «Быстрая карта UBI выходит на основную ветку» . Архивировано из оригинала 15 ноября 2012 года . Проверено 18 декабря 2016 г.
- ^ Ричард Вайнбергер (24 сентября 2012 г.). «UBI: запрос Fastmap на включение (v18)» . Проверено 18 декабря 2016 г.
Внешние ссылки
[ редактировать ]- Домашняя страница
- Сегедский университет: UBIFS. Архивировано 28 сентября 2013 г. на Wayback Machine.
- Эксперименты UBIFS на ноутбуке XO ( один ноутбук на ребенка )
- Файловая система UBIFS