999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux虛擬文件系統對物理文件的管理

2011-06-22 08:19:48侯旗陳慈發艾偉
單片機與嵌入式系統應用 2011年12期
關鍵詞:進程物理結構

侯旗,陳慈發,艾偉

(三峽大學,宜昌443002)

引 言

隨著嵌入式技術的發展,越來越多的嵌入式設備采用Linux作為其操作系統。Linux支持各種物理文件系統,而不同物理文件系統具有不同的組織結構和不同的處理方式。為了兼容支持不同的文件系統,Linux設計了在系統啟動時由系統在內存創建的文件系統,即虛擬文件系統(Virtual File System,VFS)。該文件系統對不同的物理文件系統的所有特性進行抽象,屏蔽各種文件系統的差別,向Linux內核和進程提供了一個處理各種物理文件系統的公共接口,從而實現了對不同文件系統的支持。而且,Linux系統把一切的設備也當作文件來處理。理解Linux虛擬文件系統機制對于學習Linux運行原理起著重要的作用。本文對Linux虛擬文件系統原理進行了較為詳盡的分析。

1 Linux VFS基本原理

Linux以EXT2作為基本的文件系統,組成虛擬文件系統的超級塊、索引節點、目錄項等數據結構,兼容于各種文件系統的相應數據結構,從而實現了對多種文件系統的透明調用。

1.1 Linux所支持的文件系統的一般結構

Linux繼承了Uinx,把文件名和文件控制信息分開管理。一個Linux所支持的物理文件系統使用的塊設備上的一個獨立邏輯分區可大致分為:引導塊、超級塊、inode塊、data塊4部分[1]。超級塊是描述文件系統整體信息的數據結構,在系統運行期間被讀入內存,在內存中建立一個超級塊的映像。Linux所支持的文件系統的一般結構如圖1所示。

圖1 Linux所支持的文件系統的一般結構

1.2 VFS對物理文件系統的管理

Linux VFS采用超級塊(super_block)和索引節點(inode)來描述文件系統。這里的super_block和inode不同于物理文件系統中的super_block和inode數據結構,VFS super_block是VFS把不同文件系統中的整體組織和結構信息進行抽象后形成的,兼顧不同文件系統的統一的超級塊結構。在安裝文件系統時,由系統在內存中建立,其內容主要由文件系統的超級塊數據來填充。inode則是在系統打開文件時,由系統在內存動態建立,其內容主要由文件系統的inode節點的數據來填充。

Linux VFS除了沒有存儲文件內容的data塊外,文件系統的結構與物理文件系統基本相似,如圖2所示。

圖2 Linux VFS文件系統結構

Linux進程通過VFS中相應的超級塊和索引節點中的信息,準確地訪問操作目的磁盤文件系統中的相應文件。

2 Linux VFS的實現

為了區分文件系統中的inode,這里把VFS中的inode稱為vnode。

Linux系統支持文件系統目錄樹機制,根據路徑名,如/home/xyz/work/test.c,就 可 以 在 磁 盤 上 找 到 文 件test.c的目錄項和索引節點。在路徑/home/xyz/work/test.c中,目錄/、home、xyz、work以及普通文件test.c都對應一個目錄項對象。目錄項在磁盤文件系統中的數據結構是dir_entry,VFS在遍歷路徑名的過程中將其解析成內存目錄項對象(dentry對象)和vnode對象。

vnode與某個文件的對應關系是通過設備號i_dev與inode號i_ino建立的,它們唯一地指定了某個設備上的一個文件或目錄。vnode是設備上的文件或目錄的inode在內存中的統一對應結構,并且給出了不同文件系統特有的信息,即各種文件系統的inode在內存中的映像。

如前所述,Linux繼承了Uinx,把文件名和文件控制信息分開管理,由目錄項(dir_entry)管理文件名,索引節點(inode)管理文件控制信息,并且通過dir_entry結構中的d_inode域指向文件的inode節點,建立與文件索引節點的聯系。文件的索引節點(inode)結構體包含了關于文件的組織信息和管理信息,根據其中的i_info查找存儲文件內容的數據塊,根據i_op指向的inode_operations結構,通過其中的指針函數調用各自的inode操作函數。

系統進程使用文件由表示進程當前打開的所有文件的數據結構files_struct建立進程與文件系統的關系。指針fd和fd_array都指向代表打開文件對象數組。進程調用文件操作函數,依據文件路徑打開文件,文件操作函數返回一整數,即文件描述符,例如int open(const char*pathname,int flages)[2]。之后,進程便用文件描述符來表示一個打開的文件,該整數文件描述符就是files_struct中file數組fd的下標。

