1、什么是文件系统
常规认知:根目录
文件系统是操作系统用于明确存储设备组织文件的方法
文件是需要存储在存储硬件设备上的,而怎么存储就需要一些方法,而文件系统就是管理,执行文件存储任务的解决方案
方法为:文件管理系统(是程序),简称文件系统
2、文件系统(文件管理系统的方法)的种类有哪些
FAT
VFAT
NTFS
- windowas系统
Ext
- Ext1
- Ext2
- Ext3
- Ext4
HFS
……
Linux的文件系统为:
df -T 查看文件系统
vfat:基于磁盘的,boot(BootLoader,kernel)
ext4:基于磁盘的,SD卡,存放根目录
tmpfs:基于内存的文件系统
3、什么是分区
1、windows系统:面向普通用户PC
C盘(安装操作系统的位置)也可以随意创建文件夹存放文件,D盘(用户随意发挥),E盘
未对文件存放有严格的要求
存储数据是在每个磁盘C,D,E下连续存储的
2、linux系统:面向开发者,会对要求严格
按照功能来分区,每个分区严格存放文件
嵌入式系统可以分为4个区,分别是
bootloader:启动代码
para:启动代码向内核传递参数的位置
kernel:内核分区
根分区:文件系统结构
存储数据不是在每个分区BootLoader,para,kernel,根分区下连续存储的
4、文件系统目录结构是什么
Linux文件系统与目录结构
在Linux系统中,目录被组织成一个:单根倒置树结构,文件系统从根目录开始,用/来表示。文件名称区分大小写( 大小写敏感还需要看具体的文件系统格式 ),以.开头的为隐藏文件,路径用/来进行分割(windows中使用\来分割),文件有两个种类:元数据与数据本身.在操作linux系统时,通常会遵循以下的分层结构规则:
LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)
文件系统结构1
/:根目录
/bin:使用的基本命令,不允许关联到独立分区
/boot:用于存放引导文件,内核文件,引导加载器.
/sbin:管理类的基本命令
/lib:系统库文件
/lib64:存放64位系统上的辅助共享库文件.
/etc:系统配置文件存放的目录
/home:普通用户主目录,当新建账户时,都会分配在此
/root:系统管理员root的宿主目录
/media:便携式移动设备挂载点目录.
/mnt:临时文件系统挂载点.
/dev:设备(device)文件目录
/opt:第三方应用程序的安装位置.
/srv:联网服务启动之后需要访问的数据目录
/tmp:存储临时文件
/usr:应用程序存放目录
/var:放置系统中经常要发生变化的文件,如日志文件。
/proc:存放硬件设备的信息
/sys:用于输出当前系统上硬件设备相关的虚拟文件系统.
/selinux:存放selinux相关的信息安全策略等信息。
5、什么是Linux虚拟文件系统(Virtual File System)
因为linux存储文件有不同的分区,不同分区的存储文件方式不同,那么读取不同分区的文件的实现代码方法也不同。
虚拟文件系统的作用:
- 简化程序员的开发
- 不管是什么文件类型,不管文件是磁盘内存,还是硬件设备,都可以只用open()、read()、write()等系统调用统一操作
VFS2是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的抽象层
-
向上,对应用层提供一个标准的文件操作接口;
-
对下,对文件系统提供一个标准的接口,以便其他操作系统的文件系统可以方便的移植到Linux上;
-
VFS内部则通过一系列高效的管理机制,比如inode cache, dentry cache 以及文件系统的预读等技术,使得底层文件系统不需沉溺到复杂的内核操作,即可获得高性能;
-
此外VFS把一些复杂的操作尽量抽象到VFS内部,使得底层文件系统实现更简单。