linux的虛擬文件系統(tǒng)_第1頁(yè)
linux的虛擬文件系統(tǒng)_第2頁(yè)
linux的虛擬文件系統(tǒng)_第3頁(yè)
linux的虛擬文件系統(tǒng)_第4頁(yè)
linux的虛擬文件系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——linux的虛擬文件系統(tǒng)

linux的虛擬文件系統(tǒng)

Linux的虛擬文件系統(tǒng)

linux的虛擬文件系統(tǒng)

提綱虛擬文件系統(tǒng)VFS的作用VFS的數(shù)據(jù)結(jié)構(gòu)文件系統(tǒng)類(lèi)型文件系統(tǒng)安裝路徑名查找VFS系統(tǒng)調(diào)用的實(shí)現(xiàn)文件加鎖

11/03/09

嵌入式OS

2/31

linux的虛擬文件系統(tǒng)

虛擬文件系統(tǒng)VFS的作用虛擬文件系統(tǒng)VirtualFilesystemVirtualFilesystemSwitchVFS是一個(gè)軟件層,用來(lái)處理與Unix標(biāo)準(zhǔn)文件系統(tǒng)相關(guān)的所有系統(tǒng)調(diào)用。是用戶(hù)應(yīng)用程序與文件系統(tǒng)實(shí)現(xiàn)之間的抽象層

能為各種文件系統(tǒng)提供一個(gè)通用的、統(tǒng)一的接口

Linux與其他類(lèi)Unix系統(tǒng)一樣,采用虛擬文件系統(tǒng)VFS來(lái)達(dá)到支持多種文件系統(tǒng)格式的目標(biāo)

11/03/09

嵌入式OS

3/31

linux的虛擬文件系統(tǒng)

VFS在一個(gè)簡(jiǎn)單文件復(fù)制操作中的作用假設(shè)用戶(hù)輸入以下shell命令$cp/floppy/TEST/tmp/test其中,/floppy是MS-DOS的磁盤(pán)的一個(gè)掛載點(diǎn)(安點(diǎn)綴)/tmp是Ext2文件系統(tǒng)中的一個(gè)目錄

對(duì)于cp命令而言,它不需要知道/floppy/TEST和/tmp/test分別是什么文件系統(tǒng)類(lèi)型在cp命令中,它通過(guò)VFS提供的系統(tǒng)調(diào)用接口進(jìn)行文件操作

11/03/09

嵌入式OS

4/31

linux的虛擬文件系統(tǒng)

11/03/09

嵌入式OS

5/31

linux的虛擬文件系統(tǒng)

VFS支持的文件系統(tǒng)類(lèi)型VFS支持的文件系統(tǒng)可以劃分為三種主要類(lèi)型基于磁盤(pán)的文件系統(tǒng):它們管理在本地磁盤(pán)分區(qū)中可用的存儲(chǔ)空間Linux使用的文件系統(tǒng):ext2、ext3、ReiserFSUnix家族的文件系統(tǒng):SYSV文件系統(tǒng),UFS,MINIX文件系統(tǒng)以及VERITASVxFS微軟公司的文件系統(tǒng):MS-DOS、VFAT以及NTFSISO9660CD-ROM文件系統(tǒng)和通用磁盤(pán)格式的DVD文件系統(tǒng)其他有專(zhuān)利權(quán)的文件系統(tǒng),如HPFS、HFS、AFFS、ADFS起源于非Linux系統(tǒng)的其他日志文件系統(tǒng),JFS,XFS

11/03/09

嵌入式OS

6/31

linux的虛擬文件系統(tǒng)

網(wǎng)絡(luò)文件系統(tǒng):用于訪(fǎng)問(wèn)屬于其他網(wǎng)絡(luò)計(jì)算機(jī)的文件系統(tǒng)所包含的文件NFS、Coda、AFS、SMB、NCP

特別文件系統(tǒng)不同于上述兩大類(lèi)不管理具體的磁盤(pán)空間/proc

各種不同的文件系統(tǒng)通過(guò)mount(掛載、安裝)到根文件系統(tǒng)中在Linux中,根文件系統(tǒng)即根目錄所代表的文件系統(tǒng)尋常是ext2文件系統(tǒng)

11/03/09

嵌入式OS

7/31

linux的虛擬文件系統(tǒng)

