<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(3)》(24)

本文主要是介绍<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(3)》(24),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux操作系统原理分析之文件管理(3)》(24)

  • 7 文件管理
    • 7.5 文件存储空间的管理
    • 7.6 文件的共享和保护
      • 7.6.1 文件存取控制
      • 7.6.2 文件共享的实现方法
      • 7.6.3 文件的备份转储

7 文件管理

7.5 文件存储空间的管理

  1. 位示图
    在这里插入图片描述
    对每个磁盘可以用一张位示图指示磁盘空间的使用情况。一个磁盘的分块确定后,根据总块数决定位示图由多少字组成,位示图中的每一位与一个磁盘块对应,某位为“ 1”状态表示相应块已被占用,为“0”状态的位所对应的块是空闲块。
块号 b=(i-1)×n+j 
i=(b-1)DIV n +1
j=(b-1)mod n +1
  1. 空闲块表
    系统为每个磁盘建立一张空闲块表,表中每个登记项记录一组连续空闲块的首块号和块数,空闲块数为“0”的登记项为“空”登记项。 适合采用顺序结构的文件。
序号第一个空白块号空白块个数物理块号
1242、3、4、5
2939、10、11
315515、16、17、18、19
4
  1. 空闲块链表
    1、单块连接
    把所有空闲块用指针连接起来,每一个空闲块中都设置一个指向另一个空闲块的指针,所有的空闲块就构成了一个空闲块链。系统设置一个链首指针,指向链中的第一个空闲块,最后一个空闲块中的指针为“0”。 效率较低,麻烦费时。
    2、成组连接
    UNIX 系统:采用空闲块成组连接的方法。
    采用成组连接后,分配回收磁盘块时均在内存中查找和修改,只是在一组空闲块分配完或空闲的磁盘块构成一组时才启动磁盘读写。比单块连接方式效率高。
    在这里插入图片描述

7.6 文件的共享和保护

7.6.1 文件存取控制

  1. 存取控制矩阵
    如下图,记录所有用户对所有文件的使用权限。缺点:占用较大空间;查找速度慢
    在这里插入图片描述
  2. 存取控制表
    对存取控制矩阵改进,将用户进行分组。对一个文件而言,针对文件所有者,即其所在的各个用户组规定不同的存取权限,从而形成该文件的存取控制表。它比存取控制矩阵规模要小得多。
用户文件权限
文件所有者RWE
用户组 ARW
用户组 BRE
其他R
  1. 口令
    对文件规定一个口令,放在文件说明中,并规定使用该文件的用户。当用户访问文件时,必须提供口令。验证正确后,才能访问。
  2. 加密
    对文件中所有信息以密码形式重新编码存储,在读文件时,再进行译码解密。通常做法是:在用户向外存写入一个文件时,通过一个加密程序对文件的信息进行变化处理。读取文件时,通过一个解密程序把文件恢复原貌。

7.6.2 文件共享的实现方法

  1. 基于索引结点的共享方式:
    引用索引结点,即诸如文件的物理地址及其它的文件属性等信息,不再放在目录中,而是放在索引结点中。在文件目录中只设置文件名及指向相应索引结点的指针,如右图所示。
    在这里插入图片描述
    在索引结点中还应有一个链接计数 count,用于表示链接到本索引结点上的用户目录项的数目。当用户创建一个新文件时,他是该文件的所有者,此时将 count 置 1。当有用户 B 要共享此文件时,在用户 B 的用户目录中增加一目录项,并设置一指针指向该文件的索引结点,此时,文件主仍然是 C,count=2。如果用户 C 不再需要此文件,是不能将文件删除的,因为删除了该文件,也必删除了该文件的索引结点。

在这里插入图片描述

  1. 符号链实现文件共享 符号链实现文件共享:
    B 为了共享 C 的一个文件 F,可以由系统创建一个 LINK 类型的新文件,将新文件 F 写入 B 的用户目录中,以实现 B 的目录文件与文件 F 的链接。在新文件中只包含被链接文件 F 的路径名,称这样的链接方法为符号链接;

7.6.3 文件的备份转储

通过转储技术,定期将全部或部分文件转存在磁带、光盘作为备份。常用的转储方法有两种:全量转储、增量转储。

全量转储:把文件系统中所有文件,定期复制在磁带上。 增量转储:仅把修改过的文件和新建立的文件转储在磁带上。

这篇关于<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(3)》(24)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/461141

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java