Unix系統(tǒng)中知識(shí)講解
我們知道,Unix系統(tǒng)是以文件卷作為其文件系統(tǒng)存儲(chǔ)格式的,而不同的Unix系統(tǒng),文件卷格式是有差異的,甚至即使是同一Unix系統(tǒng)的不同版本,其文件系統(tǒng)也未必完全相同,例如: SCO Unix 4.1版與5.0版文件系統(tǒng)結(jié)構(gòu)就有明顯差異,但只要是Unix系統(tǒng),其文件卷的基本結(jié)構(gòu)是一致的。
不管是什么Unix系統(tǒng),不管什么版本,其文件卷至少包括引導(dǎo)塊、超級(jí)塊、i節(jié)點(diǎn)表、數(shù)據(jù)區(qū)等幾個(gè)部分。
1. Unix系統(tǒng)引導(dǎo)塊
位于文件卷最開始的第一扇區(qū),這512字節(jié)是文件系統(tǒng)的引導(dǎo)代碼,為根文件系統(tǒng)所特有,其他文件系統(tǒng)這512字節(jié)為空。
2. Unix系統(tǒng)超級(jí)塊
位于文件Unix系統(tǒng)第二扇區(qū),緊跟引導(dǎo)塊之后,用于描述本文件系統(tǒng)的結(jié)構(gòu)。如i節(jié)點(diǎn)長度、文件系統(tǒng)大小等,其結(jié)構(gòu)存放于/usr/include/sys/filsys.h中,其結(jié)構(gòu)如下:
struct filsys
{ ushort s_isize; /*磁盤索引節(jié)點(diǎn)區(qū)所占用的數(shù)據(jù)塊數(shù)*/
daddr_t s_fsize; /*整個(gè)文件系統(tǒng)的數(shù)據(jù)塊數(shù)*/
short s_nfree; /*在空閑塊登錄表中當(dāng)前登記的空閑塊數(shù)目*/
daddr_t s_free[NICFREE]; /*空閑塊登記表*/
short s_ninode; /*空閑索引節(jié)點(diǎn)數(shù)*/
ino_t s_inode[NICINOD]; /*空閑節(jié)點(diǎn)登記表*/
char s_flock; /*加鎖標(biāo)志位*/
char s_ilock; /*節(jié)點(diǎn)加鎖標(biāo)志位*/
char s_fmod; /*超級(jí)塊修改標(biāo)志*/
char s_ronly; /*文件系統(tǒng)只讀標(biāo)志*/
time_t s_time; /*超級(jí)塊上次修改的時(shí)間*/
short s_dinfo[4]; /*設(shè)備信息*/
daddr_t s_tfree; /*空閑塊總數(shù)*/
ino_t s_tinode; /*空閑節(jié)點(diǎn)總數(shù)*/
char s_fname[6]; /*文件系統(tǒng)名稱*/
char s_fpack[6];
long s_fill[13]; /*填空位*/
long s_magic; /*指示文件系統(tǒng)的幻數(shù)*/
long s_type; /*新文件系統(tǒng)類型*/ };
Unix系統(tǒng)中的知識(shí),我們就講解到這里了。
【編輯推薦】