УБИФС - UBIFS
Разработчики) | Nokia с помощью Сегедский университет |
---|---|
Полное имя | Несортированная файловая система блочного изображения |
Введено | 2008Ядро Linux 2.6.27 | с
Структуры | |
Содержимое каталога | B + деревья |
Пределы | |
Допустимые символы в именах файлов | Любой байт, кроме NUL и косой черты "/"[нужна цитата ] |
Функции | |
Вилки | да |
Атрибуты | да |
Разрешения файловой системы | POSIX |
Прозрачное сжатие | да |
Другой | |
Поддерживается операционные системы | Linux |
УБИФС (Файловая система UBI, более полно Несортированная файловая система блочного изображения) это файловая система flash для неуправляемого флэш-память устройств.[1]UBIFS работает поверх UBI (несортированное изображение блока) слой,[2] который сам находится на вершине устройство памяти (MTD) слой.[3]Файловая система разработана инженерами Nokia с помощью Сегедский университет, Венгрия. Серьезная разработка началась в 2007 году, когда был выпущен первый стабильный выпуск Ядро Linux 2.6.27 в октябре 2008 г.[4]
Два основных различия между UBIFS и JFFS2 заключаются в том, что UBIFS поддерживает кэширование записи,[5] а UBIFS ошибается с пессимистической стороной расчета свободного места.[6] UBIFS имеет тенденцию работать лучше, чем JFFS2 для больших устройств NAND FLASH.[7] Это следствие целей дизайна UBIFS:[8] более быстрый монтаж, более быстрый доступ к большим файлам и повышенная скорость записи. UBIFS также сохраняет или улучшает JFFS2 сжатие на лету, возможность восстановления и отказоустойчивость.[8] Сжатие данных на лету UBIFS позволяет zlib (сдувать алгоритм), LZO или же Zстандарт.
UBIFS хранит индексы во флэш-памяти, тогда как JFFS2 хранит индексы файловой системы в памяти.[9] Это напрямую влияет на масштабируемость JFFS2, поскольку таблицы необходимо перестраивать каждый раз при монтировании тома. Кроме того, таблицы JFFS2 могут потреблять достаточно системной оперативной памяти, поэтому некоторые изображения могут оказаться непригодными для использования.
UBI
UBI (Несортированные изображения блоков)[10] это уровень управления блокировкой стирания для флэш-память устройств. UBI служит двум целям: отслеживание сбойных блоков флэш-памяти NAND и обеспечение выравнивание износа. При выравнивании износа стираемые и записываемые данные распределяются по всему флеш-устройству. UBI представляет блоки логического стирания на более высокие уровни и сопоставляет их с блоками физического стирания. UBI был написан специально для UBIFS, чтобы UBIFS не имел дело с выравниванием износа и плохими блоками. Однако UBI также может быть полезен с сквош и NAND flash; сквош не знает о плохих блоках флэш-памяти NAND.
В документации UBI объясняется, что это не полный слой флеш-перевода (FTL). Хотя FTL также обрабатывает плохие блоки и выравнивание износа, интерфейс FTL представляет собой блочное устройство с небольшими (обычно 512 байт) секторами, которые могут быть записаны полностью независимо. Напротив, интерфейс UBI напрямую предоставляет стираемые блоки и программируемые страницы (которые имеют разные размеры и намного больше, чем типичные секторы блочного устройства), а файловые системы, использующие UBI, должны знать о размерах и ограничениях на то, как блоки должны стираться перед записью .
UBI в некотором смысле аналогичен Диспетчер логических томов. При типичном использовании вместо разделения флэш-памяти на фиксированные области одно устройство UBI охватывает всю флэш-память (за исключением, возможно, нескольких страниц в фиксированных местах, зарезервированных для загрузчика), и в устройстве UBI создается несколько томов. Это позволяет распределить выравнивание износа по всей флеш-памяти, даже если одни тома записываются чаще, чем другие. Объемы UBI могут быть статический (которые содержат целый файл или изображение, записанное один раз и защищенное CRC-32 с помощью UBI) или динамичный (которые содержат файловую систему чтения-записи, которая отвечает за целостность своих данных). Единственная файловая система, которая напрямую поддерживает UBI, - это UBIFS, но с использованием клейби
можно эмулировать устройство MTD, которое затем можно использовать для запуска других файловых систем флэш-памяти, таких как JFFS2 и YAFFS, и используя убиблк
можно эмулировать блочные устройства, которые могут запускать распространенные файловые системы, такие как Ext4.
Fastmap
UBI был дополнен в Linux 3.7 поддержкой fastmap.[11][12] Fastmap поддерживает дисковую версию информации, ранее созданной в памяти, путем сканирования всего флеш-устройства. Код возвращается к предыдущему механизму полного сканирования сбоев, а старые системы UBI просто игнорируют информацию fastmap.
Смотрите также
Рекомендации
- ^ Джонатан Корбет (2 апреля 2008 г.). «УБИФС». LWN.net. Получено 18 декабря 2016.
- ^ "UBIFS - Файловая система UBI: Большое красное примечание". 22 января 2015 г.. Получено 18 декабря 2016.
Он не работает на блочных устройствах. UBIFS был разработан для работы поверх raw flash.
- ^ "UBIFS - Файловая система UBI: Обзор". 22 января 2015 г.. Получено 18 декабря 2016.
- ^ Артем Битюцкий (27 марта 2008 г.). «UBIFS - новая файловая система flash». Получено 18 декабря 2016.
- ^ «UBIFS - файловая система UBI: поддержка обратной записи». 22 января 2015 г.. Получено 18 декабря 2016.
- ^ "Часто задаваемые вопросы и HOWTO по 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 fastmap пробивается на магистраль». Архивировано из оригинал 15 ноября 2012 г.. Получено 18 декабря 2016.
- ^ Ричард Вайнбергер (24 сентября 2012 г.). "UBI: запрос Fastmap на включение (v18)". Получено 18 декабря 2016.