【操作系统】文件管理——文件共享与保护,文件系统的结构(个人笔记)

学习日期:2024.7.18

内容摘要:文件共享,文件保护,文件系统的层级结构和全局结构,虚拟文件系统


文件共享

操作系统提供的文件共享功能,可以让多个用户共享使用同一个文件。文件共享和文件复制是不一样的,共享意味着系统中只有“一份”文件数据,一个用户修改,其他的用户都可以看到文件数据的变化。而复制意味着有好几份数据,用户修改自己的那份,对其他用户没有影响。

基于索引节点的共享方式(硬链接)

之前介绍过,索引节点是只包括文件名和索引节点指针的结构。索引节点中设计了一个链接计数变量count,统计链接到本索引节点上的用户目录项数。

通过共享同一个节点来共享文件,当用户决定删除文件时,事实上操作系统只是删除了用户目录中与该文件对应的目录项,并且让count--了,只有当count==0时,才真正删除文件的数据。

基于符号链的共享方式(软链接)

比如说,当User3也共享这个文件时,使用一个Link类型的文件指向文件1,这个Link就类似快捷方式,User3的索引节点指针不是直接指向要访问的文件,而是指向Link类型文件,再通过Link类型的文件访问要共享的文件。

 当文件1被删除时,软链接方式找不到文件1了,此快捷方式就失效了,在Windows操作系统中,会提示我们“此快捷方式指向的项目xxx已删除”。

文件保护

口令保护

用户为文件设置一个口令(一般是一个字符串,保存在文件对应的FCB或索引节点当中,访问前操作系统会比对),用户请求访问该文件时必须提供该口令,否则不允许访问。

优点:空间开销和时间开销都很小。

缺点:正确的口令放在系统内部,可能被入侵,不够安全。

加密保护

使用某个“密码”(与口令的本质区别是,设置了加密算法,且不需要存在系统当中)对文件进行加密,在访问文件时需要提供正确的密码才能解密。

优点:保密性强,不需要在系统中存储密码。

缺点:编码和解码需要一定的时间开销。

访问控制

系统会在每个文件的FCB或索引节点中增加一个访问控制表(Access-Control List,ACL),该表中记录了用户可以对文件进行的访问操作权限。 在用户访问前,操作系统会检查访问控制表,确认用户的权限。

而用户很多时,控制表可能会比较复杂,此时就把用户分成几组,比如说可以分成系统管理员,文件主,文件主的伙伴,其他用户 这几个分组。 在Windows中,“以管理员身份运行”就是这样。

 优点:实现灵活,可以实现复杂的文件保护功能。

文件的层次结构

用一个例子来帮助记忆层次

一个用户想删除文件"D:/工作记录:/学生信息.xlsx"的最后100条记录。

1.用户需要通过操作系统提供的接口发出请求——用户接口

2.由于用户提供的是文件的路径,操作系统需要按照路径一层一层的查找目录,找到对应的目录项——文件目录系统

3.不同的用户对文件有不同的操作权限,操作系统要确认用户的权限——存取控制模块

4.在验证了用户有权限后,操作系统把用户提供的“记录号”转换为对应的逻辑地址——逻辑文件系统与文件信息缓冲区

5.把上一层提供的逻辑地址再转换为实际的物理地址——物理文件系统

6.有了物理地址,再对磁盘设备发出请求,删除数据——设备管理程序模块

7.删除这些记录后,肯定有一些盘块空闲,将这些盘块重新回收——辅助分配模块

文件系统的全局结构

从一个磁盘出厂开始,文件系统在外存中是如何一步步建立的?

物理格式化:将磁盘分成一个个扇区,并用备用扇区替换。

坏扇区对操作系统也是透明的,操作系统不知道有坏扇区的存在,因为已经被自动替换了。

逻辑格式化:磁盘分区(CDE盘),划分超级块等方便找到空闲块的结构。

空闲空间管理块在之前介绍过,主要用于记录空闲空间,而i节点区主要存放索引节点。

内存中会有最近打开的目录的缓存(相对路径,详见文件管理基础)以此来快速访问附近的文件,不需要每次都从磁盘读入,而进程打开文件表和系统打开文件表,分别记录了进程打开的文件和系统打开的全部文件。当我们删除文件时,有时会提示“无法删除,因为该文件正在被xx进程占用”这就是系统/进程打开文件表记录的作用,它能避免不同进程访问同一文件时的一些冲突。