圖3描述了進程使用文件時用到的VFS中主要數據結構的關系。

圖3 VFS中主要數據結構關系圖

dentry結構描述的是邏輯意義上的文件,記錄的是其邏輯上的屬性。只要是有效的dentry結構,則其指針d_inode必定指向一個inode結構。而inode結構所代表的是物理意義上的文件,記錄的是其物理上的屬性。一個inode結構可能對應著不只一個dentry結構,因為一個物理意義上的文件可以被鏈接(link)其他路徑名。

所以,在inode結構中有個隊列i_dentry,凡是代表著這個文件的所有目錄項(普通文件也是目錄文件的一種)都是通過dentry結構中的d_alias掛入相應的inode結構中的i_dentry隊列。

結 語

本文主要從數據結構的角度出發,對Linux虛擬文件系統的實現技術作了簡要的分析。Linux系統把一切設備都作為文件看待,深入探究Linux虛擬文件系統的文件組織方式,可以為系統軟件設計和嵌入式Linux驅動開發提供一定參考價值。

[1]毛德操.Linux內核源代碼情景分析(上)[M].杭州:浙江大學出版社,2009:428-430.

[2]韓超,魏治宇,寥文江.嵌入式linux上的C語言編程實踐[M].北京:電子工業出版社,2009:163-164.

猜你喜歡
進程物理結構
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
處處留心皆物理
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
三腳插頭上的物理知識
論《日出》的結構
我不是教物理的
中學生(2015年2期)2015-03-01 03:43:33
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 成人精品午夜福利在线播放| 中文字幕2区| 欧美第一页在线| 一本大道香蕉高清久久| 五月激情综合网| 一级毛片在线播放免费观看 | 夜夜操天天摸| 97免费在线观看视频| 欧美亚洲激情| 欧美日韩亚洲综合在线观看 | 深爱婷婷激情网| 久久黄色一级视频| 国产精品自在在线午夜区app| 国产精品亚洲综合久久小说| 亚洲精品你懂的| 巨熟乳波霸若妻中文观看免费| 日本免费精品| 国产亚洲精品va在线| 国产自在自线午夜精品视频| 亚洲中文字幕av无码区| 激情影院内射美女| 亚洲视频无码| 欧美日韩精品一区二区视频| 2021国产v亚洲v天堂无码| 亚卅精品无码久久毛片乌克兰| 波多野结衣视频网站| 久久久久久尹人网香蕉 | 男人的天堂久久精品激情| 久久亚洲中文字幕精品一区| 91精品啪在线观看国产91| 麻豆国产在线观看一区二区| 国产成人亚洲精品色欲AV | 成人福利在线视频| 国产女同自拍视频| 欧美国产在线看| 午夜毛片福利| 亚洲日产2021三区在线| 亚洲视屏在线观看| 青青国产成人免费精品视频| 国产一级小视频| 亚洲色精品国产一区二区三区| 国产极品美女在线观看| 有专无码视频| 国产一级毛片高清完整视频版| 亚洲区一区| 国产91透明丝袜美腿在线| 国产精品3p视频| 精品久久人人爽人人玩人人妻| 国产精鲁鲁网在线视频| 香蕉99国内自产自拍视频| 久久综合亚洲鲁鲁九月天| 一级毛片免费不卡在线 | 国产导航在线| 亚洲性视频网站| 91午夜福利在线观看精品| 国产在线欧美| 亚洲Aⅴ无码专区在线观看q| 美女无遮挡拍拍拍免费视频| 日本三级欧美三级| 亚洲天堂免费在线视频| 国产免费久久精品99re不卡| 国内精品视频| 超清无码一区二区三区| 成人国产一区二区三区| 亚洲国产精品无码AV| 亚洲乱码视频| 男女男免费视频网站国产| 精品亚洲国产成人AV| 亚洲自偷自拍另类小说| 久久国产V一级毛多内射| 天堂成人av| 99视频在线免费| 日韩毛片在线视频| 性视频久久| 成人日韩精品| 99久久精品视香蕉蕉| 国产精品亚洲一区二区三区在线观看 | 青青青国产在线播放| 精品久久香蕉国产线看观看gif| 精品国产福利在线| 国产在线精品99一区不卡| 国产三级成人|