亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1091 | 回復(fù): 0
打印 上一主題 下一主題

索引節(jié)點、硬連接和連接計數(shù)的連接 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-12-29 22:42 |只看該作者 |倒序瀏覽
索引節(jié)點、硬連接和連接計數(shù)
unix里文件由兩部分組成,data part為數(shù)據(jù)部分,filename part為文件名部分。data
part有一個概念為inode,inode指向文件在磁盤的存儲位置block,以及文件的權(quán)限等信息。 filename
part里有文件名和相關(guān)的inode。
可以有多個文件名都指向同一inode,于是這些文件名被稱為hard link。
另外,還有一種特殊類型的文件,它的data part為一path,該path指向另一個文件。操作系統(tǒng)把對該特殊文
件的操作如打開、讀、寫等都redirect到該特殊文件所指向的那個文件。于是該特殊文件被稱為symbolic link
索引節(jié)點inode:
引用:unix為每個文件分配一個稱為索引節(jié)點的號碼inode,可以將inode簡單理解成一個指針,系統(tǒng)是通過索引節(jié)點(而不是文件名)來定位文件物理存儲位置。
例如:
新建mytext文本文件,其內(nèi)容只有一行:
This is my file.
1、當然這行文字一定是存儲在磁盤數(shù)據(jù)區(qū)某個具體位置里(物理上要通過磁頭號、柱面號和扇區(qū)號來描述,在本例中假設(shè)分別是1、20、30)。
2、假設(shè)其inode是262457,那么系統(tǒng)通過一段標準程序,就能將這個inode轉(zhuǎn)換成存放此文件的具體物理地址(1磁頭、20柱面、30扇區(qū)),最終讀出文件的內(nèi)容:“This is my file.”
3、所以inode是指向一個文件數(shù)據(jù)區(qū)的指針號碼,一個inode對應(yīng)著系統(tǒng)中唯一的一片物理數(shù)據(jù)區(qū),而位于兩個不同物理數(shù)據(jù)區(qū)的文件必定分別對應(yīng)著兩個不同的inode號碼。
硬連接hardlink:
1個inode號碼肯定和一個文件的data part一一對應(yīng)。那么一個文件系統(tǒng)中兩個或更多個不同的filename part能否對應(yīng)同一個文件呢?答案是肯定的。
我們知道inode號碼是記錄在filename part中的,我們可以使兩個或多個文件的filename part具有相同的inode值,實際上就使它們對應(yīng)著同一個文件。
有幾個filename part具有相同的inode號,我們就說這個文件有幾個硬連接(hardlink),
對于普通文件,ls -l命令的連接計數(shù)count域的數(shù)值就是本文件擁有的硬連接數(shù)。硬連接可以通過ln命令建立,
例如:
# ln /home/zyd/mytext hardlink_mytext
就建立了一個新的文件hardlink_mytext,這個文件的inode同樣是262457。建立硬連接實際上只是增加了一個filename
part,但并為復(fù)制data part,原文件的data
part由兩個文件共享。這一方面能夠節(jié)約大量磁盤空間,同時可以保證兩個文件能同步更新。
'ls -il'可以顯示文件的inode(在下面最左邊):
262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 hardlink_mytext
262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 mytext
文件拷貝命令與硬鏈接的區(qū)別:
# cp /home/zyd/mytext newfile
262456 -rw-rw-r-- 1 zyd zyd 17 Nov 3 14:52 newfile
其實際操作主要包括如下三步:
1、在當前目錄中增加一個文件,其filename part填入newfile,并分配了一個新的inode(是本例262456)。
2、將原文件(在1磁頭、20柱面、30扇區(qū))的內(nèi)容復(fù)制了一份到新的空閑物理塊(假設(shè)是1磁頭、20柱面、31扇區(qū))。
3、填寫一些其他關(guān)鍵信息,使系統(tǒng)通過這些信息及inode號碼可以完成物理地址的轉(zhuǎn)換。
所以文件復(fù)制要分配新的inode和新的數(shù)據(jù)區(qū),雖然兩個文件的內(nèi)容是一樣的。
連接計數(shù)count:
文件的連接計數(shù)域表明本系統(tǒng)中共有幾個文件的data part(inode)和本文件相同,也就是本文件共有幾個硬連接。如上面的例子中hardlink_mytext和mytext文件的count值都是2。
那么對于目錄,其count域的含義是什么呢?目錄的count同樣表示共有多少個目錄項指向此目錄,不過要詳細說明必須進一步解釋VFS文件系統(tǒng)的結(jié)
構(gòu),為簡單起見,只要這樣理解就行了:(count-2)等于本目錄包含的直接子目錄數(shù)(減去的兩個其實,就是自己.和父親..)。
例如:如果一個目錄/abc的count域為5,那么/abc目錄一定包含3個子目錄(一級子目錄,兒子輩的,絕對不包括孫子輩的)。
進一步說明:
硬連接文件實際上并不是一種新的文件類型,兩個文件互為對方的硬連接。它們應(yīng)該都是普通文件(誰能告訴我:其它類型的文件可以硬連接嗎?)。兩個文件除了
名稱或/和文件目錄不同外,其它部分完全相同,更改了一個文件,另一個的文件長度、內(nèi)容、更改時間等都將相應(yīng)發(fā)生變化,更改了一個文件的權(quán)限位
mode,另一個也會發(fā)生同樣的變化。
引用:注意連接計數(shù)字段count,互為硬連接的兩個文件的count值都是2,表明有兩個inode指向同一文件的inode。

