搜索文件系統驅動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"