虚拟文件系统

虚拟文件系统和虚拟内存一样,存在的目的都是向下屏蔽差异,向上提供统一,本质上是为了方便程序员调用的。

 在日常生活中我们使用计算机时,难免会有好几种外存设备同时使用的情况(移动硬盘,U盘,磁盘等),为了避免不同的外存设备的调用接口不同的问题,引入了虚拟文件系统(Virtual File System,VFS)。

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

②每打开一个文件,VFS就会在主存中新建一个vnode,里面保存了具体的函数功能指针,用统一的数据结构表示该文件,无论其存储在哪个文件系统。vnode只存在于主存当中,而inode既会被调入主存,也会在外存当中存储。


感谢您看到这里,如果满意的话麻烦您点个赞支持一下,个人主页还有更多内容分享。

个人能力不足,如有错漏还请指出,我会尽快修改。

内容总结自王道计算机考研《操作系统》 和 人民邮电出版社《操作系统导论》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/46555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python ATM实现

代码要求: 详细代码: money 50000000 name input("输入您的姓名 :")#查询功能 def search(show_header):if show_header:print("--------查询余额--------")print(f"{name},您好,您的余额…

gitlab新建仓库

总贴 每个git网站都有不同的创建项目的方式,现在举例gitlab,其他例如gitee,gitcode,都是差不多的,自行百度 1![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dae875d9048940c0aeb292c07d6a4a62.png)1和2是项…

简约的悬浮动态特效404单页源HTML码

源码介绍 简约的悬浮动态特效404单页源HTML码,页面简约美观,可以做网站错误页或者丢失页面,将下面的代码放到空白的HTML里面,然后上传到服务器里面,设置好重定向即可 效果预览 完整源码 <!DOCTYPE html> <html><head><meta charset="utf-8&q…

matlab 异常值检测与处理——Robust Z-score法

目录 一、算法原理1、概述2、主要函数3、参考文献二、代码实现三、结果展示四、相关链接本文由CSDN点云侠翻译,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、概述 Robust Z-score法也被称为中位数绝对偏差法。它类似于Z-sc…

WebRTC音视频-前言介绍

目录 效果预期 1&#xff1a;WebRTC相关简介 1.1&#xff1a;WebRTC和RTC 1.2&#xff1a;WebRTC前景和应用 2&#xff1a;WebRTC通话原理 2.1&#xff1a;媒体协商 2.2&#xff1a;网络协商 2.3&#xff1a;信令服务器 效果预期 1&#xff1a;WebRTC相关简介 1.1&…

排序算法(4)之快速排序(2)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 排序算法(4)之快速排序(2) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目…

剧本杀小程序搭建,为商家带来新的收益方向

近几年&#xff0c;剧本杀游戏成为了游戏市场的一匹黑马&#xff0c;受到了不少年轻玩家的欢迎。随着信息技术的快速发展&#xff0c;传统的剧本杀门店已经无法满足游戏玩家日益增长的需求&#xff0c;因此&#xff0c;剧本杀市场开始向线上模式发展&#xff0c;实现行业数字化…

linux中list的基本用法

内核链表 1 list_head 结构 为了使用链表机制&#xff0c;驱动程序需要包含<linux/types.h>头文件&#xff0c;该文件定义了如下结构体实现双向链&#xff1a; struct list_head {struct list_head *next, *prev; };2 链表的初始化 2.1 链表宏定义和初始化 可使用以…

汽车免拆诊断案例 | 卡罗拉急加速抖动故障排除

车型信息 2017年改款卡罗拉&#xff0c;排量1.2T&#xff0c;行驶里程48800公里。 故障现象 车辆不管在什么状态下&#xff0c;只要是平缓加速&#xff0c;都不会有抖动。车辆静止时&#xff0c;急加速时&#xff0c;也不会有抖动。但是车速达40公里/小时以上&#xff0c;急加…

【python基础】基本数据类型

