中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

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

      時間:2024-09-28 23:55:16 Linux認證 我要投稿
      • 相關推薦

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

        Windows XP高昂的價格和升級收費政策使更多企業(yè)和個人用戶轉向自由開放的Linux操作系統,目標雇主群會迅速增長。下面是小編整理的關于Linux文件系統掛裝與高層體系結構,希望大家認真閱讀!

        文件系統體系結構

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

        高層體系結構

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

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

        用戶空間包含一些應用程序(例如,文件系統的使用者)和 GNU C 庫(glibc),它們?yōu)槲募到y調用(打開、讀取、寫和關閉)提供用戶接口。系統調用接口的作用就像是交換器,它將系統調用從用戶空間發(fā)送到內核空間中的適當端點。

        VFS 是底層文件系統的主要接口。這個組件導出一組接口,然后將它們抽象到各個文件系統,各個文件系統的行為可能差異很大。有兩個針對文件系統對象的緩存(inode 和 dentry)。它們緩存最近使用過的文件系統對象。

        每個文件系統實現(比如 ext2、JFS 等等)導出一組通用接口,供 VFS 使用。緩沖區(qū)緩存會緩存文件系統和相關塊設備之間的請求。例如,對底層設備驅動程序的讀寫請求會通過緩沖區(qū)緩存來傳遞。這就允許在其中緩存請求,減少訪問物理設備的次數,加快訪問速度。以最近使用(LRU)列表的形式管理緩沖區(qū)緩存。注意,可以使用 sync 命令將緩沖區(qū)緩存中的請求發(fā)送到存儲媒體(迫使所有未寫的數據發(fā)送到設備驅動程序,進而發(fā)送到存儲設備)。

        這就是 VFS 和文件系統組件的高層情況。現在,討論實現這個子系統的主要結構。

        主要結構

        Linux 以一組通用對象的角度看待所有文件系統。這些對象是超級塊(superblock)、inode、dentry 和文件。超級塊在每個文件系統的根上,超級塊描述和維護文件系統的狀態(tài)。文件系統中管理的每個對象(文件或目錄)在Linux中表示為一個 inode。inode 包含管理文件系統中的對象所需的所有元數據(包括可以在對象上執(zhí)行的操作)。另一組結構稱為 dentry,它們用來實現名稱和 inode 之間的映射,有一個目錄緩存用來保存最近使用的 dentry。dentry 還維護目錄和文件之間的關系,從而支持在文件系統中移動。最后,VFS 文件表示一個打開的文件(保存打開的文件的狀態(tài),比如寫偏移量等等)。

        基本的文件系統體系結構

        Linux 文件系統體系結構是一個對復雜系統進行抽象化的有趣例子。通過使用一組通用的 API 函數,Linux 可以在許多種存儲設備上支持許多種文件系統。例如,read 函數調用可以從指定的文件描述符讀取一定數量的字節(jié)。read 函數不了解文件系統的類型,比如 ext3 或 NFS。它也不了解文件系統所在的存儲媒體,比如 AT Attachment Packet Interface(ATAPI)磁盤、Serial-Attached SCSI(SAS)磁盤或 Serial Advanced Technology Attachment(SATA)磁盤。但是,當通過調用 read 函數讀取一個文件時,數據會正常返回。本文講解這個機制的實現方法并介紹Linux文件系統層的主要結構。

        什么是文件系統?

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

        掛裝

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

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

        清單 1. 創(chuàng)建一個經過初始化的文件

        1.$ dd if=/dev/zero of=file.img bs=1k count=10000

        2.10000+0 records in

        3.10000+0 records out

        4.$

        現在有了一個 10MB 的 file.img 文件。使用 losetup 命令將一個循環(huán)設備與這個文件關聯起來,讓它看起來像一個塊設備,而不是文件系統中的常規(guī)文件:

        1.$ losetup /dev/loop0 file.img

        2.$

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

        清單 2. 用循環(huán)設備創(chuàng)建 ext2 文件系統

        1.$ mke2fs -c /dev/loop0 10000

        2.mke2fs 1.35 (28-Feb-2004)

        3.max_blocks 1024000, rsv_groups = 1250, rsv_gdb = 39

        4.Filesystem label=

        5.OS type: Linux

        6.Block size=1024 (log=0)

        7.Fragment size=1024 (log=0)

        8.2512 inodes, 10000 blocks

        9.500 blocks (5.00%) reserved for the super user

        10....

        11.$

        使用 mount 命令將循環(huán)設備(/dev/loop0)所表示的 file.img 文件掛裝到掛裝點 /mnt/point1。注意,文件系統類型指定為 ext2。掛裝之后,就可以將這個掛裝點當作一個新的文件系統,比如使用 ls 命令,見清單 3。

      【Linux文件系統掛裝與高層體系結構】相關文章:

      Linux文件系統簡介06-01

      Linux btrfs文件系統及管理07-31

      Linux文件系統操作命令大全07-03

      linux文件系統基礎知識匯總06-29

      Linux用戶/文件系統管理詳解05-10

      Linux操作系統文件系統基礎知識07-25

      嵌入式文件系統移植07-23

      Linux認證概念10-29

      Linux認證優(yōu)勢06-10

      學習Linux的忠告09-27

      主站蜘蛛池模板: 产精品无码久久_亚洲国产精| 国产人妖av一级黄片| 日韩精品人妻中文字幕有码 | 欧洲AV秘 无码一区二区三| 亚洲av午夜福利精品一区二区| 国产精品一区二区久久毛片| 一区视频在线观看免费播放.| 亚洲av偷拍一区二区三区| 国产三级精品美女三级| 吉水县| 日韩精品中文字幕 一区 | 元谋县| 亚洲视频在线观看青青草| 久久99一本色道亚洲精品| 精品国产一区二区三区香蕉| 新民市| 盐亭县| 中文字幕麻豆一区二区| 区一区一日本高清视频在线观看| 禁止免费无码网站| 亚洲AV手机专区久久精品| 邵东县| 台山市| 武宣县| 湖南省| 六安市| 磐石市| 富锦市| 日本女优在线观看一区二区三区 | 日产国产精品一区二区| 国产区二区三区在线观看| 盐城市| 最新亚洲综合中文字幕在线| 武夷山市| 鄂托克前旗| 日本啪啪一区二区三区| av狼人婷婷久久亚洲综合| 亚洲先锋影院一区二区| 一本久道久久综合狠狠操| 国产免费自拍av一区| 亚洲乱码中文字幕综合|