操作系统基础:文件系统基础【下】

news2024/11/25 12:35:08

在这里插入图片描述

在这里插入图片描述

🌈个人主页:godspeed_lucip
🔥 系列专栏:OS从基础到进阶


  • ⚔️1 文件的基本操作
    • ⚖️1.1 总览
    • ⚖️1.2 几种基本操作
      • 🔭1.2.1 创建文件
      • 🔭1.2.2 删除文件
      • 🔭1.2.3 打开文件
      • 🔭1.2.4 关闭文件
      • 🔭1.2.5 读文件
      • 🔭1.2.6 写文件
    • ⚖️1.3 总结
  • ⚔️2 文件共享
    • 🗜️2.1 总览
    • 🗜️2.2 基于索引结点的共享方式(硬链接)
      • 📡2.2.1 什么是索引结点
      • 📡2.2.2 解释
    • 🗜️2.3 基于符号链的共享方式(软链接)
      • 📡2.3.1 解释
      • 📡2.3.2 示意图
      • 📡2.3.3 注意
    • 🗜️2.4 总结
  • ⚔️3 文件保护
    • 💣3.1 总览
    • 💣3.2 口令保护
      • 🔬3.2.1 解释
      • 🔬3.2.2 优缺点
    • 💣3.3 加密保护
      • 🔬3.3.1 解释
      • 🔬3.3.2 例子
      • 3.3.3 优缺点
    • 💣3.4 访问控制
      • 🔬3.4.1 解释
      • 🔬3.4.2 例子
      • 🔬3.4.3 精简的访问列表
    • 💣3.5 总结
  • 🕮4 总结


⚔️1 文件的基本操作

⚖️1.1 总览

image1

⚖️1.2 几种基本操作

🔭1.2.1 创建文件

(1)创建文件会进行create系统调用,需要传入的几个主要参数为:
image2
(2)操作系统在处理create系统调用时进行的工作
image3

🔭1.2.2 删除文件

(1)删除文件会进行delete系统调用,需要传入的几个主要参数为:
image4

(2)操作系统在处理delete系统调用时的工作
image5

🔭1.2.3 打开文件

(1)打开文件会进行open系统调用,需要传入的几个主要参数为:
image6

(2)操作系统在处理open系统调用时的工作
image7
为什么要将目录项复制到”打开文件表“?这样做的话,用户在之后1再次操作文件就不要重新指定目录了,这样可以加快访问速度

(3)打开文件表
①用户的打开文件表
每个用户都有一个自己的打开文件表,其内容如图:
image8
其中,读写指针记录用户目前对文件的读取位置。用户对文件的操作不可以超出打开文件表中的访问权限字段。
用户表中的系统表索引号与系统表中对应文件的索引号相同。

②系统的打开文件表
在操作系统内,有一张打开文件的总表,其基本结构如图
image9
打开计数器的值表示这个文件此时被多少个进程打开了,设置这个表项的好处为:
image10

🔭1.2.4 关闭文件

选择关闭文件时操作系统做的事:
image11

🔭1.2.5 读文件

(1)读文件时进程需要做的事
①进行read系统调用
②指明打开哪个文件(打开文件表中的索引号)
③指明读入多少数据
④指明读入的数据要放在内存中的什么位置

(2)读文件时操作系统做的事
①从进程提供的读指针指向的外存中,将进程指定大小的数据读入进程指定的内存区域中。

🔭1.2.6 写文件

与读文件的操作类似

(1)写文件时进程需要做的事
①调用操作系统提供的write系统调用
②指明写回哪个文件(打开文件表中的索引号)
③指明写回多少数据
④写回外存的数据在内存中的位置指针

(2)写文件时操作系统做的事情
①从用户指针的内存区域中,将指定大小的数据写回到指定的外存区域内

⚖️1.3 总结

image12

⚔️2 文件共享

🗜️2.1 总览

image1

🗜️2.2 基于索引结点的共享方式(硬链接)

📡2.2.1 什么是索引结点

是文件的一种物理结构,文件的具体信息(物理地址、文件权限等等)放在索引结点中,而文件表中只存放文件名与指向索引结点的指针。这样可以加快检索文件的速度

📡2.2.2 解释

