-
Notifications
You must be signed in to change notification settings - Fork 0
Lab 1 of CSE in Fudan University
License
myly10/CSELab_SimpleUnixFileSystemLayerSimulator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# CSELab_SimpleUnixFileSystemLayerSimulator Lab 1 of CSE in Fudan University 计算机系统工程 LAB1 —— UNIX FILE SYSTEM LAYERING AND NAMING 发布时间: 2015-3-26 DEADLINE: 2015-4-09 (卓越班为 4-16) 目的: 了解 UNIX 文件系统的基本架构,深入理解文件系统的 NAMING LAYER 和相关 API 的具体实 现 要求: 1. 阅读理解教材第二章第五节的内容( Case study: unix® file system layering and naming) 2. 阅读理解项目 SimpleUnixFileSystemLayerSimulator 的框架代码。 该框架包含了 UNIX 文件系统的各层接口,并通过读写 diskblocks.data 文件模拟了 BLOCK 层的相关操作。 diskblocks.data 是一个二进制流文件,我们通过对该文件不同位置的读写, 模拟了 BLOCK 层对磁盘的读写。 在 SimpleUnixFileSystemLayerSimulator.cpp 中,我们定义了一系列的宏,这些宏决定了文 件系统对 blocks 的区域划分(详见教材 P94 Figure2.20),其中包含了 block 的数量以及大 小,bootblock, superblock, bitmap for free blocks, inode table 以及 file blocks 等各个区域的起 始位置和大小, inode 的数据结构和数量等信息。 3. 根据教材第二章第五节,以 SimpleUnixFileSystemLayerSimulator 框架为基础,在 block 读 写操作函数( WRITE_BLOCK_BY_BLOCK_NUMBER 和 BLOCK_NUMBER_TO_BLOCK) 的基础上,实现 unix 文 件系统各个 Layer 中的函数。 4. 添 加 额 外 功 能 函 数 , 并 修 改 main 函 数 中 的 代 码 , 使 得 最 终 编 译 出 的 SimpleUnixFileSystemLayerSimulator.exe 能够支持如下命令行参数,简单起见,之后的 fs.exe 均指代 SimpleUnixFileSystemLayerSimulator.exe: ls 指令,列出某个目录下的文件和子目录 >fs.exe ls <某个目录的绝对路径> export 指令,从文件系统中提取某个文件及其内容,并以原文件名保存在 fs.exe 所在的同一 目录下 >fs.exe export <某个文件的绝对路径> tree 指令,生成某个目录的目录树,须包含该目录的全部子目录和文件,以及子目录下的目 录和文件,以及子目录的子目录下的目录和文件,以及子目录的子目录的子目录下的目录和 文件。。。依次类推,学过数据结构的同学会知道这个叫做递归。。。 orz >fs.exe tree <某个目录的绝对路径> Sample: 下图第七行开始为“ fs.exe tree /”指令的输出,也就是从根目录开始打印目录树。 +前缀表示目录, -前缀表示文件,中间是文件 /目录名称,名称后的括号为对应的 inode_number,如果是文件则最后还须包括该文件的大小。每进入一层子目录,均增加两个 空格的缩进。 find 指令,在某个目录下查询所有名称为某关键字的目录和文件 >fs.exe find <某个目录的绝对路径> <要查询的关键字> 5. 如果命令行参数中的路径不存在, 或出现其它错误, 需给出合理提示。 6. simpledisk.data 中包含了一个简单的目录结构, 同学们可以以此来调试自己的程序。 diskblocks.data 模拟文件中包含了比较多的文件和目录,且 inode number 和 block 并不连续, 同学们可以以此来验证你们的代码是否正确。如果你觉得各 layer 函数的参数和返回值设置 不够合理,可以自行修改,但尽量保证函数名不变,并写好注释 7. 关键步骤务必添加注释
About
Lab 1 of CSE in Fudan University
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published