二、虛擬檔案系統
6、與程序相關的檔案結構
檔案最終要被程序訪問,乙個程序可以開啟多個檔案,而乙個檔案可以被多個程序同時訪問。這裡程序是通過檔案描述符來抽象所開啟的檔案的,用使用者開啟檔案表來描述和記錄程序開啟檔案描述符的使用情況。
1)檔案物件
每個開啟的檔案都用乙個32位的數字來表示下乙個讀寫的位元組位置,這個數字叫做檔案位置或偏移量。每次開啟乙個檔案,檔案位置一般都被置為0,此後的讀或寫操作都將從檔案的開始處進行,但可以通過執行系統呼叫lseek(隨機定位)來對這個檔案位置進行修改。linux在file檔案物件中記錄了開啟檔案的檔案位置,這個物件被稱為開啟的檔案描述符。
那麼,為什麼不把檔案位置存放在索引結點中,而要設乙個file結構體呢?我們知道,linux中的檔案能夠共享,假如把檔案位置存放在索引結點中,如果有兩個或更多個程序同時開啟同乙個檔案時,它們將去訪問同乙個索引結點,於是乎乙個程序的lseek操作將影響到另乙個程序的讀操作,這顯然是不允許的。
file結構中主要儲存檔案位置,此外,還把指向該檔案索引結點的指標放在其中。file結構形成乙個雙鏈表,稱為系統開啟檔案表。
fi
虛擬檔案系統
虛擬檔案系統 virtual file system,簡稱 vfs 是 linux 核心中的乙個軟體層,用於給使用者空間的程式提供檔案系統介面 同時,它也提供了核心中的乙個 抽象功能,允許不同的檔案系統共存。系統中所有的檔案系統不但依賴 vfs 共存,而且也依靠 vfs 協同工作。為了能夠支援各種實...
檔案系統 虛擬檔案系統(一)
為了保證linux的開放性,設計者必須考慮如何使linux除了支援ext2檔案系統外,還能支援其它各種不同的檔案系統,例如日誌檔案系統 集群檔案系統以及加密檔案系統等。因此,就必須把各種不同檔案系統的操作和管理納入到乙個統一的框架中,使得使用者程式通過同乙個檔案系介面,即同一組系統呼叫,能對各種不同...
Linux虛擬檔案系統
這一周主要學了檔案系統的相關知識,通過學習基本上掌握了 linux 檔案系統的結構,檔案型別,以及讀取模式等等,也學會怎麼用命令簡單的建立乙個檔案系統。linux 的檔案系統主要有 ext2 ext3 ext4 在windows 下乙個分割槽會採用的一棵目錄樹來管理,而 linux 則只有一棵目錄樹...