什么是文件系统?
常规认知是:linux根目录那些东西
百科:文件系统是操作系统用于明确存储设备组织文件的方法,操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
以上说的方法:就是文件管理系统(程序),简称文件系统。
文件系统(文件管理系统的方法)的种类有哪些呢
FAT ,NTFS(windows) ,EXT1/2/3(linux常用的),HFS VFAT …等
树莓派中查看文件系统的指令是:
df -T
如图:
其中可以看出来type(文件系统的类型)有:
Vfat: 存放boot(bootloader,kernel)相关的代码。
ext4:基于磁盘的,存放根目录分区。
tmpfs(临时文件系统):内存文件系统,基于内存。
什么是分区
windows:分C盘(装系统)也可以在C盘存放文件和D盘(用户可以随意发挥)
linux分区:按照功能来分区,每个分区严格存放文件,分区不一定连续。
嵌入式系统可以分为4个区,分别是bootloader、para、kernel、根分区等,与Windows、Linux分区不同 。
bootloader:系统的启动代码
para:启动代码向内核传递参数的位置
kernel:内核分区
根分区:文件系统结构
什么是文件系统目录结构:
就是经常提及的根目录,目录不是分区,和windows不同。
/ 所有linux操作系统的顶点目录,不像windows,每个分区都有一个顶点目录
/boot 存放系统启动时相关的文件,比如kernel内核,grub引导菜单.(不要删除.)
/bin 存放的都是命令,但仅普通用户能执行
/sbin 超级管理员能执行的命令.
/home 存放普通用户的家目录
/root 超级管理员的家目录,普通用户是无法进入
/etc 存放配置文件的目录,
/etc/hostname 主机名
/etc/hosts 本地解析域名一种方式
/etc/sysconfig/network-script/ifcfg-* 网卡的配置文件
/dev 设备目录,硬盘\硬盘的分区\光盘.....
/dev/null 黑洞,接收所有的东西,只进不出
/dev/zero 摇钱树,可以生产源源不断的数据
/dev/random 产生随机数的一个设备
/dev/pts/0 虚拟的Bash Shell终端,提供给远程用户使用 0,代表一个终端 1代表2个终端 以此类推
/usr 类似于windows的C盘下面的windows目录
/usr/lib 共享库文件,后缀都是so结尾, share object
/usr/lib64 共享库文件64位,后缀都是so结尾, share object
/usr/local 早起大家都把软件放在这个目录下,和windows C:\ProgramFile
/usr/bin
/usr/sbin
/var 存放一些可变化的内容,比如/var/log日志,可以人为让其发生变化,也或者是随着时间推移产生变化
/tmp 存放临时文件,无论哪个用户都可以放
/proc 反馈当前运行的进程的状态信息.
/run 存放程序运行后所产生的pid文件
/media
/mnt 提供挂载的一个目录
/opt 早期第三方厂商的软件存放的目录.
/srv 物理设备产生的一些文件
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
虚拟文件系统VFS( Virtual File Systems )
vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口
虚拟文件系统作用:
简化应供程序员的开发
不管是什么文件类型,不管是磁盘还是设备,都只用 open read write统一操作。