Virtual file system (VFS)

WaylinCh 1,570 views 14 slides Jul 02, 2014
Slide 1
Slide 1 of 14
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14

About This Presentation

No description available for this slideshow.


Slide Content

1
Virtual FileSystem(VFS)
Wayling
2011.12.20

2
Outline
•Introduce VFS
•VFS implement
•Ramfs
•Vfs/ramfs to Bos

3
virtual file system(1/2)
ls mkdir mount
libc
VFS
cpiofs
procfs
arfs
devfs
tarfs
ramfs
filesystem

4
virtual file system(2/2)
•vfs framework
–vnode / file / dirent struct
–mount / mkdir
•no file I/O
–device model
–file block struct
–read / write
•no lock
–no Synchronized

5
VFS implement (call trace)
•mount->sys_mount->ramfs_mount
•mkdir->sys_mkdir->ramfs_mkdir
•open_dir->sys_opendir->ramfs_opendir
•read->sys_read->ramfs_read
•write->sys_write->ramfs_write

6
VFS implement (vnode)

7
vfs 轉換
•轉換vnode 到個別檔案系統的節點
–namei / lookup
•找到對應filesystem,root point
•分解路徑
•轉換


/test/test1
/ /test /test/test1
Filesystem 相關

8
mount
• “/” ,根目錄比較特別 ,需要直接用 mount建立,
其他目錄皆需用 mkdir 創建
•sys_mount掛載一個 檔案系統,所有操作皆會
被轉為此檔案系統各自的操作
/
ramfs
/test
ext2

9
mkdir
•sys_mkdir建立vnode 轉為個別檔案系統的節
點之操作
依據路徑
轉換vnode
是否存在
目錄存在
建vnode,
呼叫對應檔案系統之 mkdir

10
vnode 查詢
•vnode查詢頻繁,故使用hash function查詢

vnode_table

11
ramfs(1/2)
•vnode -> ramfs_node
•ramfs 自我組織

/
/test1
/test2
/test

12
ramfs 填填看(2/2)

13
vfs/ramfs to Bos
•Porting from prex/xboot
•Github
https://github.com/benwei/bos/tree/feature-
vfs
•fs
–vfs
–ramfs
•ls command

14
reference
•[vfs-feature]
•https://github.com/benwei/bos/tree/feature-
vfs
•[xboot]
•https://github.com/jerryjianjun/xboot
•[prex]
•https://github.com/AndrewD/prex
Tags