文件系统基础知识

1、长期信息存储需要哪些要求?

1>能够存储大量信息;

2>使用信息的进程终止时,信息仍旧存在;

3>必须能使多个进程并发存取相关信息。

 

2、什么是文件系统?

文件系统是对常规文件目录的组织集合。在Linux中,用来创建文件系统的命令是mkfs,而且在Linux及其他类Unix系统中,并不区分文件和目录:目录就是记录了其他文件名的文件。

 

3、什么是文件?文件是怎么来的?

现代操作系统为解决信息能够独立于进程之外被长期存储而引入了文件,文件作为进程创建信息的逻辑单元可以被多个进程并发使用。

 

4、关于绝对路径和相对路径以及分割符

每个文件都赋予一个绝对路径,它是从根目录到文件的路径组成;而相对路径是相对于当前目录(也叫工作目录)来说的,用户可以指定一个目录为当前工作目录,这时,所有的不从根目录开始的路径名都是相对于工作目录的。说白了就是绝对路径以根目录为起点,别的都是相对路径

在Unix及类Unix系统中,路径各部分之间用“/”分割。在Windows中,分割符是“\”。

 

5、文件系统布局

文件系统存放在磁盘上。多数磁盘划分为一个或多个分区,每个分区中有一个独立的文件系统。磁盘的0号扇区称为主引导记录(Master Boot Record,MBR),用来引导计算机。在MBR的结尾是分区表。该表给出了每个分区的起始和结束地址,表中的一个分区被标记为活动分区。在计算机被引导时,BIOS读入并执行MBR。MBR做的第一件事就是确定活动分区,读入它的第一个块,称为引导块,并执行之。引导块中的程序将装载该分区中的操作系统。为统一起见,每个分区都从一个启动块开始,即使它不含有一个可启动偶的操作系统。

在文件系统中,用来分配空间的基本单位是逻辑块,亦即文件系统所在磁盘设备上若干连续的物理块。下图是Linux的磁盘分区和文件系统布局。

6、文件是如何实现的?

1>连续分配

简而言之就是把每个文件作为一连串连续数据块存储在磁盘上。

2>链表分配

每个文件构造磁盘块链表。每个块的第一个字作为指向下一块的指针,块的其他部分存放那个数据。如下图。

3>在内存中采用表的链表分配

将上面的每个磁盘块中的指针取出,放在内存中,组成一个表,就成了一个新的实现方式。内存中的这样一个表格称为文件分配表(File Allocation Table,FAT)。如下图。

4>i节点

对于Linux操作系统,针对驻留与文件系统上的每个文件,文件系统的i节点表会包含一个i节点(索引节点的简称)。它包含文件属性及磁盘块的地址。

7、关于数据(用户数据)和元数据区别

任何文件系统中的数据都分为数据和元数据。数据是指普通文件中的实际数据,而元数据指的是描述一个文件特征的系统数据(各种属性),比如访问权限、文件拥有者、文件数据分布信息等。

在Linux中,元数据中的inode号(inode是元数据的一部分,但其不包含文件名)才是文件的唯一而非文件名。文件名是为了方便人们的记忆和使用,系统或程序通过inode号寻找正确的文件数据块。

8、硬链接与软链接的区别与联系

在Linux操作系统中,若一个inode号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用多个别名。通过stat命令就可以查看到一个文件的inode号以及硬链接数。

可以看到该文件有两个硬链接,然后通过ls -li命令能够看到这两个硬链接。

对于硬连接来说,它存在以下特性:

1>文件有相同的inode和data block;

2>只能对已存在的文件进行创建;

3>不能交叉文件系统进行硬链接的创建,因为inode号的唯一性只能在一个文件系统中才能得到保障;

4>不能对目录进行创建,只可对文件创建,从而避免出现诸多系统程序陷于混乱的链接环路;

5>删除一个硬链接文件并不影响其他有相同inode号的文件。同一个文件的所有硬链接地位平等。

 

如果文件用户数据块中存放的内容是另一个文件的路径名指向,则该文件就是软链接。软链接就是一个普通文件,只是数据块内容有些特殊。软连接有着自己的inode号以及用户数据块。

软链接有如下一些特性:

1>软链接有自己的文件属性和权限等;

2>可对不存在的文件或者目录创建软链接;

3>软链接可交叉文件系统;

4>软链接可对文件或目录创建;

5>创建软链接时,链接技术i_nlink不会增加;

6>删除软链接并不会影响被指向的文件,但若被指向的源文件被删除,则相关软链接被称为死链接,若被指向路径文件被重新创建,死链接可回复为正常的软链接。

 

参考:

《现代操作系统》

《Linux/Unix系统编程手册》

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值