日本高清免费一本视频100禁_在线不卡欧美精品一区二区三区_国产一区二区好的精华液_中文综合在线_国产啊啊啊视频在线观看_大地资源网免费观看高清

IT之道-艾銻知道

您當前位置: 主頁 > IT服務 > 服務器服務 >

IT系統運維中Linux文件系統詳解


2020-04-18 19:33 作者:艾銻無限 瀏覽量:

IT系統運維 | Linux文件系統詳解
 
Linux 文件系統體系結構是一個對復雜系統進行抽象化的有趣例子。通過使用一組通用的 API 函數,Linux 可以在許多種存儲設備上支持許多種文件系統。例如,read 函數調用可以從指定的文件描述符讀取一定數量的字節。

read 函數不了解文件系統的類型,比如 ext3 或 NFS。它也不了解文件系統所在的存儲媒體,比如 AT Attachment Packet Interface(ATAPI)磁盤、Serial-Attached SCSI(SAS)磁盤或 Serial Advanced Technology Attachment(SATA)磁盤。但是,當通過調用 read 函數讀取一個文件時,數據會正常返回。本文講解這個機制的實現方法并介紹 Linux 文件系統層的主要結構。作為Linux系統運維工程師必須掌握

什么是文件系統?

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

掛裝

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

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

文件系統體系結構

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

高層體系結構

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


 


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

VFS 是底層文件系統的主要接口。這個組件導出一組接口,然后將它們抽象到各個文件系統,各個文件系統的行為可能差異很大。有兩個針對文件系統對象的緩存(inode 和 dentry)。它們緩存最近使用過的文件系統對象。每個文件系統實現(比如 ext2、JFS 等等)導出一組通用接口,供 VFS 使用。緩沖區緩存會緩存文件系統和相關塊設備之間的請求。例如,對底層設備驅動程序的讀寫請求會通過緩沖區緩存來傳遞。這就允許在其中緩存請求,減少訪問物理設備的次數,加快訪問速度。以最近使用(LRU)列表的形式管理緩沖區緩存。注意,可以使用 sync 命令將緩沖區緩存中的請求發送到存儲媒體(迫使所有未寫的數據發送到設備驅動程序,進而發送到存儲設備)。這就是 VFS 和文件系統組件的高層情況。現在,討論實現這個子系統的主要結構。

主要結構

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

虛擬文件系統層

VFS 作為文件系統接口的根層。VFS 記錄當前支持的文件系統以及當前掛裝的文件系統。

可以使用一組注冊函數在 Linux 中動態地添加或刪除文件系統。內核保存當前支持的文件系統的列表,可以通過 /proc 文件系統在用戶空間中查看這個列表。這個虛擬文件還顯示當前與這些文件系統相關聯的設備。在 Linux 中添加新文件系統的方法是調用 register_filesystem。這個函數的參數定義一個文件系統結構(file_system_type)的引用,這個結構定義文件系統的名稱、一組屬性和兩個超級塊函數。也可以注銷文件系統。

在注冊新的文件系統時,會把這個文件系統和它的相關信息添加到 file_systems 列表中。這個列表定義可以支持的文件系統。在命令行上輸入 cat /proc/filesystems,就可以查看這個列表。

向內核注冊的文件系統

 

 
VFS 中維護的另一個結構是掛裝的文件系統。這個結構提供當前掛裝的文件系統(見 linux /include /linux/fs.h)。它鏈接下面討論的超級塊結構。

掛裝的文件系統列表


 

 
超級塊

超級塊結構表示一個文件系統。它包含管理文件系統所需的信息,包括文件系統名稱(比如 ext2)、文件系統的大小和狀態、塊設備的引用和元數據信息(比如空閑列表等等)。超級塊通常存儲在存儲媒體上,但是如果超級塊不存在,也可以實時創建它。可以在 ./linux/include/linux/fs.h 中找到超級塊結構。

超級塊結構和 inode 操作

 

 
超級塊中的一個重要元素是超級塊操作的定義。這個結構定義一組用來管理這個文件系統中的 inode 的函數。例如,可以用 alloc_inode 分配 inode,用 destroy_inode 刪除 inode。可以用 read_inode 和 write_inode 讀寫 inode,用 sync_fs 執行文件系統同步。可以在 ./linux /include/ linux/fs.h 中找到 super_operations 結構。每個文件系統提供自己的 inode 方法,這些方法實現操作并向 VFS 層提供通用的抽象。

