歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 什麼是文件系統?

什麼是文件系統?

日期:2017/2/28 15:46:15   编辑:Linux教程

文件系統是操作系統用於明確磁盤或分區上的文件的方法和數據結構;即在磁盤上組織文件的方法。也指用於存儲文件的磁盤或分區,或文件系統種類。因此,可以說"我有2個文件系統"意思是他有2個分區,一個存文件,或他用 "擴展文件系統",意思是文件系統的種類。

磁盤或分區和它所包括的文件系統的不同是很重要的。少數程序(包括最有理由的產生文件系統的程序)直接對磁盤或分區的原始扇區進行操作;這可能破壞一個存在的文件系統。大部分程序基於文件系統進行操作,在不同種文件系統上不能工作。

一個分區或磁盤能作為文件系統使用前,需要初始化,並將記錄數據結構寫到磁盤上。這個過程就叫建立文件系統

大部分UNIX文件系統種類具有類似的通用結構,即使細節有些變化。其中心概念是超級塊superblock, i節點inode, 數據塊data block,目錄塊directory block, 和間接塊indirection block。超級塊包括文件系統的總體信息,比如大小(其准確信息依賴文件系統)。 i節點包括除了名字外的一個文件的所有信息,名字與i節點數目一起存在目錄中,目錄條目包括文件名和文件的i節點數目。 i節點包括幾個數據塊的數目,用於存儲文件的數據。 i節點中只有少量數據塊數的空間,如果需要更多,會動態分配指向數據塊的指針空間。這些動態分配的塊是間接塊;為了找到數據塊,這名字指出它必須先找到間接塊的號碼。

UNIX文件系統通常允許在文件中產生孔(hole) (用lseek ; 請看手冊), 意思是文件系統假裝文件中有一個特殊的位置只有0字節,但沒有為這文件的這個位置保留實際的磁盤空間(這意味著這個文件將少用一些磁盤空間)。這對小的二進制文件經常發生,Linux共享庫、一些數據庫和其他一些特殊情況。 (孔由存儲在間接塊或i節點中的作為數據塊地址的一個特殊值實現,這個特殊地址說明沒有為文件的這個部分分配數據塊,即,文件中有一個孔。)

孔有一定的用處。在筆者的系統中,一個簡單的測量工具顯示在200MB使用的磁盤空間中,由於孔,節約了大約4MB。在這個系統中,程序相對較少,沒有數據庫文件。

Copyright © Linux教程網 All Rights Reserved