一、概念
1、文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构。即在存储设备上组织文件的方法。
以上说的方法:就是文件管理系统(程序),简称文件系统
2、文件管理系统:操作系统中负责管理和存储文件信息的软件机构.
3、文件系统的组成
①文件系统的接口。
②对对象操纵和管理的软件集合。
③对象及属性。
二、种类
ext2 : 早期linux中常用的文件系统
ext3 : ext2的升级版,带日志功能
RAMFS : 内存文件系统,速度很快
NFS : 网络文件系统,由SUN发明,主要用于远程文件共享
MS-DOS : MS-DOS文件系统
VFAT : Windows 95/98 操作系统采用的文件系统
FAT : Windows XP 操作系统采用的文件系统
NTFS : Windows NT/XP 操作系统采用的文件系统
HPFS : OS/2 操作系统采用的文件系统
PROC : 虚拟的进程文件系统
ISO9660 : 大部分光盘所采用的文件系统
ufsSun : OS 所采用的文件系统
NCPFS : Novell 服务器所采用的文件系统
SMBFS : Samba 的共享文件系统
XFS : 由SGI开发的先进的日志文件系统,支持超大容量文件
JFS :IBM的AIX使用的日志文件系统
ReiserFS : 基于平衡树结构的文件系统
udf: 可擦写的数据光盘文件系统
查看树莓派文件系统的指令:df -T
常见的文件系统种类:FAT VFAT NTFS EXT1/2/3/4 HFS …
vfat : 基于磁盘存放boot相关的代码(bootloader, kernel)
ext4 : 基于磁盘(存放根目录分区)
tmpfs : 临时文件系统(内存文件系统)
三、分区
1、Windows与Linux区别
Windows面向普通用户PC,目录即分区.(eg:C盘既可以存放系统文件也可以存放用户下载文件)
Linux面向开发者(按照功能来分区,每个分区严格存放文件)
最大的区别:Windows的分区是连续的,Linux的分区是不连续的。
2、嵌入式分区
嵌入式系统可以分为4个区:
bootloader: 启动代码
para:启动代码向内核传递参数的位置
kernel:内核分区
根分区等:文件系统结构
四、文件系统目录结构
1、概念
Linux系统中,目录被组织成一个单根倒置树结构,文件从根目录开始,用/来表示。文件名称区分大小写(大小写敏感还需要看具体的文件系统格式)。
/bin 可执行文件目录
/boot 系统启动
/dev 外部设备驱动
/etc 配置文件(可以再init文件夹内设置开机启动程序)
/home 用户主目录
/root 该目录为系统管理员,也称作超级权限者的用户主目录。
/run 是一个临时文件系统,存储系统启动以来的信息。
/lib 库文件目录
/usr USR目录
/var 动态文件目录(通常存放一些日记相关)
/proc 虚拟文件目录(存储的是当前内核运行状态的一系列特殊文件)
五、虚拟文件系统(VFS)
1、概念
Linux通过叫做VFS的中间层对这些文件系统提供了完美的支持。在大部分情况下,用户通过libc和kernel的VFS交互,不需要关心底层文件系统的具体实现。
2、作用
vfs所隐含的思想是把表示很多不同种类文件系统的共同信息放入内核;其中有一个字段或函数来支持Linux所支持的所有实际文件系统所提供的任何操作。对所调用的每个读、写或其他函数,内核都能把它们替换成支持本地Linux文件系统、NTFS文件系统,或者文件所在的任何其他文件系统的实际函数。简化开发工作。
(简化应用程序员的开发,不管是什么文件类型,不管文件是磁盘还是设备,都只用open read write统一操作)