实验5 添加一个文件系统.doc

实验5 添加一个文件系统.doc

ID:57330537

大小:337.50 KB

页数:14页

时间:2020-08-12

实验5 添加一个文件系统.doc_第1页
实验5 添加一个文件系统.doc_第2页
实验5 添加一个文件系统.doc_第3页
实验5 添加一个文件系统.doc_第4页
实验5 添加一个文件系统.doc_第5页
资源描述:

《实验5 添加一个文件系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验5添加一个文件系统实验目的文件系统是操作系统中最直观的部分,因为用户可以通过文件直接地和操作系统交互,操作系统也必须为用户提供数据计算、数据存储的功能。本实验通过添加一个文件系统,进一步理解Linux中的文件系统原理及其实现。 l 深入理解操作系统文件系统原理l 学习理解Linux的VFS文件系统管理技术l 学习理解Linux的ext2文件系统实现技术l 设计和实现自定义文件系统 实验内容添加一个类似于ext2的自定义文件系统myext2。实验主要内容:l 添加一个和ext2完全相同的文件系统myext2l 修改myext2的magicnumberl 修改文件系

2、统操作l 添加文件系统创建工具实验指导1.问题描述本实验的内容是要添加一个类似于ext2的自定义文件系统myext2。myext2文件系统的描述如下:1、myext2文件系统的物理格式定义与ext2基本一致,除了myext2的magicnumber是0x6666,而ext2的magicnumber是0xEF53。2、myext2是ext2的定制版本,它只支持原来ext2文件系统的部分操作,以及修改了部分操作。 2.实验步骤提示:下面的操作步骤以3.6.6版本的内核为例,2.6.15版本的内核请参照教材,其它版本内核可能会有所区别。2.1添加一个和ext2完全相同的文

3、件系统myext2要添加一个与ext2完全相同的文件系统myext2,首先是确定实现ext2文件系统的内核源码是由哪些文件组成。Linux源代码结构很清楚地告诉我们:fs/ext2目录下的所有文件是属于ext2文件系统的。再检查一下这些文件所包含的头文件,可以初步总结出来Linux源代码中属于ext2文件系统的有:fs/ext2/acl.cfs/ext2/acl.hfs/ext2/balloc.cfs/ext2/bitmap.cfs/ext2/dir.cfs/ext2/ext2.hfs/ext2/file.c……include/linux/ext2_fs.hincl

4、ude/linux/ext2_fs_sb.h接下来开始添加myext2文件系统的源代码到Linux源代码。把ext2部分的源代码克隆到myext2去,即复制一份以上所列的ext2源代码文件给myext2用。按照Linux源代码的组织结构,把myext2文件系统的源代码存放到fs/myext2下,头文件放到include/linux下。在Linux的shell下,执行如下操作: #cd~/linux-3.6.6 /*内核源代码目录,假设内核源代码解压在主目录的Linux-3.6.6只目录中*/#cdfs#cp–Rext2myext2 #cd../include/lin

5、ux#cpext2_fs.hmyext2_fs.h#cpext2_fs_sb.hmyext2_fs_sb.h//3.6.6没有此文件#cd~/linux-3.6.6/fs/myext2#mvext2.hmyext2.h#cd~/linux-3.6.6#cdinclude/asm-generic/bitops#cpext2-atomic.hmyext2-atomic.h#cpext2-atomic-setbit.hmyext2-atomic-setbit.h //3.6.6修改此文件 这样就完成了克隆文件系统工作的第一步——源代码复制。对于克隆文件系统来说,这样当然还

6、远远不够,因为文件里面的数据结构名、函数名、以及相关的一些宏等内容还没有根据myext2改掉,连编译都通不过。 下面开始克隆文件系统的第二步:修改上面添加的文件的内容。为了简单起见,做了一个最简单的替换:将原来“EXT2”替换成“MYEXT2”;将原来的“ext2”替换成“myext2”。对于fs/myext2下面文件中字符串的替换,也可以使用下面的脚本:#!/bin/bash SCRIPT=substitute.sh forfin*doif[$f=$SCRIPT]then       echo"skip$f"       continue   fi    echo

7、-n"substituteext2tomyext2in$f..."   cat$f

8、sed's/ext2/myext2/g'>${f}_tmp   mv${f}_tmp$f   echo"done"    echo-n"substituteEXT2toMYEXT2in$f..."   cat$f

9、sed's/EXT2/MYEXT2/g'>${f}_tmp   mv${f}_tmp$f   echo"done" done 把这个脚本命名为substitute.sh,放在fs/myext2下面,加上可执行权限,运行之后就可以把当前目录里所有文件里面的“ext2”和“

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。