Английская Википедия:EROFS

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description Шаблон:Infobox filesystem EROFS (Enhanced Read-Only File System) is a lightweight read-only file system initially developed by Huawei, originally for the Linux kernel and now maintained by an open-source community from all over the world.

EROFS aims to form a generic read-only file system solution for various read-only use cases (embedded devices, containers and more) instead of just focusing on storage space saving without considering any side effects of runtime performance.[1]

For example, it provides a solution to save storage space by using transparent compression as an option for scenarios that need high-performance read-only requirements on their devices with limited hardware resources, e.g. smartphones like Android and IoT operating systems such as HarmonyOS alongside it's HarmonyOS NEXT core system iteration.[2][3] All of Huawei's new products shipped with EMUI 9.0.1 or later used EROFS,[4] and it was promoted as one of the key features of EMUI 9.1.[5] Oppo, Xiaomi and some Samsung products also use EROFS.[6][7]

Also, it provides a content-addressable chunk-based container image solution together with lazy pulling feature to accelerate container startup speed by using new file-based fscache backend since Linux kernel v5.19.[8]

The file system was formally merged into the mainline kernel with Linux kernel v5.4.[9]

Features

The file system has two different inode on-disk layouts. One is compact, and the other is extended.[1]

  • Little-endian on-disk design[1]
  • 32-bit block addressing, which currently limits the total possible capacity of an EROFS filesystem to 16 TiB of 4 KiB block size.[1]
  • Metadata and data can be mixed by design for on-disk flexibility together with tail-packing inline data technology[1]
  • Support POSIX attributes and permissions, extended file attributes and ACL[1]
  • Fixed-size output transparent compression with LZ4, MicroLZMA (since Linux 5.16[10]) and/or DEFLATE (since Linux 6.6[11]) for relative higher compression ratios[1]
  • In-place decompression for higher sequential read [12][13]
  • Big pcluster feature allowing up to 1 MiB big pclusters for better compression ratios since Linux 5.13.[14][15]
  • Direct I/O, Direct Access (DAX) support, chunk-based data de-duplication for uncompressed files since Linux 5.15.[1][16]
  • Multiple device support for multiple layer container images since Linux 5.16.[1]
  • Ztailpacking support since Linux 5.17.[17]
  • File-based Fscache backend support since Linux 5.19 with "on-demand mode".[18][19]
  • Rolling-hash deduplicated data compression and fragment support since Linux 6.1. [1]

See also

References

Шаблон:Reflist

External links

Шаблон:File systems Шаблон:Huawei