偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Unix文件知識講解

系統(tǒng) 其他OS
我們知道,Unix文件卷作為其文件系統(tǒng)存儲(chǔ)格式的,而不同的Unix系統(tǒng),文件卷格式是有差異的,甚至即使是同一Unix操作系統(tǒng)的不同版本,其文件系統(tǒng)也未必完全相同。

今天我們來學(xué)習(xí)一下Unix文件的知識。與DOS/Windows不同,Unix文件被刪除后很難恢復(fù),這是由Unix獨(dú)特的文件系統(tǒng)結(jié)構(gòu)決定的。所以,要想恢復(fù)這些文件,就需要另辟蹊徑。Unix文件系統(tǒng)的特殊性決定了它不能像Windows系統(tǒng)那樣恢復(fù)被刪除的文件。

Unix 文件目錄不像DOS/Windows那樣,文件即使被刪除之后仍保存有完整的文件名、文件長度、始簇號(即文件占有的第一個(gè)磁盤塊號)等重要信息。相反, 它的文件信息全部依靠一種被稱為i節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)來描述,而i節(jié)點(diǎn)在相應(yīng)文件被刪除之后即被清空。

不過,需要說明的是,Unix系統(tǒng)下文件系統(tǒng)恢復(fù)的具體實(shí)現(xiàn)依賴于不同操作系統(tǒng)和不同版本的具體文件系統(tǒng)結(jié)構(gòu)和磁盤塊分配算法(見附文)。本文只是試圖總結(jié)出一種一般性的思路和策略,限于篇幅,不能詳細(xì)討論它們的具體實(shí)現(xiàn)過程。

Unix文件系統(tǒng)結(jié)構(gòu)

我們知道,Unix是以文件卷作為其文件系統(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)塊、超級塊、i節(jié)點(diǎn)表、數(shù)據(jù)區(qū)等幾個(gè)部分。

1. Unix文件引導(dǎo)塊

位于文件卷最開始的第一扇區(qū),這512字節(jié)是文件系統(tǒng)的引導(dǎo)代碼,為根文件系統(tǒng)所特有,其他文件系統(tǒng)這512字節(jié)為空。

2. 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; /*超級塊修改標(biāo)志*/
char s_ronly; /*文件系統(tǒng)只讀標(biāo)志*/
time_t s_time; /*超級塊上次修改的時(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)類型*/ };

3. Unix文件i節(jié)點(diǎn)表

i節(jié)點(diǎn)表存放在超級塊之后,其長度是由超級塊中的s_isize字段決定的,其作用是用來描述文件的屬性、長度、屬主、屬組、數(shù)據(jù)塊表等,其數(shù)據(jù)結(jié)構(gòu)在/usr/include/sys/ino.h中,如下:
 

  1. struct dinode   
  2. { ushort di_mode;   
  3. short di_nlink;   
  4. ushort di_uid;   
  5. ushort di_gid;   
  6. off_t di_size;   
  7. char di_addr[40];   
  8. time_t di_atime;   
  9. time_t di_mtime;   
  10. time_t di_ctime; };  

4. Unix文件目錄結(jié)構(gòu)

Unix所有文件均存放于目錄中,目錄本身也是一個(gè)文件。目錄存放文件的機(jī)制如下: 首先,目錄文件本身也象普通文件一樣,占用一個(gè)索引節(jié)點(diǎn); 其次,由這個(gè)索引節(jié)點(diǎn)得到目錄內(nèi)容的存放位置; 再次,從其內(nèi)容中取出一個(gè)個(gè)的文件名和它對應(yīng)的節(jié)點(diǎn)號,從而訪問一個(gè)文件。

由此可知文件名是依靠目錄來描述的,文件的內(nèi)容和其他信息則由索引節(jié)點(diǎn)來描述。

Unix文件的知識,我們就介紹到這里了。

【編輯推薦】

  1. Unix系統(tǒng)是門藝術(shù)
  2. Unix系統(tǒng)中Cygwin的功能講解
  3. SCO Unix磁盤塊分配算法
  4. 3種找回nix刪除文件方法
  5. Unix刪除文件的找回方法
責(zé)任編輯:小霞
相關(guān)推薦

2010-05-05 17:46:32

Unix文件系統(tǒng)

2010-04-30 13:27:26

Unix cronta

2010-05-04 12:25:28

Unix鏈接

2010-05-05 13:45:21

Unix Telnet

2010-04-30 13:38:51

Unix at命令

2010-05-05 13:13:55

Unix內(nèi)核

2010-04-30 17:38:31

Unix文本

2010-05-04 16:33:39

Unix系統(tǒng)

2010-05-05 15:02:39

Unix系統(tǒng)

2010-05-05 10:44:37

Unix 反引號

2010-04-21 14:29:52

Unix 線程

2010-04-30 18:20:23

Unix系統(tǒng)

2010-04-21 12:39:48

Unix 消息隊(duì)列

2010-05-05 13:22:29

Unix Shell

2010-04-13 17:52:16

Unix交換區(qū)

2010-05-04 09:45:28

Unix系統(tǒng)

2010-05-10 15:37:14

Unix文件

2010-04-30 01:28:59

Unix系統(tǒng)

2010-04-20 11:34:26

Unix操作系統(tǒng)

2010-04-21 13:47:45

Unix內(nèi)核
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號