搜索文件系统驱动bash
文件系统自己是属于操做系统的功能spa
如,对于用户来说,咱们用 cat /etc/passwd访问文件,而这些文件最终是经过文件系统来放到硬盘上的。当咱们用命令去访问磁盘上的文件的时候,命令怎样去和文件系统交互的呢?底层用到的文件系统有不少种,但命令就一个,操作系统
难不成 cat 先要知道文件系统是什么,而后再访问文件系统的数据吗?3d
咱们要实现文件的管理,针对不一样的文件系统,开发独立的软件呢?如:是否是要为 cat 开发 "cat for xfs"的软件呢?如:为cat 开发 "cat for ext4"的软件呢?实现上这是不现实的。code
为了让用户更加专心地访问磁盘中的文件,不须要知道各个文件系统的区别,咱们就提供了一个虚拟的文件系统。blog
用户敲命令是在用户空间的,还有内核空间,命令不会直接跑到磁盘上去执行命令。用户空间的命令是没有权限直接访问磁盘上的文件的,经过中间的系统调用,让操做系统内核来帮它来访问磁盘文件。在不一样文件系统之上又构建了一个虚拟层,这个虚拟的层就叫虚拟的文件系统。虚拟的文件系统集成了通用文件系统的功能,而后对外让用户去访问。用户空间不须要去关心各个文件系统的区别,就只须要开发一个版本的软件。如 开发ls,就只须要开发 "ls for VFS"就能够了。ci
[root@Centos7 ~]# mkfs.xfs /dev/sda6 meta-data=/dev/sda6 isize=512 agcount=4, agsize=131072 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=524288, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@Centos7 ~]# [root@Centos7 ~]# blkid /dev/sda1: UUID="a04bd2f6-9c4f-4d64-b21d-30c843c0d8c4" TYPE="xfs" /dev/sda2: UUID="b0b144a3-b892-4faf-b328-7bb0527c8f52" TYPE="xfs" /dev/sda3: UUID="1a493b21-d500-41bd-aba0-8c420a77b913" TYPE="swap" /dev/sda5: UUID="8bb20363-d090-4bcb-97de-6d950c38b38a" TYPE="xfs" /dev/sr0: UUID="2019-09-09-19-08-41-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/sda6: UUID="44a0573a-def3-401e-bd5e-d40d23fdab1f" TYPE="xfs"