作者:gtt
本文件歸屬
請提出寶貴意見mail:[email protected]
linux version:
2.6.33 提示
:本文是關於file system 實現的介紹
!再來看看linux 2.6.33中ext2的結構圖
super block的定義如下
struct ext2_super_block
; inode的定義如下
struct ext2_inode linux1;
struct
hurd1;
struct
masix1;
} osd1;
/* os dependent 1 */
__le32 i_block[ext2_n_blocks]
;/* pointers to blocks */
__le32 i_generation;
/* file version (for nfs) */
__le32 i_file_acl;
/* file acl */
__le32 i_dir_acl;
/* directory acl */
__le32 i_faddr;
/* fragment address */
union
linux2;
struct
hurd2;
struct
masix2;
} osd2;
/* os dependent 2 */};
而目錄項的定義如下
struct ext2_dir_entry_2
; 再來看看ext2fs是如何進行資料管理的
看上去只是比minixfs,多了乙個3次間接索引。這樣ext2fs的單個檔案的size可以更大。
上圖中b-no等我就是隨便起的名字,意思就是資料塊的內容是block number.
追加一些內容,忘了寫了,就是在現在版本中對檔案的定義,因為不說這個隊vfs的實現就有點困難了。
定義如下
struct
file
f_u;
struct path f_path;
#define f_dentry f_path.dentry
#define f_vfsmnt f_path.mnt
const
struct file_operations *f_op;
spinlock_t f_lock;
/* f_ep_links, f_flags, no irq */
atomic_long_t f_count;
unsigned
int f_flags;
fmode_t f_mode;
loff_t f_pos;
struct fown_struct f_owner;
const
struct cred *f_cred;
struct file_ra_state f_ra;
u64 f_version;
#ifdef config_security
void
*f_security;
#endif
/* needed for tty driver, and maybe others */
void
*private_data;
#ifdef config_epoll
/* used by fs/eventpoll.c to link all the hooks to this file */
struct list_head f_ep_links;
#endif
/* #ifdef config_epoll */
#ifdef config_debug_writecount
unsigned
long f_mnt_write_state;
#endif
}其它field可以先不考慮,但是struct path f_path這項得關注。
他的定義如下
struct path
;為什麼要提這個呢,因為他包含了乙個dentry的指標,而dentry又有inode的指標。
這樣有和早期minixfs的實現基本對應上了,早期minixfs的檔案結構中直接放的inode指標。其實就是換湯不換藥。這樣對以後抽象出來vfs很關鍵的。
明明白白之搜尋演算法
1 定義 搜尋演算法是去搜尋每乙個可能,主要分以下幾種演算法 列舉法 暴力搜尋 深度優先搜尋 廣度優先搜尋 回溯2 深度優先搜尋 一條道走到黑 1 判斷邊界條件,向上回退 2 解決當前這一步需要做什麼 3 使用相同的邏輯處理下一步 3 廣度優先搜尋 為了便於進行搜尋,要設定乙個表儲存所有的結點。由於...
一些明明白白的句子
1,沒有乙個人會真的喜歡孤獨,可是對於優秀的人來說,他們明白能夠通向幸福的捷徑,從來不是合群,而是成為最優秀的自己。人只有在獨處的時候,才能夠真正的去學習一些東西,去思考一些東西,優秀的人喜歡的從來不是獨處,而是喜歡因為獨處而給自己帶來的收穫。2,我渴望有自己獨立的人格,我渴望自己內心的特立獨行和桀...
明明白白OSPF與EIGRP的區別
明明白白ospf與eigrp的區別 在網際網路飛速發展的今天,tcp ip協議已經成為資料網路互聯的主流協議。在各種網路上執行的大大小小各種型號路由器,承擔著控制本世紀或許最重要資訊的流量,而這成百上千臺路由器間的協同工作,離不開路由協議。ospf和eigrp都是近年來出現的比較好的動態路由協議,o...