西北农林科技大学操作系统实验四(2)——文件系统之设计实验

  1. 本程序设计模拟一个简单的树形结构的文件系统,本系统有三个命令:

ls 路径:显示文件的信息;
mv 文件路径 新文件名 :给原有文件重命名
chmod 权限 文件路径:修改原文件的权限
还有两个命令实在创建文件系统时使用的(在该系统中可以用这两个命令):
mkdir 路径 文件名:创建目录
create 路径 文件名:创建文件

设计思路
1. 设计文件的默认系统(文件系统中默认的一些文件和目录);
一个创建二叉树的过程

  1. ls命令:先序遍历二叉树,每一个‘/’为遍历的一个分隔点:遇到‘/’就遍历他的孩子,否则遍历他的兄弟直至找到与路径信息一样位置。
  2. mv命令:根据路径找到文件,然后把文件名替换即可
  3. chmod命令:与mv命令的思路相同。

ls命令
在这里插入图片描述
在这里插入图片描述

2.本程序设计了一个二级文件系统(有一个主目录,每个用户都有一个目录):
本系统有9个命令:

  1. ‘create 文件名 权限’创建文件(权限为‘777’,默认为共享文件)
  2. delete 文件名’ 删除文件
  3. ‘linksharefile 文件名 共享文件名’ 将共享文件链接到该用户,名字为第一个参数
  4. ‘open 文件名’ 打开文件 打开后会自动输出文件描述符,每个用户每次只能打开一个文件
  5. ‘close 文件描述符’ 关闭文件
  6. ‘read 文件描述符 ’ 将信息从文件读到标准输出
  7. ‘write 文件描述符’ 将信息从标准输入写到文件中,并输出写入字符个数
  8. ‘sudo 用户名’ 实现用户切换
  9. ‘useradd 用户名’ 创建用户
    (1)、设计思路:
    1):设置目录表:主目录和每个用户的目录(初始时,认为只有一个用户)
    2):设计文件区:有两个文件区:共享文件区,所有用户都可以访问,私有文件区只有文件主可以访问
    3):create命令:输入文件名权限后,判断是否为“777”(共享文件),然后再相应的文件区申请一块内存存储信息,再对创建用户的目录进行修改。
    4):delete命令:根据该用户的目录找到相应的文件所在的文件区,然后删除该文件区,在修改该用户目录的信息(再删除共享目录是还要判断是否还有其他用户使用)
    5):linksharefile命令:现在共享文件区根据文件名找到该文件,然后得到该文件所在的物理位置(索引指针),返回给当前用户,修改用户目录,实现文件共享。
    6):open命令:遍历该用户的文件目录找到相应的文件的物理位置,然后把该物理位置作为文件描述符返回给用户,并设计一个标志,说明该用户已打开一个文件。
    7):close 命令:只需要修改文件的标志和用户的标志,使文件可以打开
    8):read 命令:根据文件描述符找到该文件,然后读出文件中的content。
    9):write 命令:根据文件描述符找到该文件,然后在文件的content后面追加信息。
    10):sudo 命令:修改当前目录的信息,根据用户名从主目录中取出用户的编号,进行修改。
    11):adduser 命令:在主目录中添加一项,作为新用户。

猜你喜欢

转载自blog.csdn.net/weixin_44029810/article/details/107774614