(1)示意图
image2
(2)在不同用户的目录中的索引结点指针指向同一个索引结点,这样就是先了文件共享。
(3)此外,索引结点中还必须增加一个额外变量count:
image3

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

📡2.3.1 解释

与硬链接中直接使用指针指向文件不同,软链接是新建一个文件,此文件中存放共享文件的路径(称为link文件)

📡2.3.2 示意图

image4

📡2.3.3 注意

当共享文件被删除时,该link文件实际上也随机失效(联想Windows下的快快捷方式)

🗜️2.4 总结

image5

⚔️3 文件保护

💣3.1 总览

image1

💣3.2 口令保护

🔬3.2.1 解释

image2

🔬3.2.2 优缺点

image3

💣3.3 加密保护

🔬3.3.1 解释

image4

🔬3.3.2 例子

image5

3.3.3 优缺点

用户只需要记住自己的密码就可以了
image6

💣3.4 访问控制

🔬3.4.1 解释

image7
当某个用户对文件执行操作时,操作系统会首先查看访问控制列表,确认用户有该操作的权限。

🔬3.4.2 例子

(1)常用的文件操作
image8
(2)访问控制列表
image9

🔬3.4.3 精简的访问列表

(1)为什么要有精简的访问列表?
当系统内用户很多时,访问控制列表可能会很长,会造成比较大的开
(2)解释
image10
而系统会管理分组的信息,例如哪些用户属于哪些分组
(3)例子
image11

💣3.5 总结

image12

🕮4 总结

操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。

它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。

操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。

在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。

渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的💻OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。🌐🔍

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

python算法与数据结构---动态规划

动态规划 记不住过去的人,注定要重蹈覆辙。 定义 对于一个模型为n的问题,将其分解为k个规模较小的子问题(阶段),按顺序求解子问题,前一子问题的解,为后一子问题提供有用的信息。在求解任一子…

Multisim14.0仿真(四十一)交通信号灯仿真设计

一、功能简介: 1)、采用两片74LS192做减法计数器,实现倒计时功能。 2)、采用DCD数码管显示时间。 3)、采用4个TRAFFIC_LIGHT_SINGLE红绿灯 4)、采用74LS160和74LS138实现对红绿灯的逻辑控制。 5&#xff09…

Python 潮流周刊#38:Django + Next.js 构建全栈项目

△△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,…

elementUI 表格中如何合并动态数据的单元格

elementUI 表格中如何合并动态数据的单元格 ui中提供的案例是固定写法无法满足 实际开发需求 下面进行改造如下 准备数据如下 //在表格中 设置单元格的方法 :span-method"spanMethodFun" <el-table :data"tableData" border :span-method"spa…

私有化部署一个吃豆人小游戏

目录 效果 安装步骤 1.安装并启动httpd 2.下载代码 3.启动httpd 使用 效果 安装步骤 1.安装并启动httpd yum -y install httpd 2.下载代码 进入目录 cd /var/www/html/ 下载 git clone https://gitee.com/WangZhe168_admin/pacman-canvas.git 3.启动httpd syste…

docker更换镜像源

添加的镜像源 {"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com", "https://reg-mirror.qiniu.com/", "https://docker.mirrors.ustc.edu.cn"] }docker更换镜像源之后一定要重启守卫 systemctl daemon-reloaddock…

网络原理TCP/IP(5)

文章目录 IP协议IP协议报头地址管理网段划分特殊的IP地址路由选择以太网认识MAC地址对比理解MAC地址和IP地址DNS&#xff08;域名服务器&#xff09; IP协议 IP协议主要完成的工作是两方面&#xff1a; 地址管理&#xff0c;使用一套地址体系&#xff0c;来描述互联网上每个设…

响应式开发如何设置断点,小屏幕界面该如何显示(有动图)

Hi&#xff0c;我是贝格前端工场&#xff0c;本期分享响应式开发&#xff0c;如何设置屏幕断点&#xff0c;pc页面布局到了移动端之后该如何布局的问题&#xff0c;微软也提供了设置屏幕断点的动图演示&#xff0c;非常直观。 一、什么是响应式开发&#xff0c;为何要设置屏幕断…

问题:0xc8前面加(byte) #人工智能#学习方法的原因是因为0xc8大于??????????? 。 #微信#其他#微信

