2023Linux文件系統掛裝與高層體系結構_第1頁
2023Linux文件系統掛裝與高層體系結構_第2頁
2023Linux文件系統掛裝與高層體系結構_第3頁
2023Linux文件系統掛裝與高層體系結構_第4頁
2023Linux文件系統掛裝與高層體系結構_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第頁2023Linux文件系統掛裝與高層體系結構Linux文件系統掛裝與高層體系結構

WindowsXP昂揚的價格和升級收費政策使更多企業和個人用戶轉向自由開放的Linux操作系統,目標雇主群會快速增長。下面是我整理的關于Linux文件系統掛裝與高層體系結構,希望大家仔細閱讀!

文件系統體系結構

既然已經看到了文件系統的構造方法,現在就看看Linux文件系統層的體系結構。本文從兩個角度考察Linux文件系統。首先采納高層體系結構的角度。然后進行深層次探討,介紹實現文件系統層的主要結構。

高層體系結構

盡管大多數文件系統代碼在內核中(后面探討的用戶空間文件系統除外),但是圖1所示的體系結構顯示了用戶空間和內核中與文件系統相關的主要組件之間的關系。

圖1.Linux文件系統組件的體系結構

用戶空間包含一些應用程序(例如,文件系統的運用者)和GNUC庫(glibc),它們為文件系統調用(翻開、讀取、寫和關閉)供給用戶接級塊(superblock)、inode、dentry和文件。超級塊在每個文件系統的根上,超級塊描述和維護文件系統的狀態。文件系統中管理的每個對象(文件或書目)在Linux中表示為一個inode。inode包含管理文件系統中的對象所需的全部元數據(包括可以在對象上執行的操作)。另一組結構稱為dentry,它們用來實現名稱和inode之間的映射,有一個書目緩存用來保存最近運用的dentry。dentry還維護書目和文件之間的關系,從而支持在文件系統中移動。最終,VFS文件表示一個翻開的文件(保存翻開的文件的狀態,比方寫偏移量等等)。

根本的文件系統體系結構

Linux文件系統體系結構是一個對困難系統進行抽象化的好玩例子。通過運用一組通用的API函數,Linux可以在很多種存儲設備上支持很多種文件系統。例如,read函數調用可以從指定的文件描述符讀取肯定數量的字節。read函數不了解文件系統的類型,比方ext3或NFS。它也不了解文件系統所在的存儲媒體,比方ATAttachmentPacketInterface(ATAPI)磁盤、Serial-AttachedSCSI(SAS)磁盤或SerialAdvancedTechnologyAttachment(SATA)磁盤。但是,當通過調用read函數讀取一個文件時,數據會正常返回。本文講解這個機制的實現方法并介紹Linux文件系統層的主要結構。

什么是文件系統?

首先答復最常見的問題,;什么是文件系統;。文件系統是對一個存儲設備上的數據和元數據進行組織的機制。由于定義如此寬泛,支持它的代碼會很有意思。正如前面提到的,有很多種文件系統和媒體。由于存在這么多類型,可以預料到Linux文件系統接口實現為分層的.體系結構,從而將用戶接口層、文件系統實現和操作存儲設備的驅動程序分隔開。

掛裝

在Linux中將一個文件系統與一個存儲設備關聯起來的過程稱為掛裝(mount)。運用mount吩咐將一個文件系統附著到當前文件系統層次結構中(根)。在執行掛裝時,要供給文件系統類型、文件系統和一個掛裝飾。

為了說明Linux文件系統層的功能(以及掛裝的方法),我們在當前文件系統的一個文件中創立一個文件系統。實現的方法是,首先用dd吩咐創立一個指定大小的文件(運用/dev/zero作為源進行文件復制)--換句話說,一個用零進行初始化的文件,見清單1。

清單1.創立一個經過初始化的文件

1.$ddif=/dev/zeroof=file.imgbs=1kcount=10000

2.10000+0recordsin

3.10000+0recordsout

4.$

現在有了一個10MB的file.img文件。運用losetup吩咐將一個循環設備與這個文件關聯起來,讓它看起來像一個塊設備,而不是文件系統中的常規文件:

1.$losetup/dev/loop0file.img

2.$

這個文件現在作為一個塊設備出現(由/dev/loop0表示)。然后用mke2fs在這個設備上創立一個文件系統。這個吩咐創立一個指定大小的新的ext2文件系統,見清單2。

清單2.用循環設備創立ext2文件系統

1.$mke2fs-c/dev/loop010000

2.mke2fs1.35(28-Feb-2004)

3.max_blocks1024000,rsv_groups=1250,rsv_gdb=39

4.Filesystemlabel=

5.OStype:Linux

6.Blocksize=1024(log=0)

7.Fragmentsize=1024(log=0)

8.2512inodes,10000blocks

9.500blocks(5.00%)reservedforthesuperuser

10

11.$

運用mount吩咐將循環設備(/dev/loop0)所表示的file

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論