VFS中通用文件模型概念VFS的基本思想:引入一個(gè)通用文件模型,這個(gè)模型能夠表示所有支持的文件系統(tǒng)對(duì)于一個(gè)具體實(shí)現(xiàn)的文件系統(tǒng),在處理時(shí),需要將其進(jìn)行概念上的轉(zhuǎn)換例如,在通用文件模型中,目錄被看成是普通文件

在實(shí)現(xiàn)上,

read()sys_readfile數(shù)據(jù)結(jié)構(gòu)f_opMS_DOS文件操作指針(其中的read操作)類(lèi)似面向?qū)ο蟮母拍?/p>

11/03/09

嵌入式OS

8/31

linux的虛擬文件系統(tǒng)

通用文件模型有以下對(duì)象類(lèi)型組成超級(jí)塊對(duì)象(superblockobject)存放文件系統(tǒng)相關(guān)信息:例如文件系統(tǒng)控制塊

索引節(jié)點(diǎn)對(duì)象(inodeobject)存放具體文件的一般

信息:文件控制塊/inode

文件對(duì)象(fileobject)存放已開(kāi)啟的文件和進(jìn)程之間交互的信息

目錄項(xiàng)對(duì)象(dentryobject)存放目錄項(xiàng)與文件的鏈接信息

11/03/09

嵌入式OS

9/31

linux的虛擬文件系統(tǒng)

三個(gè)不同的進(jìn)程開(kāi)啟同一個(gè)文件

同一個(gè)硬鏈接

兩個(gè)不同的硬鏈接

11/03/09

嵌入式OS

10/31

linux的虛擬文件系統(tǒng)

VFS所處理的系統(tǒng)調(diào)用mount、umount:掛載/卸載文件系統(tǒng)sysfs:獲取文件系統(tǒng)信息statfs、fstatfs、ustat:獲取文件系統(tǒng)統(tǒng)計(jì)信息chroot:更改根目錄chdir、fchdir、getcwd:操縱當(dāng)前工作目錄mkdir、rmdir:創(chuàng)立/刪除目錄getdents、readdir、link、unlink、rename:對(duì)目錄項(xiàng)進(jìn)行操作readlink、symlink:對(duì)符號(hào)鏈接進(jìn)行操作chown、fchown、lchown:更改文件所有者chmod、fchmod、utime:更改文件屬性open、close、create…

11/03/09

嵌入式OS

11/31

linux的虛擬文件系統(tǒng)

上述大部分操作之需要與通用文件模型中的一些對(duì)象打交道,而不需要真正操作具體的文件系統(tǒng)和文件,因此可以把VFS看成是一個(gè)“通用〞的文件系統(tǒng),在必要時(shí)依靠某種具體的文件系統(tǒng)

11/03/09

嵌入式OS

12/31

linux的虛擬文件系統(tǒng)

VFS的數(shù)據(jù)結(jié)構(gòu)每個(gè)VFS對(duì)象都對(duì)應(yīng)一定的數(shù)據(jù)結(jié)構(gòu),在這個(gè)數(shù)據(jù)結(jié)構(gòu)中包含對(duì)象的屬性及其方法include/linux/fs.h

一個(gè)具體的文件系統(tǒng):超級(jí)塊對(duì)象:super_block所有超級(jí)塊鏈表:super_blocks:s_list域文件系統(tǒng)特有信息:s_fs_info域臟標(biāo)志:s_dirt域文件系統(tǒng)特有方法:super_operations數(shù)據(jù)結(jié)構(gòu)及域

11/03/09

嵌入式OS

13/31

linux的虛擬文件系統(tǒng)

一個(gè)具體的文件:Inode對(duì)象:inodeInode特有的方法

include/linux/fs.h

目錄項(xiàng)對(duì)象:dentry

include/linux/dcache.h

一個(gè)開(kāi)啟文件:文件對(duì)象:file文件操作指針f_pos文件對(duì)象特有的方法

include/linux/fs.h

專(zhuān)用高速緩存:“filp〞,filp_cachep11/03/09嵌入式OS14/31

linux的虛擬文件系統(tǒng)

11/03/09

嵌入式OS

15/31

linux的虛擬文件系統(tǒng)

11/03/09

嵌入式OS

16/31

linux的虛擬文件系統(tǒng)

與進(jìn)程相關(guān)的文件文件系統(tǒng)相關(guān)信息fs_struct開(kāi)啟文件相關(guān)信息files_structinclude/linux/fs_struct.h

include/linux/path.h

11/03/09

嵌入式OS

17/31

linux的虛擬文件系統(tǒng)

include/linux/fdtable.h

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論