Linux文件系统

  文件系统是一个逻辑上的概念,本身与磁盘没有什么关系,它是一个外围性永久存储设备,我们知道,计算机共有五大部件,存储设备是一种,内存是个临时性质的存储设备,无论是关机还是断电,存在里面的数据都会消失,我们需要一个永久性存储的设备,来弥补内存只是临时存储性。

  对于Linux来说,其哲学思想之一就是一切皆文件,我们Linux上的访问设备全是通过文件接口来实现的,这就如同说我们访问设备如同访问一个文件一样。因为它们都是使用的是文件系统接口。

  在操作系统中,管理磁盘的文件系统有很多种,Windows的NTFS和FAT,Linux的EXT、xfs系列等都是管理磁盘的文件系统,不过它们的分区方式不一样,Windows分区方式就是直接就是分为C盘和D盘,两个都是相互独立的,让我们很直观看到,而Linux不是,Linux是除了”/”以外,你就看不到其它任何的独立分区,但这并不代表它不能支持多个文件系统,只不过我们就是带着”/”一起访问罢了。

  当我们格式化完成以后,我们的用户以为格式化就是能删除所有的数据,这个本质倒是也没错,不过有点不同的就是,格式化是写文件系统的,它会把磁盘按照逻辑上划分为元数据区域和数据区域,元数据区域记录的是Inode节点和超级快等位图信息,数据区域才是真正存储的数据,我们的格式化分为低级格式化和高级格式化,低级格式化是厂商在硬盘上划分出一个个磁道,而高级格式化是我们用户要使用磁盘在逻辑上建立的一种文件系统。

  在文件系统上我们大部分看到这么两类,一种是目录,一种是文件,其实目录是一个特殊的文件,它是一种路径的映射,在逻辑上建立文件系统之后,我们就可以使用磁盘了,它们的创建过程相对来说从概念上理解也不是那么容易,首先,它们要将磁盘在逻辑上划分一个一个的块儿,这些块的大小是根据你规划的分区容量自动来给你进行设定的常见的从1K到4K,然后我们在元数据区域建立一个位图,这个位图是标识那个块是被使用,使用的话,标记为1,没有使用的话,标记为0,不过,在前面的512个字节你是没办法使用的,不但没办法使用,要是破坏了你的系统开机就启动不了,这个分区就叫MBR它是记录了你操作系统的bootloeader,用于加载内核,然后64个字节中,每16个字节记录一个分区,总共可以表示四个主分区,最后2个字节是你的验证,如果划分好分区的话,会显示55AA。

  我们继续上次位图的话题,使用的话,标记为1,不使用的话,标记为0,但是我有一千个位图,要存储数据的话,位图查找半天,才查找第五百个是0,这也是一件很麻烦的事情,所有就开始事先把这些个块划分成为一个一个的块组,各自管理自己的,数据存储的时候,可以在这个块儿上存储一个,可以在另一个块上存储一个,提高了硬盘的写入速度。

  还有一个就是超级块,它的作用就是存储文件系统的大小,有多少是空的和已经填满的占用多少,以及它们各自的总数和其它诸如此类的信息。要使用一个数据来进行数据访问,那么第一个要访问的就是超级块。所以,如果超级块坏了,那磁盘就真的没有救了

  超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统大小、空闲块的数目、空闲块的索引表、以及空闲i节点的数目,空闲i节点的索引表、封锁标记等。超级块是系统为文件分配存储空间。

原创文章,作者:刘 祥宇,如若转载,请注明出处:http://www.178linux.com/58948

(0)
刘 祥宇刘 祥宇
上一篇 2016-11-11 14:31
下一篇 2016-11-12 20:39

相关推荐

  • Linux 第十天: Linux文件查找和压缩

      Linux 第十天: Linux文件查找和压缩                     使用Linux的时候, 经常需要查找文件, 在Linux中, 有很多方法可以做到这一点.…

    Linux干货 2016-08-18
  • rpm程序包管理器

    linux程序包管理器: 协作用户管理应用程序:安装、升级、查询、校验、卸载等 软件程序包生成过程:     源代码——》目标二进制格式–》组织成为一个或有限几个包文件     源代码:程序员写好的纯文本文档格式的代码     …

    Linux干货 2016-08-19
  • 系统启动及内核管理

    一、知识整理 1、nohup 命令:不挂断地运行命令,远程连接当断网或断开shell时还可以继续运行。无论是否将nohup命令的输出重定向到终端,输出都将附加到当前目录下的nohup.out文件中,如果当前不可写,则重定向到家目录nohup.out文件,除非定义了输出文件。 nohup COMMAND 输出重定向至文件 nohup COMMAND &…

    Linux干货 2016-09-19
  • 程序包管理

    什么是程序包管理器?     顾名思义,就是将编译好的应用程序的各组成文件打包成一个或多个程序包文件,从而更方便地实现程序包的安装、升级、卸载还有查询等管理操作。 那么一个程序包又由哪些部分组成呢? 程序包的组成清单:   文件清单(每个程序包都单独实现):       安装或卸载时运行的脚本,有如下四类:     preinstall : 安装过程开始之前…

    Linux干货 2016-12-16
  • shell脚本编程基础

    一.编程基础              程序:指令+数据              程序编程风格:  &n…

    Linux干货 2016-08-12
  • 第15天:脚本关键字,函数

    http://note.youdao.com/noteshare?id=2ea9bcdf745a47bf65f0cef6e706ccaf

    Linux干货 2016-09-06