首頁 > 軟體

Linux系統如何管理檔案

2020-06-16 17:27:43

硬碟中的靜態檔案和inode(i節點)

(1)檔案平時都在存放在硬碟中的,硬碟中儲存的檔案以一種固定的形式存放的,我們叫靜態檔案。

(2)一塊硬碟中可以分為兩大區域:一個是硬碟內容管理表項,另一個是真正儲存內容的區域。作業系統存取硬碟時是先去讀取硬碟內容管理表,從中找到我們要存取的那個檔案的磁區級別的資訊,然後再用這個資訊去查詢真正儲存內容的區域,最後得到我們要的檔案。

(3)作業系統最初拿到的資訊是檔名,最終得到的是檔案內容。第一步就是去查詢硬碟內容管理表,這個管理表中以檔案為單位記錄了各個檔案的各種資訊,每一個檔案有一個資訊列表(我們叫inode,i節點,其實質是一個結構體,這個結構體有很多元素,每個元素記錄了這個檔案的一些資訊,其中就包括檔名、檔案在硬碟上對應的磁區號、塊號等)

強調:硬碟管理的時候是以檔案為單位的,每個檔案一個inode,每個inode有一個數位編號,對應一個結構體,結構體中記錄了各種資訊。

(4)聯絡平時實踐,格式化硬碟(U盤)時發現有:快速格式化和底層格式化。快速格式化非常快,格式化一個32GB的U盤只要1秒鐘,普通格式化格式化速度慢。這兩個的差異?其實快速格式化就是只刪除了U盤中的硬碟內容管理表(其實就是inode),真正儲存的內容沒有動。這種格式化的內容是有可能被找回的。

記憶體中被開啟的檔案和vnode(v節點)

(1)一個程式的執行就是一個進程,我們在程式中開啟的檔案就屬於某個進程。每個進程都有一個資料結構用來記錄這個進程的所有資訊(叫進程資訊表),表中有一個指標會指向一個檔案管理表,檔案管理表中記錄了當前進程開啟的所有檔案及其相關資訊。檔案管理表中用來索引各個開啟的檔案的index就是檔案描述符fd,我們最終找到的就是一個已經被開啟的檔案的管理結構體vnode

(2)一個vnode中就記錄了一個被開啟的檔案的各種資訊,而且我們只要知道這個檔案的fd,就可以很容易的找到這個檔案的vnode進而對這個檔案進行各種操作。

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-11/137390.htm


IT145.com E-mail:sddin#qq.com