認識Linux系統中的inode,硬鏈結和軟鏈結

2021-06-22 20:51:07 字數 1488 閱讀 2593

1. inode

在linux系統中,每個檔案都有乙個inode(索引節點),inode儲存了檔案的元資訊,主要有:

*檔案的位元組數

*檔案的使用者id

*檔案的組id

*檔案的read,write,execute許可權

*檔案的時間戳:最近的產生時間,最近一次訪問時間,最近一次修改時間

*鏈結數

*inode所使用的block數

*檔案資料block的位置

等等這裡補充一點,檔案是儲存在硬碟上的。硬碟的最小儲存單位是扇區(sector),每個扇區儲存512位元組。出於效率的考慮,作業系統不是按乙個扇區乙個扇區的讀取檔案,而是一次連續讀取多個扇區,通常被稱作塊(block)。塊是檔案訪問的最小單位,一般為4k,即連續的8個扇區組成乙個塊。因為inode要儲存檔案的元資訊,它也會消耗硬碟空間,一般是128或256位元組。inode節點的總數,在硬碟格式化的時候就給定了,一般是每1kb或2kb設定乙個inode。有時候會遇到剩餘硬碟空間足夠,但系統仍然提示空間不足的情況,其原因就是inode用完了。

linux系統中每個檔案都有檔名,但是作業系統並不是按檔名來識別檔案,而是按inode號來識別不同的檔案。當使用者開啟乙個檔案時,主要有3步:1. 系統找到檔名對應的inode號;2. 通過inode號獲取inode資訊;3. 根據inode資訊找到檔案所在的block並讀取資料。另外,因為系統是按inode來識別檔案,所以直接刪除inode就能到達刪除檔案的作用。

在linux中有「一切皆檔案」的說法,目錄也被看作一種檔案。當建立目錄時,一般會生成兩個目錄項:「.」和「..」。可以看成是兩個硬鏈結,前者的inode號就是當前目錄的inode 號;後者的inode號就是當前目錄的父目錄的inode號。

《附》檢視inode資訊的方法:

---stat 檔名

---檢視inode號的方法:

---ls -i 檔名

---檢視硬碟分割槽的inode總數和已使用inode的數量:

---df -i

---2. 硬鏈結和軟鏈結

1)硬鏈結(hard link)

硬鏈結打破了檔名和inode號「一一對應」的關係,實現讓多個檔名指向同乙個inode號。刪除其中乙個檔名,不影響另乙個檔名的訪問。硬鏈結生成的檔案大小與原檔案一樣大。建立硬鏈結的方法如下:

---ln 原始檔 目標檔案

---每當建立乙個硬鏈結,inode資訊裡記錄的鏈結數就會加1;反之,刪除乙個檔名,鏈結數就會減1。當鏈結數為0時,說明沒有檔案指向該inode,系統將**該inode號,以及所對應的block區域。

2)軟鏈結(soft link)

---ln -s 原始檔 目標檔案

---3)比較

*硬鏈結指向原始檔索引節點,不重新分配inode;軟鏈結生成時分配新的inode

*硬鏈結檔案大小與原始檔大小相同;軟鏈結檔案大小與原始檔不同,一般較小

*硬鏈結不能跨越檔案系統;軟鏈結可以

*一般情況下,不能為目錄建立硬鏈結;但可以為目錄建立軟鏈結

對Linux系統的基本認識

為了與使用者的應用程式進行互動,核心中提供了一組系統呼叫介面,通過這些介面,應用程式可以訪問系統的硬體和各種作業系統的資源。系統呼叫介面層在使用者應用程式和核心之間新增了乙個中間層。程序管理負責建立和銷毀程序,並處理他們之間的相互聯絡 程序間通訊 同時負責安排排程它們去分享cpu。在程序的世界裡,記...

認識Linux作業系統

查詢linux系統的基本概況 第一步 通過搜尋引擎搜尋 linux 閱讀與其有關的資料。收集搜尋引擎搜尋到的網頁 1 unix是大型機用的,主要特點是支援多使用者同時作業系統和共享系統資源。一 股人接觸不到unix,一般只有大型公司才用到。2 linux是一套免費使用和自由傳播的類unix作業系統。...

認識Linux作業系統

unix作業系統是1969年由k.thompson和d.m.richie在美國貝爾實驗室開發的一種作業系統。由於其良好而穩定的效能迅速在計算機中得到廣泛的應用,在隨後幾十年中做了不斷的改進。1990年,芬蘭人linus torvalds開始著手研究編寫乙個開放的與minix系統相容的作業系統。199...