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
主站蜘蛛池模板: 久久精品中文字幕免费| 国产丝袜精品| 在线日韩日本国产亚洲| 国产日本欧美亚洲精品视| 香蕉综合在线视频91| 亚洲最大看欧美片网站地址| 波多野结衣视频一区二区| 高清色本在线www| 极品国产一区二区三区| 中文字幕在线一区二区在线| 超碰色了色| 天天操天天噜| 精品少妇三级亚洲| 欧美A级V片在线观看| 丁香五月婷婷激情基地| 久久精品国产精品国产一区| 亚洲第一成年人网站| 一本色道久久88亚洲综合| 欧美中文字幕一区二区三区| 中文字幕在线免费看| 亚洲浓毛av| 性色在线视频精品| 亚洲浓毛av| 国产精品妖精视频| 18黑白丝水手服自慰喷水网站| 91最新精品视频发布页| 亚洲欧美日韩另类在线一| 欧美日韩免费观看| 国产白浆视频| 99精品视频播放| 免费在线色| 国产精品美女网站| 最新日本中文字幕| 亚洲免费毛片| 久久动漫精品| 国产在线精品人成导航| 亚洲aaa视频| 亚洲精品国产精品乱码不卞| 中文国产成人久久精品小说| 精品综合久久久久久97超人| 欧美午夜小视频| 日韩AV无码免费一二三区| 日本a∨在线观看| 中国精品自拍| 欧美一级在线| 九九热精品视频在线| 亚洲一区二区三区香蕉| 色悠久久综合| 国产真实乱人视频| 91精品国产福利| 夜夜高潮夜夜爽国产伦精品| 欧美综合一区二区三区| 国产成人精品男人的天堂下载 | 色婷婷久久| 日本欧美在线观看| 久久99蜜桃精品久久久久小说| 国产精品jizz在线观看软件| 久久这里只有精品国产99| 国产精品30p| 蝌蚪国产精品视频第一页| 伊人色在线视频| 高清无码一本到东京热| 国产福利免费观看| 一级毛片在线免费视频| 99久视频| 青青青伊人色综合久久| 亚洲精品欧美重口| 日本人真淫视频一区二区三区| 一本久道久久综合多人 | 欧美成人精品高清在线下载| 一级全黄毛片| 中文字幕佐山爱一区二区免费| 免费视频在线2021入口| 91精品久久久久久无码人妻| 久久久无码人妻精品无码| 国产精品国产主播在线观看| 国产国产人成免费视频77777| 免费午夜无码18禁无码影院| 国产成人一区免费观看| 理论片一区| 高清视频一区| 黄色片中文字幕|