问题&#xff1a;0xc8前面加&#xff08;byte&#xff09;的原因是因为0xc8大于??????????? 。 参考答案如图所示

【Linux】信号-下

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;信号递达&#xff0c;信号未决&#x…

【MySQL】DQL的总结和案例学习

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-VWRkWqFrRMi4uLRa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

华为自动驾驶干不过特斯拉?

文 | AUTO芯球 作者 | 李诞 什么&#xff1f; 华为的智能驾驶方案干不过蔚小理&#xff1f; 特斯拉的智能驾驶[FSD]要甩中国车企几条街&#xff1f; 这华为问界阿维塔刚刚推送“全国都能开”的城区“无图 NCA” 就有黑子来喷了 这是跪久了站不起来了吧 作为玩车14年&…

知识图谱概论

知识图谱 1 学习目标2 知识图谱概念2.1 什么是知识图谱2.2 语义网络2.3 知识图谱的定义 3 知识图谱的架构3.1 知识图谱的逻辑结构3.2 知识图谱的体系架构 4 知识图谱的关键技术4.1 信息抽取4.2 知识融合4.3 知识加工4.4 知识图谱存储4.5 知识更新 5 知识图谱的典型应用5.1 智能…

基于Bazel实现C++/Python编译

最近在学Baidu Apollo需要用到Bazel进行编译&#xff0c;在此记录下Bazel的学过程&#xff0c;以及遇到的一些问题和心得。另外强烈推荐B站赵虚左老师的Cyber RT课程&#xff0c;里面对Bazel的使用有详细的教学。 下面的使用过程都是在Ubuntu 22.04上进行的&#xff0c;首先需要…

Cassandra 命令大全

文章目录 1. 连接与基本操作2. 数据库管理3. 表&#xff08;Column Family&#xff09;操作4. 集群管理5. 权限管理6. 其他高级功能7. 条件查询与聚合操作8. 索引管理9. 用户权限和角色管理10. 安全性相关设置11. 一致性级别控制12. 用户定义类型 (UDTs)13. 用户定义函数 (UDFs…

2024年【天津市安全员C证】考试报名及天津市安全员C证免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年天津市安全员C证考试报名为正在备考天津市安全员C证操作证的学员准备的理论考试专题&#xff0c;每个月更新的天津市安全员C证免费试题祝您顺利通过天津市安全员C证考试。 1、【多选题】下列说法正确的是&#…

ChatGPT生产力|chat gpt实战介绍

标注说| ⭐ : 使用稳定&#xff0c;推荐 | &#x1f604; : 免费使用 | &#x1f511; : 需要登陆或密码 | ✈️ : 需waiwang进行访问 | ChatGPT 1PoePoe - Fast, Helpful ...&#x1f511;&#x1f604;&#x1f517;2 AItianhuGPT4&#x1f604;⭐&#x1f517;3 PhantoNa…

Vue ElementUI中el-table表格嵌套样式问题

一、表格嵌套要求&#xff1a; 两个表格嵌套&#xff0c;当父表格有children数组时子表格才展示&#xff1b;子表格数据少于父表格展示字段&#xff0c;且对应固定操作列不同&#xff1b; 二、嵌套问题&#xff1a; 当使用el-table的typeexpand实现表格嵌套时&#xff0c;样…

ChatGPT Plus如何升级?信用卡付款失败怎么办?如何使用信用卡升级 ChatGPT Plus?

ChatGPT Plus是OpenAI提供的一种高级服务&#xff0c;它相较于标准版本&#xff0c;提供了更快的响应速度、更强大的功能&#xff0c;并且用户可以优先体验到新推出的功能。 尽管许多用户愿意支付 20 美元的月费来订阅 GPT-4&#xff0c;但在实际支付过程中&#xff0c;特别是…

(2)(2.13) Rockblock Satellite Modem

文章目录 前言 1 支持的MAVLink命令信息 2 设置 3 使用方法 4 数据成本 5 参数 前言 &#xff01;Note 该功能仅适用于 ArduPilot 4.4 或更高版本&#xff0c;并且要求飞行控制器支持 LUA 脚本(LUA Scripts)。 RockBLOCK 卫星调制解调器可实现与 ArduPilot 飞行器的全球…