浅谈Linux文件系统

Linux系统中所有数据都是以文件形式来呈现,即一切皆文件,文件目录采用树形结构,以根目录/为主,向下呈现分支状展开, 
但这只是逻辑上的一种显示和查找方式,文件数据实际是存储在磁盘分区里的,
通过挂载,将目录树架构与磁盘分区内的数据进行结合,进入该目录就可以读取该分区数据,该目录即挂载点,
根目录一定要挂载到某个分区,在系统安装时设定,其他目录可依需求挂载到不同分区,若不挂载则都将在根目录分区中,
树形结构在实际文件系统内部是并行存储机制,在根目录分区用不同的目录名指向对应所在的分区;

 

文件管理系统,简称文件系统(file system),是操作系统中负责管理和存储文件信息的软件机构,
用于明确存储设备(一般是磁盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法,
包括指定命名规则,命名长度,文件大小,存储位置等;

文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性,
从系统角度看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索;

文件系统也指用于存储文件的磁盘或分区,同一硬盘不同分区可以是不同文件系统,
格式化也即是建立文件系统,所以可以理解为该分区就是该文件系统,是一体的;
种类如FAT,NTFS,Ext,XFS等

 

几个概念:

硬盘:用于存储数据的物理硬件设备,含 种类,组成结构,性能指标等,需先分区,然后格式化
分区:将硬盘的整体存储空间划分成多个独立的区域,方便管理和使用,提高存取性能
格式化:根据所用文件系统对分区进行初始化的一种操作,使其具有存储能力,其实是创建文件系统

文件系统:操作系统中负责管理和存储文件信息的软件,包括命名规则,命名长度,文件大小,存储位置等,
  从系统角度看是对存储空间进行组织和分配,
  同一硬盘不同分区可以是不同文件系统,
  格式化也即是建立文件系统,所以可以理解为该分区就是该文件系统,是一体的

VFS:虚拟文件系统,内核功能,为各类文件系统提供了一个统一的操作界面和应用编程接口

目录树:一切皆文件,所有文件都是由根目录/开始,向下呈现分支状,
  是一种逻辑显示结构,实际是并行存储,指针指向

挂载:将硬件设备,如硬盘或分区与一个已经存在的目录文件进行关联
  挂载点即对应目录,为进入文件系统的入口
  根目录/是唯一必须挂载的目录,且在安装linux时已挂载,其他目录可挂可不挂
  如果根目录下的挂载点(目录)没有单独的分区,它们都将在根目录的分区中
  /dev/sda*只是用来管理分区,即属性信息,并不存储实际文件数据

 

交换分区SWAP:磁盘中单独划分出来的分区,不存储数据,用来模拟内存,

  当内存不够用时,将内存中不常用的数据放到硬盘交换分区中,而将内存空间释放给真正需要的程序使用,

  若内存足够大,则不需要交换分区,但服务器最好还是预留一些出来以防万一,做到备而不用,

  当用到交换分区时,主机磁盘灯会开始闪个不停,

  不会使用到目录树的挂载,不需要指定挂载点;

 

目录树读取流程如下:

由根目录/开始,系统首先根据挂载点找到根目录inode,若有rx,找到根目录block,

根据相应目录名找到目录inode,若有rx,找到该目录block,

根据文件名找到文件inode,若有r,找到文件block,读取文件内容;

 

新增文件流程如下:

系统首先确定用户有wx,然后根据inode对照表找到未使用的inode,并写入新文件权限和属性,

根据区块对照表中找到未使用的区块号码,写入实际数据,并更新inode指向,

将inode和区块数据同步更新到对照表,并更新超级区块内容;

 

posted on 2020-03-31 10:17  流年似水zlw  阅读(171)  评论(0编辑  收藏  举报

导航