只是在ext3的基礎上擴充套件了一些字段,可以支援更大的硬碟和更大的檔案。
如:s_blocks_count 修改為s_blocks_count_lo和s_blocks_count_hi
結構體如下:
/*
*structure of the super block
*/struct ext4_super_block ;
塊組描述資訊。
包含了blockbitmap、inode bitmap、inode table等存放的塊位址。
結構體如下:
/*
*structure of a blocks group descriptor
*/struct ext4_group_desc
;
儲存了每個節點的資訊。
該節點的屬性、所佔的塊位址。
結構體如下:
/*
*structure of an inode on the disk
*/struct ext4_inode linux1;
struct hurd1;
struct masix1;
} osd1; /*os dependent 1 */
__le32 i_block[ext4_n_blocks];/*pointers to blocks定位儲存檔案的塊的陣列*/
__le32 i_generation; /* file version (for nfs) 用於nfs的檔案版本*/
__le32 i_file_acl_lo; /* file acl包含擴充套件屬性的塊號,老版本中為0*/
__le32 i_size_high;
__le32 i_obso_faddr; /* obsoleted fragment address */
union linux2;
struct hurd2;
struct masix2;
} osd2; /*os dependent 2 */
__le16 i_extra_isize;
__le16 i_pad1;
__le32 i_ctime_extra; /* extra change time (nsec << 2 | epoch) */
__le32 i_mtime_extra; /* extra modification time(nsec << 2 |epoch) */
__le32 i_atime_extra; /* extra access time (nsec << 2 | epoch) */
__le32 i_crtime; /* file creation time */
__le32 i_crtime_extra; /* extrafilecreationtime (nsec << 2 | epoch) */
__le32 i_version_hi; /* high 32 bits for 64-bit version */
};
用於儲存所有目錄的資訊。
根目錄總是在inode表的第二項,而其子目錄則在根目錄檔案的內容中定義。
結構體如下:
struct ext4_dir_entry ;
科目三筆記
1 起步 1左燈,喇叭3秒 2鬆手剎 3腳踩離合器和腳剎,掛一檔 先手剎,後檔位 4起步 問題 在轉彎時,加油掛2擋以及 3擋 還是轉彎過後直行,加油掛擋呢?2 左轉 右 速度在20碼上 3 加減檔 3 2 3 4 3 問題 1掛4檔後,加油到 38碼?2什麼時候從4擋掛到 3擋,檔位切換要等多久?...
資料結構 3 27筆記
定義和使用結構體變數 1,定義結構體變數 1 先宣告結構體型別,再定義該型別變數 struct student stu1,stu2 2 宣告型別的同時定義變數 一般形式 struct 結構體名變數名表列 3 不指定型別名直接定義結構體型別變數 一般形式 struct變數名表列 注意 編譯時對型別不分...
第三週筆記
1什麼是注釋 注釋是用來介紹 的功能 也可以注釋一些 讓它不執行 2編譯好的class檔案注釋是不存在的 注釋只存在源 裡 1單行注釋 後面就是注釋內容 例如 2多行注釋 多行注釋 多行注釋 例如 3文件注釋 可以生成今後使用的功能說明書 1.0有固定書寫位置 類上可以寫 屬性上可以寫 方法可以寫 ...