课后作业7.1:文件系统的静态结构

第一关 文件的删除与恢复

前三问答案及分析过程参见课堂练习7.1

第四问 启动 bochs 虚拟机,删除文件 /usr/root/hello.c 并执行 sync 命令后,该文件对应的目录项的第几个字节由什么变为了什么?

删除前:

删除后:

可以看到:第一个字节由0x86变成0x00

第五问 删除文件 /usr/root/hello.c 后,其索引节点的值是否发生了变化?

查看可知没有变化

第六问 删除文件 /usr/root/hello.c 后,其第一个数据块的值是否发生变化?

查看可知没有变化

第七问 用 bless 软件将 /usr/root/hello.c 对应的目录项复原后,再次启动 bochs 虚拟机,文件 /usr/root/hello.c 是否重新出现?其内容是否能正常读出?

用bless软件把地址0x49c430处的第一个字节由0x00恢复到0x86后保存

再查看0x49c400处的1024个字节,发现hello.c又恢复了,查看能否正常读出:

是可以正常读出的 

结果:

第二关 硬链接与软链接

第一问 启动 bochs 虚拟机,创建指向 hello.c 的硬链接 hello-2.c 后,文件 hello.c 的目录项起始地址和索引节点号分别是什么?文件 hello-2.c 的目录项起始地址和索引节点号分别是什么?

启动虚拟机使用命令 ln hello.c hello-2.c 创建硬链接后,启动脚本查看/usr/root目录内容:

发现二者的索引节点号是一样的 

第二问 接着启动 bochs 虚拟机来删除文件 hello.c 并执行 sync 后,文件 hello.c 的原目录项的头两个字节是什么?文件 hello-2.c 的目录项的头两个字节是什么? 

删除 hello.c 后,再查看:

发现hello.c的索引节点号变成0x00了,但hello-2.c没有变,说明hello-2.c没有被删除 

结果:

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值