1. 程式人生 > >linux內核(三)文件系統

linux內核(三)文件系統

nbsp 編程 目錄 cnblogs 掛載 article 功能 屬於 制作

1、為什麽需要根文件系統

(1)init進程的應用程序在根文件系統上
(2)根文件系統提供了根目錄/
(3)內核啟動後的應用層配置(etc目錄)在根文件系統上。幾乎可以認為:發行版=內核+rootfs
(4)shell命令程序在根文件系統上。譬如ls、cd等命令
總結:一套linux體系,只有內核本身是不能工作的,必須要rootfs(上的etc目錄下的配置文件、/bin /sbin等目錄下的shell命令,還有/lib目錄下的庫文件等···)相配合才能工作。

下面是根文件系統頂層目錄

技術分享圖片

根文件系統的實質是什麽

(1)根文件系統是特殊用途的文件系統。
(2)根文件系統也必須屬於某種文件系統格式。rootfstype=
(3)究竟文件系統是用來幹嘛的。ZnFAT
首先,存儲設備(塊設備,像硬盤、flash等)是分塊(扇區)的,物理上底層去訪問存儲設備時是按照塊號(扇區號)來訪問的。這就很麻煩。
其次,文件系統是一些代碼,是一套軟件,這套軟件的功能就是對存儲設備的扇區進行管理,將這些扇區的訪問變成了對目錄和文件名的訪問

。我們在上層按照特定的目錄和文件名去訪問一個文件時,文件系統會將這個目錄+文件名轉換成對扇區號的訪問。
最後,不同的文件系統的差異就在於對這些扇區的管理策略和方法不同,譬如壞塊管理、碎片管理。

2、根文件系統的形式

2.1鏡像文件形式

(1)使用專用工具軟件制作的可供燒錄的鏡像文件
(2)鏡像中包含了根文件系統中的所有文件
(3)燒錄此鏡像類似於對相應分區格式化。
(4)鏡像文件系統具有一定的格式,格式是內化的,跟文件名後綴是無關的。

2.2文件夾形式

(1)根文件系統其實就是一個包含特定內容的文件夾而已
(2)根文件系統可由任何一個空文件夾添加必要文件構成而成
(3)根文件系統的雛形就是在開發主機中構造的文件夾形式的

總結

(1)鏡像文件形式的根文件系統主要目的是用來燒錄到塊設備上,設備上的內核啟動後去掛載它。鏡像文件形式的根文件系統是由文件夾形式的根文件系統使用專用的鏡像制作工具制作而成的。
(2)最初在開發主機中隨便mkdir創建了一個空文件夾,然後向其中添加一些必要的文件(包括etc目錄下的運行時配置文件、/bin等目錄下的可執行程序、/lib目錄下的庫文件等···)後就形成了一個文件夾形式的rootfs。然後這個文件夾形式的rootfs可以被kernel通過nfs方式來遠程掛載使用,但是不能用來燒錄塊設備。我們為了將這個rootfs燒錄到塊設備中於是用一些專用的軟件工具將其制作成可供燒錄的一定格式的根文件系統鏡像。
(3)文件夾形式的rootfs是沒有格式的,制作成鏡像後就有了一定的rootfs格式了,格式是由我們的鏡像制作過程和制作工具來決定的。每一種格式的鏡像制作工具的用法都不同

VFS(virtual File System)的作用就是采用標準的Unix系統調用讀寫位於不同物理介質上的不同文件系統,即為各類文件系統提供了一個統一的操作界面和應用編程接口。VFS是一個可以讓open()、read()、write()等系統調用不用關心底層的存儲介質和文件系統類型就可以工作的粘合層。

NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件一樣。

轉載:https://www.cnblogs.com/PengfeiSong/p/6442986.html

https://blog.csdn.net/kelsey11/article/details/74075143

linux內核(三)文件系統