Linux的文件系统 & 内核结构

Linux的文件系统

Q1:什么是文件系统?

A:在学术的角度下,文件系统操作系统用于明确存储设备组织文件的方法,是“文件管理系统”的简称,本质也是代码,一段程序


Q2:文件系统(文件管理系统的方法)的种类有哪些?

A:FATNTFSext1/2/3/4HFS......

  • 对于Windows可以右击磁盘属性查看文件系统,是NTFS

Linux的文件系统 & 内核结构_第1张图片

  • 对于Linux,输入“df -T”查看文件系统,是ext4

Linux的文件系统 & 内核结构_第2张图片

 (tmpfs是内存文件系统)

回忆上节替换内核时挂载U盘时提到的,当树莓派的SD卡挂载到电脑ubuntu虚拟机时:

fat分区是boot相关的内容;ext4是系统的根目录分区


Q3:什么是分区?

A:对于Windows来说,所谓的C/D/E盘,就是分区,用户可以随意的在分区里创建文件;对于Linux来说分区则有了严格的功能限制,要求按照功能严格的存放文件

嵌入式系统的分区:

  • bootloader分区:存放系统的启动代码
  • para分区:存放启动代码向内核传递参数的位置
  • kernel分区:存放内核的代码
  • 根分区:由“文件系统(目录)结构”存放各种代码
  1. 对于windows来说:是先将物理地址分开,再在分区上建立目录,所以windows的分区下,同一个目录下的两个文件必然属于同一个分区,分区是连续的。所有路径都是从盘符开始的,比如C盘下的一个文件,它的路径必然是C://开头。
  2. 对于Linux来说:是先有目录,再将物理地址映射到目录中,所以Linux的分区下,同一个目录下的两个文件可能属于不同的分区,分区是不连续的。在Linux操作系统中,所有路径都是从根目录开始。

Q4:什么是文件系统目录结构?

A:相比于文件系统代表“操作系统用于明确存储设备组织文件的方法文件系统目录结构代表“从根目录开始的文件架构 

在Linux系统中:

  • 以“.”开头的为隐藏文件
  • 路径用“/”来进行分隔(windows中使用“\”来分割)
  • 目录被组织成一个树形结构,并从根目录开始用“/”来表示,并遵循以下的结构:

Linux的文件系统 & 内核结构_第3张图片

Linux的文件系统 & 内核结构_第4张图片

对于windows来说,也采用树结构,但是可能存在多个根并列,而盘符就是根,有几个盘符就有几个并列的根


Q5:什么是虚拟文件系统 “Virtual File System” ?

A:在Linux系统中,不同的文件所属的文件系统可能是不同的,文件A可能是ext4,文件B可能是tmpfs......但是在代码的编写时,使用统一的如open,read,write,cp等函数就可以对不同文件系统下的不同文件进行操作,这就是靠VFS这个中间层实现的:上层的函数接口通过VFS就可以轻松的访问不同的文件系统下的不同文件VFS就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口

VFS的作用就是:简化开发的流程,不管属于什么文件系统,不管文件是磁盘还是设备,都可以使用上层的函数接口来进行统一的操作


Linux的内核结构

Linux的文件系统 & 内核结构_第5张图片

Linux的文件系统 & 内核结构_第6张图片

 补充:什么是shell?

shell也是一个应用程序,给用户提供了操纵内核的工具。一个shell对应一个终端(terminal),在终端输入的指令就会直接传递给shell进行解释,然后对内核进行相应的操作。

你可能感兴趣的:(linux,服务器,运维,文件系统,文件系统结构,文件系统目录结构)