系列文章目录
第一章 小白快速了解文件系统
第二章 Linux 文件系统基础理论知识详解
前言
最近在研究文件系统,但由于很多资料对新人小白不友好(比如我,看了好多文章还是云里雾里的),所以我就直接找专业书结合网上的资料,干脆就自己写一篇面向小白的文章,这个会是一个系列,一共三篇,这篇是第一篇。
参考书籍:Linux内核探秘 深入解析文件系统和设备驱动的架构与设计 第二章
文件系统是什么?
-
定义(官方定义):
- 即在存储设备上组织文件的方法
- 操作系统中负责管理和存储文件信息的软件结构称为文件管理系统
- 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
- 具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等
-
简单地说,文件系统就是帮我们管理文件的东西,让我们可以像下面一样,更加形象简单地使用文件。(事实上没这么简单,但我们先这样理解)
-
接下来让我们看到下面这张图,这是我windows C盘信息的截图,你可能看到 文件系统:NTFS等字样,你可能会惊讶,为什么磁盘上会有文件系统,文件系统不是应该在内存里面吗,这就涉及到了 (VFS) / (windows I/O子系统) 这些东西了,这里先不管,在这篇文章中只需要知道 文件系统是安装在磁盘、U盘、固态硬盘、SD卡 等等,这些硬盘、存储介质中的 一种特殊软件。
注:
VFS是Linux中访问文件系统的抽象接口,而Windows I/O子系统则是windows上与Linux的VFS有类似功能的东西
NTFS只是文件系统的一种属于Windows,还有其它的文件系统,比如Linux的ext4等等,不了解没关系,这不影响我们理解文件系统这一大概念
- 也许你还不理解,这里再给你一张图这图是以Linux为基础的,其实Windows在总体上也差不多。图中,我们用户通过 内存中的VFS(虚拟文件系统) 作为接口来操作硬盘中的数据,(包括增、删、改、查)。这就是文件系统,安装在 硬盘这一类存储设备 中,有组织地存储(管理)数据,方便我们对数据的使用。
- 举一个例子,我们执行删除一个文件的操作,该操作会先发给VFS,由VFS与文件系统进行沟通,VFS发送删除文件的信号,由文件系统接收并执行。
另外说一下,我们都应该听说过格式化,所谓格式化就是对硬盘清除数据,并且重新安装文件系统,硬盘也必须安装完文件系统后才能被计算机使用
总结
- 文件系统是一种安装在硬盘这类存储设备上的一种特殊软件/程序,可以帮我们管理硬盘,硬盘也都需要先格式化安装好文件系统后才能被计算机所使用。
- 我们或者系统对文件的使用,在底层都是文件系统帮我们完成的,有点像客户端与服务端,我们客户端发送指令,实际都是服务端负责处理。