没有合适的资源?快使用搜索试试~ 我知道了~
3170103456-应承峻-实验41
需积分: 0 0 下载量 141 浏览量
2022-08-03
14:37:59
上传
评论
收藏 952KB PDF 举报
温馨提示
试读
19页
一、实验目的和要求 二、实验内容 三、主要仪器设备 四、操作方法和实验步骤
资源详情
资源评论
资源推荐
本科实验报告
课程名称:
操作系统
姓 名:
应承峻
学 院:
计算机科学与技术学院
系:
计算机科学与技术系
专 业:
软件工程
学 号:
3170103456
指导教师:
夏莹杰
2019 年 12 月 9 日
浙江大学实验报告
课程名称: 操作系统 实验类型: 综合
实验项目名称: 添加一个加密文件系统
学生姓名: 应承峻 专业: 软件工程 学号: 3170103456
电子邮件地址: 3170103456@zju.edu.cn 手机: 17326084929
实验地点: 玉泉曹光彪西 503 实验日期: 2019 年 12 月 9 日
一、实验目的和要求
文件系统是操作系统中最直观的部分,因为用户可以通过文件直接地和操作
系统交互,操作系统也必须为用户提供数据计算、数据存储的功能。本实验通过
添加一个文件系统,进一步理解 Linux 中的文件系统原理及其实现。
⚫ 深入理解操作系统文件系统原理
⚫ 学习理解 Linux 的 VFS 文件系统管理技术
⚫ 学习理解 Linux 的 ext2 文件系统实现技术
⚫ 设计和实现加密文件系统
二、实验内容
添加一个类似于 ext2,但对磁盘上的数据块进行加密的文件系统 myext2。实
验主要内容:
⚫ 添加一个类似 ext2 的文件系统 myext2
⚫ 修改 myext2 的 magic number
⚫ 添加文件系统创建工具
⚫ 添加加密文件系统操作,包括 read_crypt, write_crypt,使其增加对加密数据
的读写。
三、主要仪器设备
笔记本电脑 1 台,相关配置如下:
处理器 英特尔 Core i7-8750H @ 2.20GHz 六核
内 存 16 GB (三星 DDR4 2667MHz)
主硬盘 PeM280240GP4C15B (240 GB/固态硬盘)
显 卡 Nvidia GeForce GTX 1060(6 GB)
操作系统环境:Windows 10 64 位(DirectX 12)
Linux 版本: ubuntu-19.04
四、操作方法和实验步骤
4.1 添加一个类似 ext2 的文件系统 myext2
要添加一个类似 ext2 的文件系统 myext2,首先是确定实现 ext2 文件系统的内核源码是
由哪些文件组成。Linux 源代码结构很清楚地告诉我们:fs/ext2 目录下的所有文件是属于 ext2
文件系统的。再检查一下这些文件所包含的头文件,可以初步总结出来 Linux 源代码中属于
ext2 文件系统的有:
fs/ext2/acl.c
fs/ext2/acl.h
fs/ext2/balloc.c
fs/ext2/bitmap.c
fs/ext2/dir.c
fs/ext2/ext2.h
fs/ext2/file.c
……
include/linux/ext2_fs.h
接下来开始添加 myext2 文件系统的源代码到 Linux 源代码。把 ext2 部分的源代码克隆
到 myext2 去,即复制一份以上所列的 ext2 源代码文件给 myext2 用。按照 Linux 源代码的
组织结构,把 myext2 文件系统的源代码存放到 fs/myext2 下,头文件放到 include/linux
下。在 Linux 的 shell 下,执行如下操作:
#cd /usr/src/linux /*内核源代码目录,假设内核源代码解压在主目录的 linux 子目录*/
#cd fs
#cp –R ext2 myext2
#cd /usr/src/linux/fs/myext2
#mv ext2.h myext2.h
#cd /lib/modules/$(uname -r)/build/include/linux
#cp ext2_fs.h myext2_fs.h
#cd /lib/modules/$(uname -r)/build/include/asm-generic/bitops
#cp ext2-atomic.h myext2-atomic.h
#cp ext2-atomic-setbit.h myext2-atomic-setbit.h
这样就完成了克隆文件系统工作的第一步——源代码复制。对于克隆文件系统来说,这
样当然还远远不够,因为文件里面的数据结构名、函数名、以及相关的一些宏等内容还没有
根据 myext2 改掉,连编译都通不过。
下面开始克隆文件系统的第二步:修改上面添加的文件的内容。为了简单起见,做了一
个最简单的替换:将原来“EXT2”替换成“MYEXT2”;将原来的“ext2”替换成“myext2”。
对于 fs/myext2 下面文件中字符串的替换,也可以使用下面的脚本:
#!/bin/bash
SCRIPT=substitute.sh
for f in *
do
if [ $f = $SCRIPT ]
then
echo "skip $f"
continue
fi
echo -n "substitute ext2 to myext2 in $f..."
cat $f | sed 's/ext2/myext2/g' > ${f}_tmp
mv ${f}_tmp $f
echo "done"
echo -n "substitute EXT2 to MYEXT2 in $f..."
cat $f | sed 's/EXT2/MYEXT2/g' > ${f}_tmp
mv ${f}_tmp $f
echo "done"
剩余18页未读,继续阅读
申增浩
- 粉丝: 20
- 资源: 297
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0