操作系统:文件系统

这篇具有很好参考价值的文章主要介绍了操作系统:文件系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文件系统

文件保护

文件的保护通过口令保护加密保护、和访问控制等方式实现。其中,口令和加密是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式

口令保护

口令指用户在建立一个文件时提供一个口令,系统为其建立FCB时附上相应的口令,同时告诉允许共享该文件的其他用户。用户在请求访问时必须提供口令

优点:这种方式需要的时间和空间开销不多

缺电:正确的“口令”存放在系统内部,不够安全

加密保护

使用``密码`对文件进行加密,在访问文件时需要提供正确的密码,才能对文件进行正确的解密。如下图是对文件实现的一种简单加密:

操作系统:文件系统

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

缺点: 编码/译码,或者说是要加密/解密要花费一定时间

访问控制

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

​ 需要注意的是如果对某个目录进行了访问权限的控制,哪也要对目录下的所有文件进行相同的访问权限控制。

操作系统:文件系统

文件系统的层次结构

文件系统提供高效和便捷的磁盘访问,以便允许存储、定位、提取数据。

操作系统:文件系统

操作系统:文件系统

文件系统的全局结构

文件在磁盘上的结构

文件系统存放在磁盘上,文件系统可能包含如下信息:启动存储在那里的操作系统的方式、总的块数、空闲块的数量和位置、目录结构以及各个具体文件等。

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

操作系统:文件系统

  • 主引导记录(MBR),位于磁盘的0号扇区,用来引导计算机,MBR后面是分区表,该表给出了每个分区的起始和结束地址。当计算机启动时,BIOS读入并执行MBR。MBR做的第一件事情即使确定活动分区,读入它的第一个块,即引导块(用于对操作系统的引导,一般只在启动操作系统时使用)
  • 超级块反映了文件系统整体的控制信息。超级块中的典型信息包括分区的块数量、块的大小、空闲块的数量和指针、空闲的FCB数量和FCB指针等
  • 文件系统的空闲块信息,可以用位示图或者指针链接给出。后面给出的则是i结点,每个i节点包含了文件的详细信息
  • 最后就是文件的根目录,它存放了文件系统目录树的根部

文件在内存中的结构

下图展示了文件系统在内存中的的结构。近期访问过的目录文件会被缓存在内存中,不用每次都从磁盘读入,这样加速了目录检索的速度。在内存中的信息用于管理文件并通过缓存来提高性能。这些结构的类型可能包括:

  • 安装表(mount table),包含每个已安装文系统分区的有关信息
  • 内存中的目录结构的缓存包含最近访问目录的信息。对安装分区的目录,它可以包括一个指向分区表的指针
  • 整个系统的打开文件表,包含每个打开文件的FCB(不打开的没有)及其他信息
  • 每个进程的打开文件表,包含一个指向整个系统的打开文件表中的对应条目的指针,及其他信息

操作系统:文件系统

下图展示的系统执行open系统调用的过程:

  1. 当用户使用open系统调用,并指定对应的参数,会根据路径一级一级读入目录
  2. 找到目标文件的FCB,复制到系统打开文件表
  3. 在进程打开文件表中新建一个条目,并返回文件描述符(Windows系统中为文件句柄)

操作系统:文件系统

下图展示了执行read系统调用的执行过过程:

  1. 根据文件的描述符(句柄)在对应进程的打开文件表中找到在系统打开文件表中的索引
  2. 在系统打开文件表中找到对应的FCB信息
  3. 根据FCB中指向文件物理地址的指针,去访问磁盘读取文件数据

操作系统:文件系统

虚拟文件系统

虚拟文件系统VFS)为用户提供了文件系统操作的统一接口,屏蔽了不同文件系统的差异和操作细节。用户可以通过CFS提供的统一调用函数来操作不同系统的文件,而无需考虑具体的文件系统和实际的存储介质

操作系统:文件系统

虚拟文件系统的三大特点:

  1. 向上层用户提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异
  2. VFS要求下层的文件系统必须实现某些规定的函数功能,如open/read/write。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统VFS的要求
  3. 每打开一个文件,VFS就在主存中新建一个vnode,用统一的数据结构表示文件,无论该文件存储在哪个文件系统。注意:vnode只存在于主存中,而inode既会被调入主存,也会在外存中存储。在打开文件后,创建vnode,并将文件信息复制到vnode中,vnode的功能指针指向具体文件系统的函数功能

操作系统:文件系统

为了实现VFS,Liunx主要抽象了四种对象类型。每个VFS对象都存放在一个适当的数据结构中,其中包含:

  • 超级块对象:表示一个已安装的特定文件系统
  • 索引节点对象:表示一个特定的文件
  • 目录项对象:表示一个特定的目录项
  • 文件对象:表示一个与进程相关的已打开文件

文件系统的挂载

文件系统挂载要做的事:文章来源地址https://www.toymoban.com/news/detail-431049.html

  1. 在VFS中注册挂载的文件系统。**内存中的挂载表(mount table)**包含每个文件系统的相关信息,包含文件系统类型、容量大小等
  2. 新挂载的文件系统,要向VFS提供函数地址列表
  3. 将新文件系统加到挂载点(mount point),也就是将新文件系统挂载在某个父目录下

参考

  • https://www.eet-china.com/mp/a38145.html

到了这里,关于操作系统:文件系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【兼容认证】白鲸开源与银河麒麟高级服务器操作系统成功通过测试

    2024年1月2日 ,北京白鲸开源科技有限公司(以下简称\\\"白鲸开源\\\")荣幸宣布,白鲸开源旗下产品 WhaleStudio V2.4 已成功通过与麒麟软件有限公司旗下的银河麒麟高级服务器操作系统产品的兼容性测试。 麒麟软件有限公司的银河麒麟高级服务器操作系统(飞腾版)V10和银河麒麟高级

    2024年02月19日
    浏览(55)
  • Linux文件系统(操作系统的文件管理)

    参考Linux内核源码版本------ linux-2.4.3 操作系统之下,进程是计算机系统 执行计算任务的基本单位 ,进程访问文件执行数据读写之前,操作系统会从外设获取相应的文件信息,在内存中建立 struct file 结构体对象来 描述和管理文件 ,进程借助 struct file 结构体提供的文件信息执行文件

    2024年02月05日
    浏览(53)
  • 操作系统——文件系统

    个人博客网站: https://xingkongdiyiren.github.io/myblog/,完整的Java知识体系,包括408,架构,业务,产品,软技能等 操作系统——概述 操作系统——内存管理 操作系统——进程和线程 操作系统——进程间通信 操作系统——文件系统 操作系统——设备管理 操作系统——网络系统

    2024年02月07日
    浏览(37)
  • 操作系统:文件系统

    文件的保护通过 口令保护 、 加密保护 、和 访问控制 等方式实现。其中, 口令和加密是为了防止用户文件被他人存取或窃取 ,而 访问控制则用于控制用户对文件的访问方式 。 口令保护 口令 指用户在建立一个文件时提供一个口令,系统为其建立 FCB 时附上相应的口令,同

    2024年02月02日
    浏览(41)
  • 【Java】【OS】操作系统理发店问题通过应用小程序动态实现(1)

    He/she will spend a random time on the chair before send the ready flag to the barber. */ public synchronized void sitBarberChair(BarberShopApplet applet, int id) { while(customerSofaQ[sofaBottom] != id) { System.out.println(\\\"Customer \\\" + id + “is waiting for the chair turn”); try{ wait(); } catch(InterruptedException e) { } } while(chairFull()) { try {

    2024年04月23日
    浏览(52)
  • Java编程技巧:获取ip地址、通过ip获取地理位置、获取客户端操作系统、获取客户端浏览器、获取主机名、获取操作系统、获取系统架构

    说明: 大家直接去对应项目位置找到代码,然后看着复制就行了 1.1、若依(自己写的代码) 项目:https://gitee.com/y_project/RuoYi 子模块:ruoyi-common 所在类:com.ruoyi.common.utils.IpUtils 所在方法:getIpAddr 详细位置:整个方法 1.2、Snowy(借助hutool工具包) 项目:https://gitee.com/xiaonuo

    2024年02月04日
    浏览(127)
  • 【汤4操作系统】深入掌握操作系统-文件管理篇

    数据项记录文件 数据项分为: 基本数据项:描述对象的某些属性,例如学生的年龄,姓名学号等 组合数据项:由若干个基本数据项组合而成 记录:一组相关数据项的集合,用于描述一个对象在某方面的属性 文件:文件是指由创建者所定义的、 具有文件名的一组 相关元素的

    2024年02月09日
    浏览(42)
  • 基于文件流操作文件系统

    这里涉及一系列的类: 字节流: InputStream和OutputStream是以操作 字节 为单位(二进制文件). 字符流: Reader和Write是以操作 字符 为单位(文本文件) 字节数组存储read来的字节数据. 在操作系统中, 操作系统是一个广义的概念,System.in也是一个特殊的文件,对应标准输入. Scanner也可以来读取

    2024年04月26日
    浏览(32)
  • Linux操作系统(六):文件系统组件

    参考资料:阿秀的笔记 Linux 「一切皆文件」 不仅 普通的文件和目录 ,就连 块设备、管道、socket 等,也都是统一交给文件系统管理的。 如何唯一标识文件? 索引节点 inode ,记录了文件的元信息,比如 inode 编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位

    2024年04月11日
    浏览(37)
  • 软考--操作系统之文件系统多级索引

    一个文件的信息存放在若干不连续物理块中 系统为每个文件建立一个专用数据结构——索引表,并将这些物理块的块号存放在该索引表中 索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块 索引块的块号放在FCB(文件控制块)里,通过查找到FCB就可以得到索引表,然后

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包