OUC计算机系统工程SecFs实验一

任务一:Enable file/directory creation

任务说明

(1) 在⽂件 secfs/fs.py 中,有⼀个叫 _create 的函数,它⽤于在⽂件系统中创建⽂件和⽬录、分配和配置 inode,并将其存储在服务器上。它会为新⽂件设置适当的 inode,并将它链接到它的⽗⽬录中。
(2) 在完成这个练习之前,⽆法正常创建⽂件或目录 。
(3) 可参考 secfs.fs.init 函数的操作。

实验步骤:

  1. 配置项目环境
    环境搭建

  2. 修改代码实现DEBUG功能
    使用VSCode远程连接虚拟机,方便编写代码和调试。
    通过观察start.sh文件内容,启动语句为:
    sudo env PYTHONUNBUFFERED=1 venv/bin/secfs-fuse PYRO:secfs@./u:server.sock mnt/ root.pub user-0-key.pem "user-$(id -u)-key.pem" > client.log &
    也就是启动secfs-fuse,并向其中传入了对应的参数,于是我们可以手动修改secfs-fuse,并配合VSCode达到DEBUG的功能。
    传入DEBUG参数
    在启动前,需要创建sock文件和挂载目录,故编写debug.sh文件
    debug.sh

    运行一遍 sh debug.sh 再点击VS Code的debug按钮即可开启debug模式。
    DEBUG效果图

  3. 补充 _create函数
    根据实验手册提示,store函数会根据i-node的metadata计算并返回56位hash值,也就是i-table中映射的i-hash。add函数会更新目录的i-node,并为其增加entry。Modmap函数会更改或分配<principal, i-number> pair,使其指向ihash。也就是更新current_tables(储存所有用户i-table的一个哈希表)中用户对应的i-handle。
    与论文对应图
    根据注释,补充相应代码即可。
    代码截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值