当前位置: 首页 > ops >正文

操作系统——第四章(文件共享、保护、层级结构、系统布局..)

一、文件共享

1.知识概览

        

2.文件共享与文件复制的区别

    多个用户共享同一个文件,意味着系统中只有“一份”文件数据。并且只要某个用户修
改了该文件的数据,其他用户也可以看到文件数据的变化。

    如果是多个用户都“复制”了同一个文件,那么系统中会有“好几份”文件数据。其中一个用
户修改了自己的那份文件数据,对其他用户的文件数据并没有影响。

3.硬链接——基于索引节点的共享

(1)知识回顾——什么是索引节点?

索引结点,是一种文件目录瘦身策略。由于检索文件时只需用到文件名,因此可以将除
了文件名之外的其他信息放到索引结点中。这样目录项就只需要包含文件名、索引结点指针。

理解——让不同文件的目录项指向同一个索引节点。不同目录起的文件名可以不同。

  

索引结点中设置一个链接计数变量cout,用于表示链接到本索引结点上的用户目录项数。
若cout=2,说明此时有两个用户目录项链接到该索引结点上,或者说是有两个用户在共享此文件。
若某个用户决定“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点的
count值减1。
若cout>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。
当count=0时系统负责删除文件。

4.软链接——基于符号链的共享         

   

我们可以用Windows系统中的软件快捷方式来理解软链接:

假设你电脑里安装了画图软件,原始文件是: C:\Program Files\Paint\paint.exe

你在桌面上创建了一个快捷方式: 桌面\画图.lnk

这个快捷方式就像软链接:

  1. 表面形态相同:双击画图.lnk和直接打开paint.exe效果完全一样
  2. 实质是路径指引:快捷方式文件里只存储了目标路径信息: $$路径 = "C:\Program Files\Paint\paint.exe"$$
  3. 轻量级存在:快捷方式本身只有几KB大小,不复制原文件内容
  4. 动态关联
    • 若原文件被删除 → 快捷方式失效(出现红叉)
    • 若原文件被移动 → 快捷方式需要重新定位路径
  5. 跨区能力:就像快捷方式可以指向不同硬盘的文件,软链接也能跨磁盘/分区创建

这个机制实现了"一个实体,多处访问"的效果,就像在多个抽屉里放同一本书的书签,既节省空间,又能保持内容同步更新。

5.知识图谱

  


二、文件保护

1.知识概览

                               

2.口令保护

口令一般存放在文件对应的FCB或索引结点中。用户访问文件前需要先输入“口令”,操作系统会将用户提供的口令与FCB中存储的口令进行对比,如果正确,则允许该用户访问文件。【例子:为文件设置一个“口令”(如:abc112233),用户请求访问该文件时必须提供“口令”。

优点:保存口令的空间开销不多,验证口令的时间开销也很小。
缺点:正确的“口令”存放在系统内部,不够安全。

3.加密保护

使用某个“密码”对文件进行加密,在访问文件时需要提供正确的“密码”才能对文件进行正确的解密。

  优y优点:保密性强,不需要在系统中存储“密码”。
缺点:编码/译码,或者说加密/解密要花费一定时间。

4.访问控制

在每个文件的FCB(或索引结点)中增加一个访问控制列表(Access-Control List,ACL),该表中记
录了各个用户可以对该文件执行哪些操作。

      

精简的访问列表:以“组”为单位,标记各“组”用户可以对文件执行哪些操作。
如:分为系统管理员、文件主、文件主的伙伴、其他用户几个分组。
当某用户想要访问文件时,系统会检查该用户所属的分组是否有相应的访问权限。
【注:系统需要管理分组的信息】

5.知识图谱

三、文件系统的层次结构

        