文章目录 一. Python基本数据类型1. 整数1.1. python的四种进制1.2. 数中的下划线 2. 浮点数3. 复数4. 布尔型5. 运算符5.1. 算术运算符5.2. 比较运算符5.3. 逻辑运算符5.4 运算符优先级 6. 常量 二. 注释三. Python之禅 一. Python基本数据类型 1. 整数 无长度限制&#xff1…

PWM再理解(1)

前言 昨天过于劳累&#xff0c;十点睡觉&#xff0c;本来想梳理一下PWM&#xff0c;今天补上。 PWM内涵 PWM全称&#xff1a;Pulse Width Modulation&#xff0c;也就是脉宽调制的意思&#xff0c;字面意思理解就是对脉冲的宽度进行改变。准确就是通过数字输出对模拟电路进行…

怎样优化 PostgreSQL 中对复杂的日期时间格式转换和时区处理?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 怎样优化 PostgreSQL 中对复杂的日期时间格式转换和时区处理&#xff1f; 怎样优化 PostgreSQL 中对复…

Python | Leetcode Python题解之第257题二叉树的所有路径

题目&#xff1a; 题解&#xff1a; class Solution:def binaryTreePaths(self, root: TreeNode) -> List[str]:paths list()if not root:return pathsnode_queue collections.deque([root])path_queue collections.deque([str(root.val)])while node_queue:node node_…

2024年06月CCF-GESP编程能力等级认证C++编程八级真题解析

本文收录于专栏《C等级认证CCF-GESP真题解析》&#xff0c;专栏总目录&#xff1a;点这里。订阅后可阅读专栏内所有文章。 一、单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 GESP活动期间&#xff0c;举办方从获胜者ABCDE五个人中选出三个人排成一队…

NLP教程:1 词袋模型和TFIDF模型

文章目录 词袋模型TF-IDF模型词汇表模型 词袋模型 文本特征提取有两个非常重要的模型&#xff1a; 词集模型&#xff1a;单词构成的集合&#xff0c;集合自然每个元素都只有一个&#xff0c;也即词集中的每个单词都只有一个。 词袋模型&#xff1a;在词集的基础上如果一个单词…

上海理工大学24计算机考研考情分析!初复试分值比55:45,复试逆袭人数不算多!

上海理工大学&#xff08;University of Shanghai for Science and Technology&#xff09;&#xff0c;位于上海市&#xff0c;是一所以工学为主&#xff0c;工学、理学、经济学、管理学、文学、法学、艺术学等多学科协调发展的应用研究型大学&#xff1b;是上海市属重点建设大…

Linux系统及常用指令

目录 1、什么是Linux系统 2、为什么要用Linux系统 3、Linux系统的种类 4、如何安装Linux系统 5、常见的适配器种类 6、学习第一个Linux指令 7、安装ssh客户端软件 8、Linux系统的目录结构 9、Linux的常用命令 9.1 目录切换命令 9.2 查看目录下的内容 9.3 查看当前…

vue项目build以后整合到springboot项目里面---------gxl

很多时候我们需要用到vue的组件&#xff0c;但是全栈的背景下懒得去搞前后端分离&#xff0c;很多权限校验后台都写好了&#xff0c;没必要再去做接口或者前端写一遍了&#xff0c;因此我们需要把打包后的项目整合到项目里面。 整合也很简单&#xff0c;照常vue项目开发&#…

UE4-蓝图(可视化编程)学习

一.开关门交互实现 1.需要用到的模板和内容包 2.给门添加碰撞 进入第三人称模板场景&#xff0c;找到门的模型&#xff0c;并将门的模型添加到我们的场景中&#xff1a; 此时我们运行游戏&#xff0c;会发现我们的角色可以穿过我们门的模型&#xff0c;说明我们没有给门添加碰…

水利行业的智慧转型之路:分析智慧水利的核心要素与优势,展望其在提升水资源利用效率、保障水安全方面的广阔前景

目录 引言 一、智慧水利的核心要素 1. 物联网技术 2. 大数据与云计算 3. 人工智能与机器学习 4. 移动互联网与GIS技术 5. 标准化与信息安全 二、智慧水利的优势 1. 提高水资源利用效率 2. 增强水灾害防御能力 3. 提升水环境治理水平 4. 促进水利服务智能化 三、展望…