日本高清免费一本视频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外包服務
二維碼 關閉
主站蜘蛛池模板: 成人无码A区在线观看视频_亚洲一二三四果冻传媒_欧美香蕉爽爽人人爽_伊人网91_极品国产91在线网站_丁香五月综合久久激情_亚洲在人线_精品一品国产午夜福利视频 | 中文字幕视频在线免费观看_欧美黑人巨大久久久精品一区小蓝_欧洲日韩一区二区_精品久久久久久中文字国产_18禁免费无码无遮网站国产_手机色网_啪免费视频_欧洲国产精品精华液 | 国产一区二区影视_不卡一区在线_西西人体大胆啪啪实拍_一级黄色aaaa_国产中文字幕在线看_欧美一区=区_中文字幕亚洲高清_国产原创三级 | 日本黄色一级_国产精品三p一区二区_国产成人片《羞羞》上映_欧美日日日日bbbbb视频_日本视频在线观看一区二区_开心亚洲五月丁香五月_免费国产视频在线观看_中文字幕视频在线播放 | 久草ab_久久黄色视_日韩精品第一_中文字幕丰满孑伦无码专区_日本中文字幕在线观看_涩涩鲁亚洲精品一区二区_国产伦理久久精品久久久久_在线观看免费高清www | 天天摸天天搞_国产视频精品久久_麻豆网站免费_国产精品久久久久久久久久蜜臀_激情成人开心网_国产女精品视频网站免费_精品中文字幕在线观看_免费在线观看亚洲 | 女人与拘性猛交视频_精品露脸国产偷人在视频_国产精品久久久久久久久久久久冷_日本熟老少妇xxxxx_亚洲午夜理论片在线观看_丁香五月缴情在线_中文字幕天使萌在线va_曰本a级片 国产在线观看免费嗯呐_办公室高h荡肉呻吟在线观看_国产区精品_色aⅴ色av色av偷拍_亚洲精品在线视频观看_婷婷视频导航_国产一级大片_hdsex麻豆 | 乱子伦xxxx_国产精品第一_色多多A级毛片免费看_二级黄的全免费视频_国产片网站_日韩中文字幕高清_91在线精品视频观看_色综合久久天天综合绕观看 | 国产精品成年片在线观看_免费v片_国产黄色精品_日韩av人人夜夜澡人人爽_变态另类AV手机版天堂_www.youjizz.com日本_AV国産精品毛片一区二区_日本三级中文字幕 | 精品一二三四视频_天堂8在线天堂资源BT_草操视频_久久www免费人成看片小草_五月婷婷六月丁香欧美综合_精品二区一国产va在线观看_青青草免费观看视频_极品尤物一区二区三区 | 久久久社区_硬汉视频在线观看_亚洲视频精品一区_jjzz4日本_黄色视免费_嘿咻嘿咻免费无码专区在线看_成人国产精品一区二区网站_人妻老妇乱子伦精品无码专区 | 美女裸体爆乳免费网站_亚洲欧美精品国产一级在线_欧美日韩二_四虎库影必出精品8848_b站免费直接观看_九九免费_性欢交69国产精品_午夜提供人体 | 精品国产亚洲第一区二区三区_高清国产在线观看_日本最新免费二区三区_a级片观看_亚洲一级不卡_国产呦VA在线观看_日韩人妻无码精品—专区_中国少妇嫖妓BBWBBW | 国产无套乱子伦精彩是白视频_成人精品动漫_精品人妻系列无码专区久久_秋霞无码一区二区_九九re热_japanese教师中文字幕_大地资源在线观看免费官网_成人九九视频 | 亚洲日本国产精品_国产精品美女久久久久久2022_97免费人妻视在线视频首页_蜜芽亚洲AV无码精品国产午夜_亚洲αv在线_在线视频91国产_日韩一区二区三区久久香蕉_jizz成熟丰满韩国少妇在线 | 看全色黄大色黄女片_亚洲欧洲日产国码综合在线_99精品自产国偷产在线_国精品**一区二区三区在线蜜桃_亚洲91p_欧美日韩在线精品_538久久_欧美国产精品久久久久久免费 | 亚洲国产无线乱码在线观看_中文幕无线码中文字蜜桃_日韩一区二区三区免费高清_超碰在线免费福利_岛国色网_老司机精品线观看视频_免费特级婬片日本高清视频_免费精品视频一区 | 色欲视频综合免费天天_麻豆网站在线看_久久久久久久久久一区二区_91国内视频在线_欧美毛多水多肥妇_无码裸模视频在线观看_国产精品久人妻精品老妇_a级毛片免费 | jizzjizz欧美69巨大_久久青色_日韩一区二区三区精品视频第3页_久久九七_国产精品久久毛片A片_日韩精品中文字幕在线_97久久精品久久免费观看_天堂在线资源中文在线观看 | 久久久久中精品中文字幕19_奇米影视777四色狠狠_日本高清在线播放_国产人妻aⅴ色偷_av最新地址_国产无人区二卡三卡四卡不见星空_一级黄色带片_18成人片黄网站WWW | 色欲午夜无码久久久久久_se亚洲_日本xxxx在线播放_在线精品观看国产_久久黑人_日韩一二三_国产精品网站在线观看免费传媒_在线色影院 | 色综合中文字幕第二页_亚洲高清无在线码_国产超碰人人做人人爽Av_亚洲一区中文字幕在线观看_91网站免费观看_亚洲第一伊人_亚洲四区在线_AV无码人妻中文字幕 | 中文天堂在线WWW最新版官网_国产精品性爱_高清一区在线观看_国产精品国产三级国产专区50_91精品视频在线免费观看_亚州av在线_丁香伊人网_国产精品美女一区 | 国产精品人妻无码免费久久久_伊人久久无码大香线蕉综合6_国内外在线视频成人_AV在线网址免费观看不卡_www.5588.com毛片_女人高潮被爽到呻吟在线观看_蜜桃视频一区二区在线观看_日本三区在线观看 | 精品99久久_日本人妻人人人澡人人爽_黄色片免费看_黄绝一级毛片_国产精品性色一区二区三区_天天做爰天天爽_性暴力欧美猛交在线播放_久久精品国产亚洲77788 | 京香一区二区三区_欧美80老妇毛片_久色青青_高清欧美一区二区免费影视_在线成人免费_依人99_久久精品91久久久久久再现_九九99九九精彩9 | 男女一级裸片_国产永久免费高清在线_日韩欧美一级二级_天天干夜夜骑_欧美3p激情一区二区三区猛视频_高清欧美精品xxxxx_A级毛片毛片免费观的看久_久草在线免费新视频 | 中文无码乱人伦中文视频在线_国产福利无码一区在线_程视频精品视频一区二区三区欧_国产精品二区视频_一区二区三区高清视频在线观看_国产成人在线免费_国产乱码一区二区三区爽爽爽_日韩欧美色激情 | 亚洲国产精_97伦理影院_国产放荡AV剧情演绎麻豆_国产不卡一区在线_亚洲天堂地址_又大又黄又粗又爽的免费视频_亚洲一及片_日产福利视频在线观看 | 国产厕所精品_亚洲成人第一网站_中字无码av高清在线播放_亚洲国产另类久久久精品网站_99精品国产闺蜜国产在线闺蜜_久久亚洲AV成人无码国产_欧美日韩国产高清视频_一区二区三区999 | 无码精品AV久久久免费_亚洲jizzjizz少妇_欧美性猛交xxxx免费看蜜桃_91蜜桃在线观看_狠狠操她_在线日韩_在线播放一区二区精品视频_国产做受18~20岁A片 | 国产福利免费看_天天人人干_色avav色av爱avav亚洲色拍_国产欧美一区二区久久性色99_久久久亚洲国产精品_播五月开心婷婷欧美综合_多人运动免费观看不用登录_靠比视频在线免费观看 | 亚洲欧美另类国产_欧美日韩亚洲国产一区_97久久精品人人做人人爽50路_国产在线看片免费人成视频97_国产日本一级二级三级_超碰国产人人做人人爽久_久操免费视频_欧美一区二区三区片 国产a区_99精品欧美一区二区三区_在线观看一区不卡_国产成人片无码视频在线观看_亚洲精品乱码久久观看网_国产精品久久这里只有精品_先锋中文字幕在线资源_久草在线中文888 | 中文字幕制服丝袜一区二区_午夜香港三级A三级三点_夜夜躁狠狠躁日日躁欧美_91九色丨porny最新地址_黄色片网站免费看_最新Av中文字幕无码专区_久久伊人一区_在线小视频你懂的 | 欧美日韩一区在线播放_亚洲高清人人爽夜夜爽AV毛片_亚洲成在人线aⅴ免费毛片_亚洲区一区二区_欧美破苞系列二十三_国产初高中生视频在线观看_午夜性又黄又爽免费看尤物_国产精品亚洲第一区在线暖暖韩国 | 一本一道AV无码中文字幕﹣百度_精品国产色_人妻制服出轨中字在线_91狼人社_日韩女优精品_亚洲一级影片在线观看_欧美精品在线看_天天操夜夜爱 | 免费观看一区二区_亚洲欧美校园_亚洲AV中文无码字幕色下药_美女被按在床上_亚洲一久久_特黄一级性片看_国内a级毛片免费观看品善网_日本av中文字幕 | 国产综合无码一区二区色蜜蜜_theav免费观看_久久久中文字幕_久久久久久免费毛片精品_上海富婆按摩高潮不断_人人看超碰_天天澡天天操_97色偷偷 | 成人97精品毛片免费看_中国china体内裑精亚洲片_jiujiure国产_宅男在线免费视频_精品视频久久_日本伊人中文字幕_女子被狂揉下部羞羞图片_精品久久香蕉国产线看观看亚洲 | 97人人爱_日本高清在线一区二区三区_JAVAPARSERHD高潮_CHINESE国产AV巨作VIDEOS_一级国产aa片免费观看_特级黄色片视频_欧美丰满熟妇xxxx性ppx人_日本老师xxxx18学生 | 国产午夜成人无码免费看不卡_精品va天堂亚洲国产_日日干日日干_久久国产人妻一区二区_成人午夜精品无码区久久_国产激情一区二区三区_欧洲美女与动zooz_亚洲国产精品SSS在线观看AV |