用一个例子来辅助记忆文件系统的层次结构:
假设某用户请求删除文件“D:/工作目录/学生信息.xsx”的最后100条记录。

  • 用户需要通过操作系统提供的接口发出上述请求一一用户接口

  • 由于用户提供的是文件的存放路径,因此需要操作系统一层一层地查找目录,找到对应的目录
    文件目录系统
  • 不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否有访问权限一一存取控制模块(存取控制验证层)
  • 验证了用户的访问权限之后,需要把用户提供的“记录号”转变为对应的逻辑地址一一逻辑文件系统与文件信息缓冲区
  • 知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址一一物理文件系统
  • 要删除这条记录,必定要对磁盘设备发出请求一一设备管理程序模块
  • 删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘块回收一一辅助分配模块

四、文件系统布局

1.文件系统的全局结构

(1)物理格式化

物理格式化,即低级格式化一一划分扇区,检测坏扇区,并用备用扇区替换坏扇区


(2)逻辑格式化

逻辑格式化后,磁盘分区(分卷Volume),完成各分区的文件系统初始化
注:逻辑格式化后,灰色部分就有实际数据了,白色部分还没有数据。

2.文件系统在内存中的结构

(1)目录的缓存

(2)系统打开文件表

(3)用户打开文件表

 

Open系统调用 打开文件的背后过程:     

 

五、虚拟文件系统与文件系统挂载

1.普通文件系统与虚拟文件系统的比较

                     

    

  特点:②VFS要求下层的文件系统必须实现某些规定的函数功能,如:open/read/write。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统VFS的要求。

存在的问题:不同的文件系统,表示文件数据结构各不相同。打开文件后,其在内存中的表示就不同。
③每(灯开一个文仲、VFS就在主存中新建一个vnode,用统一的数据结构表示文件,无论该文件
存储在哪个文件系统。【注:vnode只存在于主存中,而inode既会被调入主存,也会在外存中存储

2.文件系统挂载 (插U盘)

文件系统挂载(mounting),即文件系统安装/装载-一如何将一个区件系冤挂载到操作系统中?

文件挂载需要进行的步骤:

①在往册挂载这件系统内存中的挂载(mount table)包含每个文作系统的相关瓦,包括文件
系统类型、容量大小等。
②新挂载的女件系纷要向VFS提供一个函数地址列表。
③将新文件系统加到挂载点(mount point),也就是将新文件系统挂载在某个父目录下。

挂载点:Windows系统:继C、D盘之后用26个字母表示的盘,如F、H盘等。

             

Mac系统:Volumes下的子目录为挂载点。


下一讲——第五章,敬请期待(* ̄︶ ̄)

http://www.xdnf.cn/news/9270.html

相关文章:

  • Docker+MobaXterm+x11实现容器UI界面转发本地
  • Python map()函数详解:批量数据处理的瑞士军刀
  • STM32 Keil工程搭建 (手动搭建)流程 2025年5月27日07:42:09
  • STM32之IIC(重点)和OLED屏
  • Spring Boot整合JWT实现认证与授权
  • screen开启和删除session会话
  • JSONP跨域原理全解析
  • OpenCV 图像像素的读写操作
  • SNMPv3基础概念
  • 02_MQ常见问题
  • 科研课题验收测试报告:用途与类型深度解析~
  • DFS入门刷题c++
  • 工业级UART数据转发芯片EU104 低功耗多串口芯片 1主4从多串口转发
  • 26、请求处理-【源码分析】-Rest映射及源码解析
  • 机器学习知识体系:从“找规律”到“做决策”的全过程解析
  • 走进黑盒:SQL 是如何在数据库中执行的?
  • Linux基础命令掌握-cut命令
  • 0527漏洞原理:SQL注入笔记
  • CSRF和XSS攻击防御指南
  • 院校机试刷题第十三天:代码随想录算法训练营第七天
  • 调不好分布式锁?HarmonyOS + Redis 分布式锁失效排查全路径
  • Oracle20200714GI_PSU补丁流程及问题收集
  • 一种比较精简的协议
  • python学习day30
  • SSTable(Sorted String Table)结构与用途详解
  • 数据类型(基本类型)day2
  • C-内存函数,动态内存
  • Qt布局连续添加控件
  • Web3怎么本地测试连接以太坊?
  • 封装文档核心知识点总结(通俗版)