什么是文件系统
正常听到“文件系统”这个概念对它的理解就是根目录,但其实不是这样的。 文件系统不是根目录
文件系统是操作系统用于明确存储设备组织文件的方法。(文件存放在存储设备上是有不同的存储方式的) 以上说的方法:就是文件管理系统(程序),简称文件系统
文件系统(文件管理系统的方法)的种类有哪些
有:FAT VFAT NTFS EXT1/2/3/4 HFS …
一个磁盘可以有多个分区,每一个分区只有一种文件系统
查看文件系统的命令: df -T(-T 显示该分区的文件系统名称)
对于树莓派的一些分区的功能(如上图): vfat :boot(bootloader,kernel) ext4 :根目录 tmpfs :内存文件系统
什么是分区
对于windows操作系统:
是先将物理地址分开,再在分区上建立目录.在Windows操作系统中,所有路径都是从盘符开始,如C://program file
C盘,D盘(每个目录下的文件夹都在同一个分区,比如存放在C盘文件夹里面的所有文件,它们就不可能会属于D盘的分区中)
对于Linux操作系统:
Linux正好相反,是先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始。Linux默认可分为3个分区,分别是boot分区、swap分区(用户无法访问)和根分区
在Linux操作系统中,用户可根据需要进行修改分区.修改后的分区中,同一目录下的文件可能在不同分区中.比如/home目录下有a、b、c三个目录,可将不同的分区挂载到这三个目录下,这种操作是允许的。
补充:
swap分区 Linux下的swap分区即为虚拟内存.虚拟内存用于当系统内存空间不足时,先将临时数据存放在swap分区,等待一段时间后,然后再将数据调入到内存中执行.所以说,虚拟内存只是暂时存放数据,在该空间内并没有执行。
强调按照功能来分区,每个分区严格存放文件
对于嵌入式系统: 嵌入式系统可以分为4个区(与Windows、Linux分区不同),分别是: bootloader 启动代码 para 启动代码向内核传递参数的位置 kernel 内核分区 根分区 文件系统结构
什么是文件系统目录结构
常规认知: 根目录,不是分区,和windows不同(Windows中目录即分区)
-
/ : 根 每一个文件和目录从根目录开始。 -
/bin:用户二进制文件 bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/boot:引导加载程序文件 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。(树莓派内核编译的kernel7和dtb文件等) -
/home :HOME目录 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 -
/lib:系统库 lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media:用于挂载可移动设备的临时目录 linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 -
/mnt:挂载目录 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 -
/proc: 进程信息 proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 -
/dev : 设备文件 dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 -
/etc: 配置文件 etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录(比如可以设置一些程序开机自动运行)。 -
/root: 该目录为系统管理员,也称作超级权限者的用户主目录。 -
/tmp: 临时文件 tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的,当系统重新启动时,这个目录下的文件都将被删除。 -
/usr: 用户程序 usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 -
/var: 变量文件 var 是 variable(变量) 的缩写,这个目录下可以找到内容可能增长的文件。 这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp)
什么虚拟文件系统Virtual File System
比如在linux里面,不同目录所属的文件系统类型可能不同,(有的是ext4,有的是tmpfs),那么对不同文件系统访问的方式也不同。如果没有vfs去把这些文件系统统一联系起来,操作会变得非常麻烦。 vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口
虚拟文件系统有什么作用
虚拟文件系统VFS(也成虚拟文件交换)作为内核子系统,为用户空间程序提供了文件和文件系统相关的统一接口。通过VFS,应用程序可以使用相同接口完成不同介质上不同文件系统的数据读写操作。
不管是什么文件类型(ext4、tmpfs、vfat),不管文件是磁盘还是设备,都只用open read write统一操作(在用户层 我们使用open() 打开串口或者打开文件,进行访问的过程都会使用到内核中的vfs创建的虚拟文件系统进行文件的访问)
|