某天晚上,我睡覺的時候,突然想起來好像去三星面試的時候,面試官有問到關於檔案系統的問題。於是想乘著睡覺前的時間,思考下關於檔案系統的知識。突然間發現自己突然好像把檔案系統的知識忘的差不多了。於是這兩天把關於檔案系統的知識再看了下,同時寫下這篇文章已做記錄。
檔案系統,或者檔案管理子系統,是作業系統的重組成部分,它處理檔案結構、檔案操縱和檔案保護。
1.檔案和檔名
在linux中,檔案是一種線性的位元組流。檔案系統提供乙個儲存的使用者介面,透明地操縱來自外部裝置的物理資料。linux中的檔案有很多屬性,檔名就是其中之一。檔名可能含有檔案的副檔名,副檔名是用點好新增到主檔名之後的附加名。這個擴充套件為使用者空間的程式提供了辨別檔案內容的附加方式。
2.檔案型別
linux支援多種檔案型別,包括普通檔案、目錄檔案、鏈結檔案、裝置檔案和管道檔案。
普通檔案:二進位制檔案和ascii檔案。
裝置檔案:是對i/o裝置的表示。
管道檔案:程序間通訊的方式。
3.檔案的屬性
除了檔名、檔案型別和檔案的資料外,檔案還有很多的屬性。作業系統把附加資訊和每個檔案相關聯。其它的屬性比如說使用者的型別,使用者的許可許可權,檔案大小,建立的大小和最後一次訪問時間。
4.目錄和路徑名
目錄是用來維護檔案系統層次的檔案。目錄記錄它所含的檔案,它之下的所有目錄以及和它相關的資訊。
絕對路徑和相對路徑。把檔案系統包含進樹結構後,僅僅依靠檔名是不足以直接查詢檔案的。我們必須知道檔案在樹中的具體位置才能找到它。檔案的路徑名描述了檔案的位置。
比如說linux檔案位於/usr/src/linux
檔案的絕對路徑名:/usr/src/linux
檔案的相對檔名:工作目錄:/usr 路徑名/src/linux
關於目錄還有乙個知識點就是:.代表當前目錄,
..代表上乙個目錄也就是現在目錄的父目錄。
5.檔案的操作
檔案的操作包括系統允許對檔案的所有操作,包括檔案的建立和銷毀,開啟和關閉,讀和寫,還有就是屬性的修改。檔案系統提供系統呼叫作為完成這些操作的介面,這些系統呼叫被放入封裝函式中,使用者空間的程式可經由鏈結庫來訪問這些封裝的函式。
6.檔案描述符
檔案描述符是系統用來識別開啟檔案的整型資料。每個程序含有一組檔案描述符。預設開啟檔案包括標準輸入(檔案描述符0),標準輸出(檔案描述符1),和標準錯誤輸出(檔案描述符2)。
7.效能
檔案系統具有各種提高系統效能的方法。一種方法是通過在核心內部維護內部結構來達到訪問節點對應的給定路徑名。另一種就是頁緩衝。
8.磁碟的結構 .
磁軌,扇區,柱面和
磁頭數。
硬碟最基本的組成部分是由堅硬金屬材料製成的塗以磁性介質的碟片,不同容量硬碟的碟片數不等。每個碟片有兩面,都可記錄資訊。碟片被分成許多扇形的區域,每個區域叫乙個扇區,每個扇區可儲存128×2的n次方(n=0.1.2.3)位元組資訊。在dos中每扇區是128×2的2次方=512位元組,碟片表面上以碟片中心為圓心,不同半徑的同心圓稱為磁軌。硬碟中,不同碟片相同半徑的磁軌所組成的圓柱稱為柱面。磁軌與柱面都是表示不同半徑的圓,在許多場合,磁軌和柱面可以互換使用,我們知道,每個磁碟有兩個面,每個面都有乙個磁頭,習慣用磁頭號來區分。扇區,磁軌(或柱面)和磁頭數構成了硬碟結構的基本引數,幫這些引數可以得到硬碟的容量,基計算公式為:
儲存容量=磁頭數×磁軌
(柱面)數×每道
扇區數×每扇區位元組數
理解檔案系統
以liunx下的ext2檔案系統為例 檔案系統說白了就是磁碟上進行檔案管理的系統。想要理解檔案系統我們就要對其構成進行分析。磁碟分為交換分割槽和正常儲存檔案的區域。交換分割槽是當記憶體不夠用時,將記憶體中的某個程序轉移到硬碟上儲存的時候使用的。而剩下的就是檔案系統分割槽了。檔案系統分割槽中分為dat...
檔案系統的理解
一 檔案系統是個抽象的概念,它可以用來儲存檔案的內容 屬性和目錄。在unix中將磁碟分成了3個部分。1 超級塊 檔案系統中的第一塊,用來存放檔案系統的本身結構資訊。如每個區域大小,磁碟塊的使用資訊 2 i 節點表 存放檔案的屬性,每個檔案都有乙份i節點,存放在節點表中。表中的每個i節點都通過位置來標...
檔案系統筆記 1
以linux為例 概念 檔案系統的基本資料單位是檔案,檔案系統的作用是對磁碟上的檔案進行組織管理。組織的方式不同就會形成不同的檔案系統。linux系統為每個檔案分配兩個資料結構 索引節點 記錄檔案元資訊 目錄項 記錄目錄層次結構 索引節點 inode 用來紀錄檔案元資訊,如inode編號,檔案大小,...