一、什么是文件系统
- 文件系统是操作系统用于明确存储设备组织文件的方法,就是一个用于管理系统的方法。
- 这个方法就是文件管理系统,简称文件系统。可以理解为是在硬件上跑着很多个不同的程序
二、文件系统的种类有哪些
- FAT VFAT NTFS EXT1/2/3/4 HFS BRTFS …
- 树莓派查看文件系统命令:
df -T
- vfat:与boot代码相关的系统(bootloader,dernel)
ext4:根目录
tmpfs:内存文件系统
三、 什么是分区
- windows: 随意(面向普通用户PC),目录即分区
C(装系统的位置)也可以随意在C盘存放文件. D盘(用户随意发挥) - Linux: 按照功能来分区,每个分区严格存放文件(开发者)
嵌入式系统可以分为4个区,分别是
bootloader、 启动代码
para、 启动代码向内核传递参数的位置
kernel、 内核分区
根分区等 文件系统结构
四、什么是文件系统目录结构?
常规认知: 根目录,不是分区,和windows不同
五、什么虚拟文件系统Virtual File System ?
虚拟文件系统(vfs):就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口
六、虚拟文件系统有什么作用?
- 简化应用程序员的开发
- 不管是什么文件类型:不管文件是磁盘文件还是设备文件还是分区不同的文件,都只用open read write统一操作
Linux系统内核框图:
- 其中可以看到三个层次:硬件级、内核级和用户级。
- 用户程序通过陷入完成由用户态到内核态的转换。系统调用作为用户级与内核级交互方式,分为2部分:与文件子系统的交互和与进程控制子系统的交互。
- 文件子系统管理文件包括:分配文件空间、管理空闲空间、控制对文件的存取以及为用户检索数据。
- 进程控制子系统负责进程同步、进程间通信、进程调度和存储管理。
- Linux内核主要包括5个模块:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。
1.进程调度模块:用来负责控制进程对CPU资源的使用。
2.内存管理模块:用于确保所有进程能够安全地共享机器主内存区。
3.文件系统模块:用于支持对外部设备的驱动和存储。(一些皆文件)
4.进程间通信模块:用于支持多种进程间的信息交换方式。通过系统调用实现进程间的信息交换。
5.网络接口模块:提供多种网络通信标准的访问并提供对多种网络硬件的支持。
所有的模块都要通过进程调度来运行。
什么是Linux shell?
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口
。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果
参考文章:写的挺全面 带你真正认识Linux
系统结构