操作系统---文件系统(文件别名中的硬链接和软链接区别)

一、文件系统流程简介

文件系统是操作系统一个重要的子系统,方便读写磁盘上的数据。主要讲述三方面内容,第一方面是从用户角度介绍如何进行文件读写操作,第二方面是介绍文件读写操作系统如何实现,最后一部分是介绍多磁盘管理。

二、文件系统与文件

2、文件系统和文件联系

文件系统是一种用于持久性存储的系统抽象,也就是断电后数据不会丢失,比如说磁盘。

  • 要让用户组织、控制、导航、访问和检索数据
  • 大多数的计算机系统包含文件系统,以及个人电脑、服务器、笔记本电脑、ipod,机顶盒等都有文件系统
  • Google也是由一个文件系统构成的(GFS)

文件是具有符号名,由字节序列构成的数据项集合。

  • 文件是文件系统的基本数据单位

  • 文件名是文件的表示符号

3、文件系统的功能

在这里插入图片描述

4、文件系统种类

在这里插入图片描述

5、文件头的用途

文件属性是用来表征文件的一些基本信息,储存在文件头里面。
在这里插入图片描述

6、文件描述符

在这里插入图片描述 从编程者的角度来看,通过字符串的名字打开文件,返回一个小整数的文件描述符f,read(f)把f文件的内容读出来,最后close(f),大致就是这样一个模式。这里面最重要的就是这个整数形式的文件描述符,它代表文件给我们应用程序做各种各样的访问和控制,那整数如何代表呢?
在这里插入图片描述
文件描述符其实就是一个index索引,进程每打开一个文件,就会在打开文件表相应index存入对应文件的位置。我们都知道数组、列表它们都有索引,这里的文件描述符就是这个索引,索引中存的就是文件的位置。

7、文件描述符中有哪些信息?

在这里插入图片描述

8、访问文件的方法

在这里插入图片描述

9、文件结构

在这里插入图片描述

10、多用户系统中文件的ACL

在这里插入图片描述

三、目录

为什么要有目录?因为要组织文件,如果把所有文件堆在一个一维面上的话,用户很难找到想要的文件。所以通过分层的方式,通过目录,便于查找和组织文件。
在这里插入图片描述

1、目录的基操

在这里插入图片描述

2、路径遍历查找文件的流程

在这里插入图片描述

3、文件系统挂载

在我们的操作系统中,有不同的文件系统,不同的文件系统要挂在不同的目录下,来形成一个分层次的跨文件系统的访问,把不同系统根目录的位置称为挂载点。

在这里插入图片描述

4、文件别名

文件别名有两种方式,一个是硬链接,一个软链接。

  • 硬链接:不能跨目录建立硬链接,硬链接其实就是两个文件了,硬链接得到的文件名和原文件名指向的磁盘的inode节点是同一个,同时该inode中的引用计数会加1。删除原文件,也只是该inode节点的引用计数减1而已。

inode不懂可以看下面这片博客:https://blog.csdn.net/weixin_44571270/article/details/105833450

  • 软链接:可以跨目录建立软链接,软链接得到的文件名存的是原文件的绝对路径,也即是原文件如果被删除,那么就会出现悬空指针,也即是此软链接得到的文件名失去了存在的意义。软链接相当于win中的快捷方式。

5、循环检测

在这里插入图片描述
inode的引用计数和软链接的循环检测,在python的垃圾回收机制中也有一个引用计数和循环引用的概念,但对象不一样,避免混淆可以对比着看一下。
https://blog.csdn.net/weixin_44571270/article/details/105775608

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章