更新時(shí)間:2020-12-15 17:51:17 來源:動力節(jié)點(diǎn) 瀏覽1828次
Linux中的各種事物比如像文檔、目錄、鍵盤、監(jiān)視器、硬盤、可移動媒體設(shè)備、打印機(jī)、調(diào)制解調(diào)器、虛擬終端,還有進(jìn)程間通信(IPC)和網(wǎng)絡(luò)通信等輸入/輸出資源都是定義在文件系統(tǒng)空間下的字節(jié)流。一切都可看作是文件,其最顯著的好處是對于上面所列出的輸入/輸出資源,只需要相同的一套 Linux 工具、實(shí)用程序和 API。你可以使用同一套API(read, write)和工具(cat , 重定向, 管道)來處理Linux中大多數(shù)的資源。Linux文件系統(tǒng)基本功能便是基于Linux系統(tǒng)中一切都可看作是文件的前提下實(shí)現(xiàn)的。
設(shè)計(jì)一個(gè)系統(tǒng)的終極目標(biāo)往往就是要找到原子操作,一旦鎖定了原子操作,設(shè)計(jì)工作就會變得簡單而有序。“文件”作為一個(gè)抽象概念,其原子操作非常簡單,只有讀和寫,這無疑是一個(gè)非常好的模型。通過這個(gè)模型,API的設(shè)計(jì)可以化繁為簡,用戶可以使用通用的方式去訪問任何資源,自有相應(yīng)的中間件做好對底層的適配。
磁盤存儲是文件系統(tǒng)必須的功能,它與之伴生的有一些有趣而且不可或缺的細(xì)節(jié)。很明顯,文件系統(tǒng)是用來為非易失數(shù)據(jù)的存儲提供空間,這是它的基本功能。然而,它還有許多從需求出發(fā)的重要功能。所有文件系統(tǒng)都需要提供一個(gè)名字空間,這是一種命名和組織方法。它定義了文件應(yīng)該如何命名、文件名的最大長度,以及所有可用字符集中可用于文件名中字符集子集。它也定義了一個(gè)磁盤上數(shù)據(jù)的邏輯結(jié)構(gòu),比如使用目錄來組織文件而不是把所有文件聚集成一個(gè)單一的、巨大的文件混合體。
定義名字空間以后,元數(shù)據(jù)結(jié)構(gòu)是為該名字空間提供邏輯基礎(chǔ)所必須的。這包括所需數(shù)據(jù)結(jié)構(gòu)要能夠支持分層目錄結(jié)構(gòu),同時(shí)能夠通過結(jié)構(gòu)來確定硬盤空間中的塊是已用的或可用的,支持修改文件或目錄的名字,提供關(guān)于文件大小、創(chuàng)建時(shí)間、最后訪問或修改時(shí)間等信息,以及位置或數(shù)據(jù)所屬的文件在磁盤空間中的位置。其他的元數(shù)據(jù)用來存儲關(guān)于磁盤細(xì)分的高級信息,比如邏輯卷和分區(qū)。這種更高層次的元數(shù)據(jù)以及它所代表的結(jié)構(gòu)包含描述文件系統(tǒng)存儲在驅(qū)動器或分區(qū)中的信息,但與文件系統(tǒng)元數(shù)據(jù)無關(guān),與之獨(dú)立。
文件系統(tǒng)也需要一個(gè)應(yīng)用程序接口(API),從而提供了對文件系統(tǒng)對象,比如文件和目錄進(jìn)行操作的系統(tǒng)功能調(diào)用的訪問。API 也提供了諸如創(chuàng)建、移動和刪除文件的功能。它也提供了算法來確定某些信息,比如文件存于文件系統(tǒng)中的位置。這樣的算法可以用來解釋諸如磁盤速度和最小化磁盤碎片等術(shù)語。
現(xiàn)代文件系統(tǒng)還提供一個(gè)安全模型,這是一個(gè)定義文件和目錄的訪問權(quán)限的方案。Linux 文件系統(tǒng)安全模型確保用戶只能訪問自己的文件,而不能訪問其他用戶的文件或操作系統(tǒng)本身。
最后一塊組成部分是實(shí)現(xiàn)這些所有功能所需要的軟件。Linux 使用兩層軟件實(shí)現(xiàn)的方式來提高系統(tǒng)和程序員的效率。這兩層中的第一層是 Linux 虛擬文件系統(tǒng)。虛擬文件系統(tǒng)提供了內(nèi)核和開發(fā)者訪問所有類型文件系統(tǒng)的的單一命令集。虛擬文件系統(tǒng)軟件通過調(diào)用特殊設(shè)備驅(qū)動來和不同類型的文件系統(tǒng)進(jìn)行交互。特定文件系統(tǒng)的設(shè)備驅(qū)動是第二層實(shí)現(xiàn)。設(shè)備驅(qū)動程序?qū)⑽募到y(tǒng)命令的標(biāo)準(zhǔn)集解釋為在分區(qū)或邏輯卷上的特定類型文件系統(tǒng)命令。
以上就是關(guān)于Linux文件系統(tǒng)基本功能的描述,在本站的Linux教程中對Linux文件系統(tǒng)的分析更加透徹,感興趣的小伙伴可以前去觀看學(xué)習(xí),能夠有效地幫助我們更好的理解Linux文件系統(tǒng)。
初級 202925
初級 203221
初級 202629
初級 203743