110 likes | 484 Views
u9Proj 期中汇报. 计 85 任胜韦. 目录. 理解 lab6 的 文件系统 确定如何支持 fatfs 简化 的 文件系统 下阶段工作. lab6 的 文件系统. f s_init (). Sys Call. f s.c. sysfile.c. f ile.c. vfs. dev. pipe. sfs. fatfs. mount. stdio. other. Disk0. Disk1. lab6 的文件系统. fs - specific inode. Inode. In_info. pwd. In_type Counts
E N D
u9Proj 期中汇报 计85 任胜韦
目录 理解lab6的文件系统 确定如何支持fatfs 简化的文件系统 下阶段工作
lab6的文件系统 fs_init() Sys Call fs.c sysfile.c file.c vfs dev pipe sfs fatfs mount stdio other Disk0 Disk1
lab6的文件系统 fs-specificinode Inode In_info pwd In_type Counts In_ops Proc: fs_type fs_func() Fs_struct Fs_count Fs_sem fs inode In_fs node fs-specificfs file Stdin,fd=0 Stdout, fd=1 fs_info filemap fd Status Privileges Count pos
支持fatfs vfs inode fs fatfs FATFS FIL/DIR fatfs-standard Config DRIVE buffer C/H/S Disk IO buffer C/H/S Disk1
支持fatfs • Granularity: • inode对应DIR和FIL • fs对应FATFS • Cache & sync • 由fatfs自己处理,其提供f_sync函数 • Re-entrancy • _FS_REENTRANT选项=0 • 由vfs_op完成
支持fatfs • Disk io • Fatfs需要底层disk io函数支持 • 使用驱动器号访问,支持10个驱动器 • Filename • "[drive#:][/]directory/file" • 支持相对路径,LFN和SFN,同时提供支持Unicode的API调用。 • Critical section • f_sync,f_close
简化的文件系统 • Flat Directory • Remove dirops: • mkdir, create, truncate, • link, unlink,rename • Lookup_parent • Remove pipe/fifo • Thin the vfs layer • Proj19~5700 lines, now reduced 1500lines
下阶段工作 • Simple Linked FileSystem • DMA • Buffer cache • Implement in the vfs layer • cache replacement algorithm • write-behind • read-ahead • Boot from USB Device
撰写的wiki Lab6文件系统的理解: http://code.google.com/p/u9proj/wiki/fs_dir_remark 拼接fatfs: http://code.google.com/p/u9proj/wiki/fatfs_vfs_connection 简化文件系统Q: http://code.google.com/p/u9proj/wiki/simple_indexed_fs_QA Buffer cache的理解: http://code.google.com/p/u9proj/wiki/buffer_cache