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
主站蜘蛛池模板: 欧洲高清无码在线| 免费观看男人免费桶女人视频| 一区二区日韩国产精久久| 无码久看视频| 欧美精品另类| 国产九九精品视频| 国产噜噜噜| 色偷偷av男人的天堂不卡| 国产成人高清亚洲一区久久| 熟妇无码人妻| 91丝袜美腿高跟国产极品老师| 永久天堂网Av| 另类专区亚洲| 日韩欧美国产综合| 在线视频亚洲色图| 国产伦精品一区二区三区视频优播 | 成人毛片免费观看| 国产欧美日韩资源在线观看| 日韩毛片免费视频| 精品中文字幕一区在线| 欧美另类精品一区二区三区| 美女被躁出白浆视频播放| 国产精品白浆无码流出在线看| 国产精品区网红主播在线观看| 欧美中文字幕一区| 五月激情婷婷综合| 免费啪啪网址| 亚洲第一成年网| 99热这里只有精品免费| 青青草国产一区二区三区| 国产日韩欧美在线视频免费观看| 国产自在自线午夜精品视频| 国产在线视频福利资源站| 精品久久久无码专区中文字幕| 久久婷婷五月综合色一区二区| 成人福利一区二区视频在线| 日本欧美午夜| 国产一二三区在线| 天天综合网站| 精品国产成人高清在线| 亚洲天堂.com| 国产成人艳妇AA视频在线| 亚洲黄色视频在线观看一区| 一级香蕉人体视频| 精品成人免费自拍视频| 国产91九色在线播放| 第一区免费在线观看| 国产福利免费观看| 午夜人性色福利无码视频在线观看| 国产福利一区在线| 日韩天堂视频| 午夜福利免费视频| 欧美日韩在线第一页| 精品国产aⅴ一区二区三区 | 日韩不卡免费视频| 五月婷婷激情四射| 欧美综合中文字幕久久| 成年人久久黄色网站| 国产精品美人久久久久久AV| 精品国产一二三区| 2020精品极品国产色在线观看| 国产亚洲精品在天天在线麻豆| 国产97公开成人免费视频| 女人一级毛片| 日本91视频| 思思热精品在线8| 中文字幕亚洲电影| 亚洲香蕉伊综合在人在线| 无码福利日韩神码福利片| 亚洲日韩国产精品无码专区| 亚洲精品手机在线| 国产女人在线| 久久精品最新免费国产成人| 国产高清毛片| 亚洲a级在线观看| 中国一级特黄大片在线观看| 国产精品无码翘臀在线看纯欲| 日韩毛片免费| 青青草国产免费国产| 亚洲天堂日韩av电影| 成人亚洲国产| 久久这里只有精品国产99|