天天看點

UBIFS檔案系統簡析UBIFS檔案系統簡析

UBIFS檔案系統簡析

疫情期間學習了UBIFS檔案系統源碼,寫了一篇關于UBIFS的介紹的文章,供大家參考。

文章較長,目錄如下:

1.引言

1.1 UBIFS 檔案系統簡介

1.2 本文整體思路與局限

1.3 主要參考文獻

2.MTD 子系統簡介

2.1MTD 子系統層次結構

2.2 mtd_info 核心屬性分析

2.3 MTD RAW 層對外接口介紹

3 UBI 層介紹

3.1 UBI 層簡介

3.2 UBI Attach

3.2.1 IO 子系統綁定

3.2.2 掃描 PEB

3.2.3 邏輯卷管理

3.2.4 EBA 初始化

3.2.5 WL 初始化

3.3 UBI 負載均衡

3.3.1 擦除 PEB

3.3.2 保護隊列

3.3.3 均衡政策

3.3.4 對外接口

3.4 UBI EBA

3.5 UBI 對外接口與實作

4 UBIFS 核心結構

4.1 UBIFS 簡介

4.2 UBIFS Super 區

4.3 UBIFS Master 區

4.3.1 master node

4.3.2 Master 資訊建構與更新

4.4 UBIFS LPT 子系統

4.4.1 LPT 節點資料結構

4.4.2 LPT 節點壓縮與複原

4.4.3 LPT 子系統初始化與建構

4.4.4 lprops 搜尋

4.4.5 lprops 記憶體更新

4.4.6 lprops UBI 裝置更新

4.5 UBIFS Find 中間件

4.5.1 查找非索引空閑空間

4.5.2 查找非索引髒空間

4.5.3 查找索引空閑空間

4.5.4 髒索引空間儲存排序

4.5.5 查找索引髒空間

4.6 UBIFS 預算子系統

4.6.1 全局資訊估計

4.6.2 預算空間估計與釋放

4.6.3 使用者空間可用大小統計

4.7 UBIFS TNC 子系統

4.7.1 TNC 子系統各相關節點

4.7.2 節點 key 值

4.7.3 TNC 子系統搜尋與建構

4.7.4 TNC 子系統添加節點

4.7.5 TNC 子系統删除與替換

4.7.6 TNC 子系統多資料塊節點讀取

4.7.7 TNC 子系統送出更新

4.8 UBIFS 日志子系統

4.8.1 日志子系統節點結構

4.8.2 日志子系統全局資料結構

4.8.3 日志系統 wbuf 機制

4.8.4 日志子系統空間配置設定

4.8.5 日志子系統典型操作

4.8.6 日志子系統送出

4.8.7 日志回放

4.9 UBIFS 垃圾回收系統

4.9.1 垃圾回收子系統全局資料結構

4.9.2 垃圾回收主體功能

4.9.3 垃圾回收子系統送出

4.10 UBIFS orphan 子系統

4.10.1 orphan 子系統全局資料結構

4.10.2 删除節點流程

4.10.3 orphan 子系統送出

4.10.4 orphan 子系統挂載

4.11 UBIFS recover 子系統

4.11.1 LEB 異常修複

4.11.2 master 節點異常修複

4.12 UBIFS Commit 子系統

4.12.1 送出子系統核心功能

4.12.2 送出時機

5 UBIFS-VFS 接口

5.1 UBIFS 初始化

5.2 UBIFS mount 接口

5.3 UBIFS 超級塊方法

5.3.1 建立/釋放 inode 方法

5.3.2 标記 dirty 方法

5.3.3 寫入 inode 方法

5.3.4 同步方法

5.4 UBIFS 節點方法

5.4.1 搜尋方法

5.4.2 創造節點方法

5.4.3 創造硬連結方法

5.4.4 創造符号連接配接方法

5.4.5 移除引用方法

5.4.6 創造/删除目錄方法

5.5 UBIFS 檔案方法

5.5.1 讀取目錄方法

5.5.2 檔案同步方法

5.5.3 檔案 IOCTL 方法

5.5.4 檔案 MMAP 方法

5.6 UBIFS address_space 方法

5.6.1 readpage 方法

5.6.2 預讀方法

5.6.3 write_begin/write_end 方法

5.6.4 writepage 方法

6 結語

全文較長,約300頁,完全原創,供大家參考。

《UBIFS檔案系統簡析》下載下傳位址