當我們刪除其中一個文件時-rm,系統(tǒng)首先將(count-1)->;count,如果結(jié)果是零,就將其filename part和data
part都刪除,否則只將finame part刪除,data
part仍然保留,仍然可以通過另外的文件名訪問。根據(jù)這個特性,可以通過為重要的文件建立硬連接的方法來防止其被誤刪除。
一個文件系統(tǒng)允許的inode節(jié)點數(shù)是有限的,如果文件數(shù)量太多,即使每個文件都是0字節(jié)的空文件,系統(tǒng)最終也會因為節(jié)點空間耗盡而不能再創(chuàng)建文件。所以當發(fā)現(xiàn)不能建立文件時首先要考慮硬盤數(shù)據(jù)區(qū)是否還有空間(可通過du命令),其次還得檢查節(jié)點空間。
引用:互為硬連接的多個文件必須位于同一個文件系統(tǒng)上。根設(shè)備及任何一個需要mount才能掛接進來的分區(qū)、軟盤、NFS、光驅(qū)等都是一個獨立的文件系
統(tǒng),每個文件系統(tǒng)有一個相應(yīng)的設(shè)備號,不同文件系統(tǒng)中具有相同inode節(jié)點的文件間沒有任何聯(lián)系。系統(tǒng)則通過設(shè)備號和inode號的組合唯一確定一個文
件。
unix之所以能支持多種文件系統(tǒng),其實是由于unix提供了一個虛擬文件系統(tǒng)VFS,VFS作為實際文件系統(tǒng)的上層軟件,掩蓋了實際文件系統(tǒng)底層的具體結(jié)構(gòu)差異,為系統(tǒng)訪問位于不同文件系統(tǒng)的文件提供了一個統(tǒng)一的接 口。
實際上許多文件系統(tǒng)并不具備inode結(jié)構(gòu),其filename part也和以上的討論不同,但通過VFS,系統(tǒng)均為其提供了虛擬一致的inode和finame part結(jié)構(gòu)。
所以,'ls -il'命令實際顯示的inode應(yīng)該是VFS inode,也就是說,inode是存在于內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),而不一定是實際的硬盤結(jié)構(gòu)。
******************************
源于網(wǎng)上,加本人摘抄和總結(jié)
******************************


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/29033/showart_223413.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP