哈嘍,大家好,我是程序員秘書LittleG。
上篇:Linux sort命令 | 整理文件數(shù)據(jù)利器
哈嘍,大家好,好久不見,最近半年換工作了,到新單位比較忙,所以文章也沒怎么寫。最近轉(zhuǎn)正答辯過(guò)了,終于可以摸魚了。
最近2周在看文件系統(tǒng)的內(nèi)容,剛好學(xué)習(xí)記錄一下。
簡(jiǎn)介
ext4
特性:支持大容量(單個(gè)文件最大16 TiB,總?cè)萘靠蛇_(dá)1 EiB)、日志功能、高穩(wěn)定性。
適用場(chǎng)景:Yocto根文件系統(tǒng)、Android系統(tǒng)的/system分區(qū)、通用存儲(chǔ)。
優(yōu)點(diǎn):高度可靠,適用于需要大量數(shù)據(jù)存儲(chǔ)和快速訪問的應(yīng)用場(chǎng)景。
缺點(diǎn):對(duì)于閃存等特殊存儲(chǔ)介質(zhì)的支持不如專門設(shè)計(jì)的文件系統(tǒng)。
SquashFS
特性:高壓縮率、只讀特性、快速掛載。
適用場(chǎng)景:Yocto固件鏡像、只讀根文件系統(tǒng)(如/usr)、容器鏡像。
優(yōu)點(diǎn):節(jié)省空間,適合于需要減少存儲(chǔ)占用的場(chǎng)景。
缺點(diǎn):只讀特性限制了其在需要?jiǎng)討B(tài)修改內(nèi)容的應(yīng)用中的使用。
UBIFS
特性:NAND閃存優(yōu)化(壞塊管理、壓縮)、動(dòng)態(tài)分區(qū)調(diào)整、日志功能。
適用場(chǎng)景:ARM嵌入式設(shè)備的可讀寫閃存存儲(chǔ)(IoT設(shè)備、工控系統(tǒng))。
優(yōu)點(diǎn):專為閃存設(shè)計(jì),具有良好的磨損均衡和可靠性。
缺點(diǎn):相比其他通用文件系統(tǒng),可能不適合非閃存介質(zhì)。
JFFS2
特性:直接操作閃存塊、掉電保護(hù)、支持NOR/NAND閃存。
適用場(chǎng)景:小容量閃存分區(qū)(Bootloader、內(nèi)核)、低功耗設(shè)備的只讀/可寫分區(qū)。
優(yōu)點(diǎn):簡(jiǎn)單高效,特別適合小型嵌入式系統(tǒng)。
缺點(diǎn):隨著閃存容量增加,性能可能會(huì)下降。
tmpfs
特性:基于內(nèi)存的極速讀寫、動(dòng)態(tài)調(diào)整容量。
適用場(chǎng)景:臨時(shí)緩存(/tmp)、進(jìn)程共享內(nèi)存、運(yùn)行時(shí)臨時(shí)數(shù)據(jù)存儲(chǔ)。
優(yōu)點(diǎn):極快的讀寫速度,因?yàn)閿?shù)據(jù)保存在RAM中。
缺點(diǎn):數(shù)據(jù)不持久化,斷電后丟失。
FAT32/vfat
特性:跨平臺(tái)兼容(Windows/Android/Linux)、支持UEFI啟動(dòng)。
適用場(chǎng)景:Android外部存儲(chǔ)(SD卡/U盤)、Yocto UEFI啟動(dòng)分區(qū)。
優(yōu)點(diǎn):廣泛的兼容性使其成為外部存儲(chǔ)的理想選擇。
缺點(diǎn):?jiǎn)蝹€(gè)文件大小限制(最大4GB),缺乏高級(jí)功能如權(quán)限控制。
?F2FS
特性:閃存壽命優(yōu)化(TRIM、垃圾回收)、高性能隨機(jī)寫入。
適用場(chǎng)景:Android用戶數(shù)據(jù)分區(qū)(/data)、閃存設(shè)備的頻繁讀寫場(chǎng)景。
優(yōu)點(diǎn):專門為閃存設(shè)計(jì),提高了數(shù)據(jù)寫入效率和閃存使用壽命。
缺點(diǎn):主要針對(duì)閃存優(yōu)化,可能不適合其他類型的存儲(chǔ)介質(zhì)。
對(duì)比
提醒:表格因等寬限制,可能在電腦端閱讀體驗(yàn)更佳。
特性/文件系統(tǒng) | ext4 | SquashFS | UBIFS | JFFS2 | tmpfs | FAT32/vfat | F2FS |
---|---|---|---|---|---|---|---|
類型 | 通用文件系統(tǒng) | 只讀壓縮 | NAND閃存專用 | NOR/NAND閃存 | 內(nèi)存文件系統(tǒng) | 跨平臺(tái)兼容 | 閃存專用 |
讀寫支持 | 支持讀寫 | 只讀 | 支持讀寫 | 支持讀寫 | 基于內(nèi)存 | 支持讀寫 | 支持讀寫 |
壓縮支持 | 無(wú) | 高 | 可選 | 無(wú) | 無(wú) | 無(wú) | 無(wú) |
適用存儲(chǔ) | 硬盤、SSD等 | 通用存儲(chǔ) | NAND閃存 | NOR/NAND閃存 | RAM | SD卡、U盤等 | SSD、eMMC等 |
服務(wù)目標(biāo) | 大容量、高穩(wěn)定性 | 減少空間占用 | 提高閃存可靠性 | 小型嵌入式系統(tǒng) | 極速讀寫 | 跨平臺(tái)兼容性 | 優(yōu)化閃存壽命 |
典型用途 | 根文件系統(tǒng)、系統(tǒng)分區(qū) | 固件、容器鏡像 | IoT、工控系統(tǒng) | Bootloader、內(nèi)核 | 臨時(shí)緩存 | SD卡、UEFI啟動(dòng) | 用戶數(shù)據(jù)分區(qū) |
特別說(shuō)明:
嵌入式系統(tǒng)通常會(huì)選擇使用SquashFS(只讀)或UBIFS(可讀寫)作為rootfs。
提醒:表格因等寬限制,可能在電腦端閱讀體驗(yàn)更佳。
特性 | SquashFS | UBIFS |
---|---|---|
類型 | 只讀壓縮 | 日志式,支持寫入 |
讀寫支持 | 只讀 | 支持讀寫 |
壓縮 | 高壓縮率,可以減少空間占用 | 無(wú)壓縮 |
存儲(chǔ)類型 | 通用存儲(chǔ) | 閃存(NAND) |
適用場(chǎng)景 | 固件、只讀系統(tǒng) | 嵌入式閃存存儲(chǔ) |
需要注意rootfs并不是具體的文件系統(tǒng)類型,而是指Linux系統(tǒng)啟動(dòng)時(shí)首先掛載的根文件系統(tǒng),可以基于上述任何一種文件系統(tǒng)類型實(shí)現(xiàn)。
? ? - SquashFS?作為只讀根文件系統(tǒng);
? ? - UBIFS?作為可寫分區(qū);
? ? - rootfs?統(tǒng)一管理這些分區(qū);
實(shí)際中,可能會(huì)組合使用,比如將rootfs配置為squashfs,將data分區(qū)配置為ubifs。
下期見~