Linux文件系统

简介:   在linux中一个重要的概念:一切都是文件。也就是说linux运行的核心就是对于文件系统的操作; linux或者说unix是怎么对文件进行操作的,系统是怎么记录文件的?当新建文件和目录的时候系统干了什么? 对于这些问题我觉得还是一步一步来: 首先得说说的是物理设备(磁盘:放置所有数据的地方) 大家肯定知道磁盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。

  在linux中一个重要的概念:一切都是文件。也就是说linux运行的核心就是对于文件系统的操作;

linux或者说unix是怎么对文件进行操作的,系统是怎么记录文件的?当新建文件和目录的时候系统干了什么?

对于这些问题我觉得还是一步一步来:

首先得说说的是物理设备(磁盘:放置所有数据的地方)

大家肯定知道磁盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。每个盘片有一个磁头。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2N次方(N0.1.2.3)字节信息。在一个盘面中,不同半径的圆圈就称为磁道,而对于不同盘面的,相同半径就组成了柱面。容量的计算方法:

  capacity = 磁头 *扇区存储值 *磁道 *扇区数

通过上面对与数据在物理设备上的存储有了了解了吧

 

一整块是一个硬盘的分区,一个分区只能对应一个文件系统。

 

文件系统是什么?请听我慢慢道来。我们都知道硬盘分区后都要进行格式化,由于每种操作系统所设定的文件属性、权限都不相同,为了存放需要的数据,则需要将分割槽进行格式化,就被称之为操作系统能够使用的filesystem

 

而对于传统的磁盘和文件系统,一个分割槽就只能格式化为一个文件系统,但是由于磁盘整列的发展,现在我们一般说一个可挂载的数据块为文件系统。

 

那么文件系统又是怎么运作的呢?

 

对于linux中文件包括属性(文件拥有者等)和权限(读写执行等)还有数据。对于属性和权限都保存在inode块中,而文件真正的数据确保存在data block中操作系统,而超级块中就保存的是整个文件系统的中容量,以及inodedata block的使用情况等

 

超级块(superblock):这里保存的是文件系统的信息,包括:inodedatablock的总量,已用和未用情况,以及文件系统的格式以及相关信息。(这一块出错,后果那是相当的严重)

 

inode块:记录文件的属性,一个文件用一个inode,并且里面包含了指向该文件的内容的block号码。

 

block:记录文件的真实内容,可能占有多个block

 

         在这里我就说这么多,如果那位同学想了解的更多,比如当block太多以至于一个inode节点记录不了,则系统为之提出了一级间接记录区以及二级记录区,请参考其他书籍。

通过上面的知识是不是对文件系统有了初步的认识呢?

 

下面我们通过详细介绍当创建文件时文件系统的操作过程。

对于文件系统create文件:

第一步   在inode区里面找到一个空闲的inode节点,如图节点921130

         第二步   在data block区中找到一系列的空闲block块,保存文件的信息,并且将对于那个的block块块号写到第一步中的inode节点中,如图 600,922,200,并且会更新超级块中的block和inode的使用情况

         第三步     将文件的入口inode与文件名字映射写入到目录项中,记住文件名字是保存在目录项中的哦。所以通过文件名字就能找到inode,找到inode就能够找到对应文件内容

目录的创建过程:

创建目录和创建文件过程大致相同:

                                 

第一步:         仍然是查找一块空闲的inode节点,并且写入相应的信息。

         第二步:         也是查找空闲的block节点,这里写入的信息就不同了,为inode节点号码和文件名字键值对,这个列表其实也就是文件的入口,新建的目录至少包含两个个目录”.””..”其中”.”指向自己,”..”指向上级目录,我们可以通过比较对应的i-节点号来验证,887270 对应着上级目录中的child对应的i-节点号

         第三步     将更新block中inode和block使用情况

         第四步     添加目录的入口到父目录,即在父目录中的child入口。

  文件系统是操作系统最为重要的一部分,它定义了磁盘上储存文件的方法和数据结构。文件系统是操作系统组织、存取和保存信息的重要手段,每种操作系统都有自己的文件系统,如Windows所用的文件系统主要有FAT16、FAT32和NTFS,Linux所用的文件系统主要有ext2、ext3、ext4、ReiserFS和btrfs等。

  我们知道,一块磁盘,要先分区,然后再格式化,否则就无法使用。而这个格式化的过程,就是文件系统创建的过程,也可以这样理解,磁盘上的一个分区,就是一个文件系统。这个就像我们在使用windows系统的时候,把磁盘分区可以格式化成FAT32或者NTFS,但所格式化的文件系统必需是你使用的系统所能认出来的。这就是为什么NTFS的文件系统,不能直接被Linux系统所认识。同样,windows也不能认识ext3/ext4一样的道理。

 

相关文章
|
12天前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
53 8
|
17天前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
46 7
|
2月前
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。
|
3月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
45 12
|
3月前
|
Linux Shell 网络安全
深度探索Linux操作系统 —— 构建根文件系统1
深度探索Linux操作系统 —— 构建根文件系统
54 6
|
3月前
|
存储 人工智能 数据管理
深入理解Linux操作系统之文件系统管理探索人工智能:从理论到实践的旅程
【8月更文挑战第30天】在探索Linux的无限可能时,我们不可避免地会遇到文件系统管理这一核心话题。本文将深入浅出地介绍Linux文件系统的基础知识、操作命令及高级技巧,帮助你更有效地管理和维护你的系统。从基础概念到实践应用,我们将一步步揭开Linux文件系统的神秘面纱。
|
3月前
|
存储 Linux 数据安全/隐私保护
在Linux中,如何创建文件系统的备份?
在Linux中,如何创建文件系统的备份?
|
3月前
|
存储 监控 Linux
|
3月前
|
存储 监控 Linux
|
3月前
|
存储 缓存 Linux
在Linux中,文件系统概念是什么?
在Linux中,文件系统概念是什么?
下一篇
无影云桌面