Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

UBIFS

From Wikipedia, the free encyclopedia
Flash file system

UBIFS
Developer(s)Nokia with help ofUniversity of Szeged
Full nameUnsorted Block Image File System
Introduced2008; 17 years ago (2008) withLinux kernel 2.6.27
Structures
Directory contentsB+ trees
Limits
Allowed filename
characters
Any byte except NUL and forward slash "/"[citation needed]
Features
ForksYes
AttributesYes
File system
permissions
Unix permissions
Transparent
compression
Yes
Other
Supported
operating systems
Linux

UBIFS (UBI File System, more fullyUnsorted Block Image File System) is aflash file system for unmanagedflash memory devices.[1]UBIFS works on top of anUBI (unsorted block image) layer,[2] which is itself on top of amemory technology device (MTD) layer.[3]The file system is developed by Nokia engineers with help of theUniversity of Szeged, Hungary. Development began in earnest in 2007, with the first stable release made toLinux kernel 2.6.27 in October 2008.[4]

Two major differences between UBIFS andJFFS2 are that UBIFS supports write caching,[5] and UBIFS errs on the pessimistic side of free space calculation.[6]UBIFS tends to perform better than JFFS2 for largeNAND flash memory devices.[7] This is a consequence of the UBIFS design goals:[8] faster mounting, quicker access to large files, and improved write speeds. UBIFS also preserves or improves uponJFFS2's on-the-fly compression, recoverability and power fail tolerance.[8] UBIFS's on-the-fly data compression allowszlib (deflate algorithm),LZO orZstandard.

UBIFS stores indexes in flash whereasJFFS2 stores filesystem indexes in memory.[9] This directly impacts the scalability ofJFFS2 as the tables must be rebuilt every time the volume is mounted. Also, the JFFS2 tables may consume enough system RAM that some images may be unusable.

UBI

[edit]

UBI (Unsorted Block Images)[10] is an erase block management layer forflash memory devices. UBI serves two purposes, trackingNAND flash memory bad blocks and providingwear leveling. Wear leveling spreads the erases and writes across the entire flash device. UBI presents logical erase blocks to higher layers and maps these to physical erase blocks. UBI was written specifically for UBIFS so that UBIFS does not have to deal with wear leveling and bad blocks. However, UBI may also be useful withsquashfs and NAND flash;squashfs is not aware of NAND flash bad blocks.

UBI's documentation explains that it is not a completeflash translation layer (FTL). Although a FTL also handles bad blocks and wear leveling, the interface a FTL provides is a block device with small (typically 512 bytes) sectors that can be written completely independently. In contrast, UBI's interface directly exposes erase blocks and programmable pages (which are different sizes, and much larger than typical block device sectors), and filesystems that use UBI must be aware of the sizes and restrictions on how blocks must be erased before being written.

UBI is in some ways analogous to aLogical Volume Manager. In typical usage, rather than partitioning flash into fixed regions, a single UBI device spans the entire flash (except for perhaps a few pages in fixed locations reserved for the bootloader), and multiple volumes are created within the UBI device. This allows wear-leveling to be spread across the whole flash, even if some volumes are written more frequently than others. UBI volumes can bestatic (which contain a whole file or image written once and protected by CRC-32 by UBI) ordynamic (which contain a read-write filesystem that is responsible for its own data integrity). The only filesystem that directly supports UBI is UBIFS, but usinggluebi it's possible to emulate a MTD device, which can then be used to run other flash filesystems like JFFS2 and YAFFS, and usingubiblk it's possible to emulate block devices, which can run common filesystems like Ext4.

Fastmap

[edit]

UBI was augmented in Linux 3.7 with fastmap support.[11][12] Fastmap maintains an on-disk version of information previously created in memory by scanning the entire flash device. The code falls back to the previous mechanism of a full scan on failures and older UBI systems will simply ignore the fastmap information.

See also

[edit]

References

[edit]
  1. ^Jonathan Corbet (2 April 2008)."UBIFS".LWN.net. Retrieved18 December 2016.
  2. ^"UBIFS – UBI File-System: Big red note". 22 January 2015. Retrieved18 December 2016.It does not work on top of block devices. UBIFS was designed to work on top of raw flash.
  3. ^"UBIFS – UBI File-System: Overview". 22 January 2015. Retrieved18 December 2016.
  4. ^Artem Bityutskiy (27 March 2008)."UBIFS – new flash file system". Retrieved18 December 2016.
  5. ^"UBIFS – UBI File-System: Write-back support". 22 January 2015. Retrieved18 December 2016.
  6. ^"UBIFS FAQ and HOWTO: Why does df report too little free space?". 18 December 2015. Retrieved18 December 2016.
  7. ^"UBIFS – UBI File-System: Scalability". 22 January 2015. Retrieved18 December 2016.
  8. ^abBityutskiy, Artem; Hunter, Adrian (24 September 2008)."UBIFS File System"(PDF). p. 9.
  9. ^Adrian Hunter (27 March 2008)."A Brief Introduction to the Design of UBIFS"(PDF).
  10. ^"UBI – Unsorted Block Images". 22 January 2015. Retrieved18 December 2016.
  11. ^Thomas Petazzoni (3 October 2012)."UBI fastmap making its way to mainline". Archived fromthe original on 15 November 2012. Retrieved18 December 2016.
  12. ^Richard Weinberger (24 September 2012)."UBI: Fastmap request for inclusion (v18)". Retrieved18 December 2016.

External links

[edit]
Disk and
non-rotating
Optical disc
Flash memory andSSD
host-sidewear leveling
Distributed parallel
NAS
Specialized
Pseudo
Encrypted
Types
Features
Access control
Interfaces
Lists
Layouts
Retrieved from "https://en.wikipedia.org/w/index.php?title=UBIFS&oldid=1176132087"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp