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