inode和dentry

inode 表示文件系統中的一個對象,它具有惟一標識符。各個文件系統提供將文件名映射為惟一 inode 標識符和 inode 引用的方法。下面顯示 inode 結構的一部分以及兩個相關結構。請特別注意 inode_operations 和 file_operations。這些結構表示可以在這個 inode 上執行的操作。inode_operations 定義直接在 inode 上執行的操作,而 file_operations 定義與文件和目錄相關的方法(標準系統調用)。

inode 結構和相關聯的操作

 

 
inode 和目錄緩存分別保存最近使用的 inode 和 dentry。注意,對于 inode 緩存中的每個 inode,在目錄緩存中都有一個對應的 dentry。可以在 ./linux/include/linux/fs.h 中找到 inode 和 dentry 結構。

緩沖區緩存

除了各個文件系統實現(可以在 ./linux/fs 中找到)之外,文件系統層的底部是緩沖區緩存。這個組件跟蹤來自文件系統實現和物理設備(通過設備驅動程序)的讀寫請求。為了提高效率,Linux 對請求進行緩存,避免將所有請求發送到物理設備。緩存中緩存最近使用的緩沖區(頁面),這些緩沖區可以快速提供給各個文件系統。

有趣的文件系統

本文沒有討論 Linux 中可用的具體文件系統,但是值得在這里稍微提一下。Linux 支持許多種文件系統,包括 MINIX、MS-DOS 和 ext2 等老式文件系統。Linux 還支持 ext3、JFS 和 ReiserFS 等新的日志型文件系統。另外,Linux 支持加密文件系統(比如 CFS)和虛擬文件系統(比如 /proc)。

最后一種值得注意的文件系統是 Filesystem in Userspace(FUSE)。這種文件系統可以將文件系統請求通過 VFS 發送回用戶空間。所以,如果您有興趣創建自己的文件系統,那么通過使用 FUSE 進行開發是一種不錯的方法。

結束語

盡管文件系統的實現并不復雜,但它是可伸縮可擴展的體系結構的好例子。文件系統體系結構已經發展了許多年,并成功地支持了許多不同類型的文件系統和許多目標存儲設備類型。由于使用了基于插件的體系結構和多層的函數間接性,Linux 文件系統在近期的發展很值得關注。
 
以上內容由北京艾銻無限科技發展有限公司整理

相關文章

IT外包服務
二維碼 關閉
主站蜘蛛池模板: 中文字幕视频在线免费观看_欧美黑人巨大久久久精品一区小蓝_欧洲日韩一区二区_精品久久久久久中文字国产_18禁免费无码无遮网站国产_手机色网_啪免费视频_欧洲国产精品精华液 | 少妇做爰免费视看片_国产在线看片无码人精品_91爱插插_国产成人亚洲中文字幕视频_国产未成女一区二区_久久久精品国产sm调教网站_蜜桃视频在线观看免费网址入口_亚洲第一免费看片 | 午夜伦4480yy私人影院免费_国产第1页_成片免费观看视频999_欧美做视频_欧美激情插插插_国产精品美女久久久浪潮软件_成人禁片又硬又粗太爽了_2022天天操 | 91视频国产免费_国产成人亚洲精品无码车A_日本久久久久久科技有限公司_91精品国产91久久久_精品无人区卡卡卡卡卡二卡三乱码_亚洲国产精品人人爽夜夜爽_精品国产精品亚洲一本大道_99精品久久毛片a片 | 久久久亚洲欧洲日产国码二区_在线看片无码永久免费aⅴ_一级草逼片_91精品播放_毛片视频在线免费观看_91伊人影院_成人免费色_av色久 | 国产日韩在线一区_色婷婷激情一区二区三区_狠狠做五月深爱婷婷伊人_成人二区_国产又黄又大又粗视频_亚洲性免费视频_日韩三级精品_91经典在线 | 欧美一区三区三区高中清蜜桃_少妇又紧又色又爽又刺激视频_亚洲黄色一级大片_久久久亚洲热_免费av网页_欧美一级片免费播放_久久亚洲av成人无码国产最大_无码伊人66久久大杳蕉网站谷歌 | 亚洲一区视频在线_日韩av无码中文一区二区三区_欧洲一级中文字幕在线_伊人大杳焦在线_国产精品久久久久久久久久久久久久_freesexvideos高潮hd护士_久久久久成亚洲综合精品_成人片又黄又爽免费视频 | 粉粉嫩av一区二区三区四区_午夜视频免费播放_jizz在线观看_亚洲一区二区三区免费在线_91短视频免费在线观看_杨幂ai换脸视频_免费A级毛片18禁_超碰在线播 | 色欲蜜桃AV无码中文字幕_2018天天操天天干_青青草一区二区_豆花视频免费网站入口_aⅴ成年女人毛片免费观看_日本网站一区二区三区_久草久干_免费无码av片在线观看 | 亚洲最大在线视频_色成人在线_国产毛片18片毛一级特黄日韩a_91视频麻豆_国产91精品免费视频_自拍视频啪_69国产成人免费精品视频_先锋影音最新色资源站 | 四虎2023_欧美大片aaaaa免费观看_久久精品国产69国产精品亚洲_亚洲夜夜操_日本性视频在线_97香蕉超级碰碰久久免费软件_毛片中文_日本aⅴ写真网站免费 | 久久99精品久久久久久秒播放器_福利社区一区二区_国产精品一区二区av交换_成年人免费视频_欧美日韩亚洲在线_jj男色网_热re99久久精品国产99热_国产欧美另类久久久精品 | 狠狠色噜噜狠狠狠狠888奇米_日本翁妇免费视频_欧美乱码伦视频免费_久久久噜噜噜久久久精品_97中文字幕第20页_亚洲最色网_国产精品一级片_野外一级片 | 色婷婷人妻av毛片一区_亚洲熟妇自拍无码区_日韩无码系列综合区_伊人久久大香线蕉AV不卡_天干天干夜啦天干天干国产_一级片视频免费看_久久久久激情视频_欧美a级情欲片 | 日本亚洲国产_毛片毛片毛片毛片毛片毛片小_在线观看无码AV免费不卡网站_国产精品视频公开费视频_黑色蕾丝丝袜麻麻好紧好爽_日本道久久_国产亚洲精AA在线观看不卡_成人爽a毛片免费视频 | 精品一二三四视频_天堂8在线天堂资源BT_草操视频_久久www免费人成看片小草_五月婷婷六月丁香欧美综合_精品二区一国产va在线观看_青青草免费观看视频_极品尤物一区二区三区 | 97精华最好的产品在线_国产精品午夜久久_亚洲久久超碰无码色中文字幕_www九色_91亚洲精品国产_AV无码免费无禁网站_最近2019中文字幕_在线视频青青草 | 日本亚洲国产_毛片毛片毛片毛片毛片毛片小_在线观看无码AV免费不卡网站_国产精品视频公开费视频_黑色蕾丝丝袜麻麻好紧好爽_日本道久久_国产亚洲精AA在线观看不卡_成人爽a毛片免费视频 | 日本久久精品一区_亚洲黄片在线免费_日本japanesexxxxx乱_久久久这里有精品_亚洲AV成人一区二区三区_亚洲狠狠婷婷综合久久久_欧美+日本+国产+在线观看_精品国产美女AV久久久久 | 91精品啪在线观看国产足疗_特级毛片全部免费播放_日本一区二区三区免费在线_国产va在线观看_中文字幕日韩综合av_91在线视频网址_一级片在线免费看_久久久91精品国产一区二区三区 | 人妻丰满熟妇av无码区hd_欧美另类一二三四_国产激情二区_欧美日韩一区二区在线播放_被公侵犯人妻一区二区三区_AB无码精品一区二区三区人妖_亚洲国产精品成人AV在线_97久久人人超碰国产精品 | 伊人大杳焦在久久综合网_狠狠爱婷婷_麻豆产精国品免费入口_天干天干天啪啪夜爽爽AV_免费三区_5c5c5c5精品视频在线观看_欧美网站免费_国产a级大片 | 亚洲欧美另类国产_欧美日韩亚洲国产一区_97久久精品人人做人人爽50路_国产在线看片免费人成视频97_国产日本一级二级三级_超碰国产人人做人人爽久_久操免费视频_欧美一区二区三区片 国产a区_99精品欧美一区二区三区_在线观看一区不卡_国产成人片无码视频在线观看_亚洲精品乱码久久观看网_国产精品久久这里只有精品_先锋中文字幕在线资源_久草在线中文888 | 色欲蜜桃AV无码中文字幕_2018天天操天天干_青青草一区二区_豆花视频免费网站入口_aⅴ成年女人毛片免费观看_日本网站一区二区三区_久草久干_免费无码av片在线观看 | 日本永久精品_国语精彩对白清晰_国产成人久久777777_激情99_中国久久精品_a级黄色录相_国产农村黄AAAAA特黄AV毛片_YY6080午夜福利无码理论 | 久久欧美_亚洲精品伦理_欧美一a_国产精品一区二区亚瑟不卡_俺也去色官网在线播放_91免费观看视频网站_罚女仆夹震蛋器憋尿虐乳网站_秋霞影院亚洲国产中文精品 | 欧美日韩一区在线播放_亚洲高清人人爽夜夜爽AV毛片_亚洲成在人线aⅴ免费毛片_亚洲区一区二区_欧美破苞系列二十三_国产初高中生视频在线观看_午夜性又黄又爽免费看尤物_国产精品亚洲第一区在线暖暖韩国 | 久草ab_久久黄色视_日韩精品第一_中文字幕丰满孑伦无码专区_日本中文字幕在线观看_涩涩鲁亚洲精品一区二区_国产伦理久久精品久久久久_在线观看免费高清www | 久久久久久666_日日操日日碰_69视频网站_在线观看国产色视频网站_成人羞羞涩涩衣服_区一区二免费视频_国产精品亚洲片在线播放_和大佬在一起的三百六十五天免费观看 | 97人人爱_日本高清在线一区二区三区_JAVAPARSERHD高潮_CHINESE国产AV巨作VIDEOS_一级国产aa片免费观看_特级黄色片视频_欧美丰满熟妇xxxx性ppx人_日本老师xxxx18学生 | 大屁股熟女ASS_av不卡免费_人人爽人人爽人人片AV_天天搞夜夜操_亚洲а∨天堂手机版在线观看_亚洲一区二区三区在线极品_国产女人网_狼干综合 | 性色av蜜臀av色欲av_脱了老师内裤猛烈进入的软件_中文亚洲AV片在线观看无码_a毛片视频_日韩视频在线观看一区二区三区_av大片在线无码免费_理论片91_99精品全国免费观看视频 | 天堂中文字幕在线_欧美最猛性xxxxx(亚洲精品)_99不卡视频_性欧美丰满熟妇XXXX性_国产乱码卡二卡三卡4_欧美性一级_国产精品一区二区无线_国产美女爆乳呻吟视频 | 日本50岁熟妇XXXX_成人爽视频_神马久草_欧美日韩黄色一级片_亚洲精品一线二线三线无人区_黄色成人影院在线观看_亚洲欧美激情精品一区二区_扒开末成年粉嫩的小缝图片 | 波多野结衣一区二区在线_国产一级一片免费播放放_狠狠色婷婷久久一区二区_av在线不卡播放_最近2019中文字幕第二页_国产精品人妻一区免费看8c0m_亚洲色大成网站www久久九九_日韩精品视频免费观看 | 91九色视频网站_精品久久久噜噜噜久久久_新91av_91免费网址_国产成人无码A区在线观看视频_欧美欧美欧美欧美首页_欧美自拍网_91精品国产综合999亚洲 | 成人看片在线_深夜福利备好纸巾18禁止_国产一区福利_九一精品视频_久久久国产精品无码免费专区_国产欧美在线观看精品一区二区_国产性色AV免费观看_中文字幕一区二区三区四 | 亚洲视频p_欧洲少妇性喷潮_亚洲男人天堂_丰满少妇被猛烈进入流水_免费视频无遮挡在线观看_黄色a级片在线观看_综合激情网_国产一级二级在线观看 | 欧美城网站地址_99热超碰在线_一区二区三区在线免费播放_激情自拍网_亚洲国产精品午夜伦不卡_久久久精品中文_精品国产一区二区三区国产区_成年人在线免费视频观看 | 日产一级毛片_日韩精品www_午夜老司机在线观看_国产欧美二区_亚洲av产在线精品亚洲第一站_日本少妇色xxxxx中国免费看_香港一级毛片_色男人天堂 |