二維碼
微世推網(wǎng)

掃一掃關(guān)注

當前位置: 首頁 » 企業(yè)商訊 » 商機資訊 » 正文

什么是文件系統(tǒng)?她是用來做什么的?

放大字體  縮小字體 發(fā)布日期:2024-05-17 08:59:46    作者:田張晧    瀏覽次數(shù):129
導(dǎo)讀

我們無時無刻不在使用文件系統(tǒng),進行開發(fā)得時候在使用文件系統(tǒng),瀏覽網(wǎng)頁得時候在使用文件系統(tǒng),玩手機得時候也在使用文件系統(tǒng)。對于非可以人士來說,專家根本不知道文件系統(tǒng)為何物。因為,通常來說,我們在使用文件

我們無時無刻不在使用文件系統(tǒng),進行開發(fā)得時候在使用文件系統(tǒng),瀏覽網(wǎng)頁得時候在使用文件系統(tǒng),玩手機得時候也在使用文件系統(tǒng)。

對于非可以人士來說,專家根本不知道文件系統(tǒng)為何物。因為,通常來說,我們在使用文件系統(tǒng)得時候一般不會感知到文件系統(tǒng)得存在。即使對于程序開發(fā)人員,很多人對于文件系統(tǒng)也是一知半解。

雖然文件系統(tǒng)經(jīng)常不被感知,但是文件系統(tǒng)卻是非常重要得。在Linux操作系統(tǒng)系統(tǒng)中文件系統(tǒng)是Linux內(nèi)核得四大子系統(tǒng)之一;而在Windows之前,微軟得DOS系統(tǒng),其全稱是DiskOperatingSystem,也就是磁盤管理系統(tǒng),說白了就是一個文件系統(tǒng)。

刨根問底文件系統(tǒng)

想要更加深入得理解文件系統(tǒng),首先要弄明白什嗎是文件系統(tǒng)。業(yè)界并沒有給文件系統(tǒng)下一個明確得定義,感謝作者分享翻閱《操作系統(tǒng)概念》和《現(xiàn)代操作系統(tǒng)》@比較著名得操作系統(tǒng)書籍,并沒有找到關(guān)于文件系統(tǒng)得明確定義。在維基百科發(fā)現(xiàn)了對文件系統(tǒng)得如下描述:

In computing, a file system or filesystem (often abbreviated to fs) controls how data is stored and retrieved.

另外一個對文件系統(tǒng)概念進行描述得地方是Definitions,這是一個可以提供各種定義得網(wǎng)站,給出了如下解釋:

In computing, a file system is a type of data store which can be used to store, retrieve and update a set of files.

雖然我們沒有找到明確得定義,但從前面找到得對文件系統(tǒng)得描述專業(yè)知道文件系統(tǒng)是一個控制數(shù)據(jù)存取得系統(tǒng)。而通常我們所說得文件系統(tǒng)是構(gòu)建在磁盤(含SSD盤和SD卡@)之上得。因此,我們通常所說得文件系統(tǒng)其實就是一個對磁盤空間進行管理,實現(xiàn)數(shù)據(jù)存取得系統(tǒng)。

狹義得理解文件系統(tǒng)實現(xiàn)對磁盤、軟盤或者光盤@塊設(shè)備得數(shù)據(jù)進行存取,而廣義來說,文件系統(tǒng)未必需要構(gòu)建在磁盤之上,它還專業(yè)構(gòu)建在網(wǎng)絡(luò)或者內(nèi)存之上。無論構(gòu)建在那種設(shè)備上,最為核心得是實現(xiàn)對數(shù)據(jù)得存取。

除了實現(xiàn)對數(shù)據(jù)得存取之外,文件系統(tǒng)更重要得一個功能是文件系統(tǒng)抽象了一個更加容易訪問存儲空間得接口。這里得接口包括用于程序開發(fā)得API接口和普通用戶得操作接口。猥瑣便于理解,我們專業(yè)將文件系統(tǒng)對磁盤空間得管理用圖1表示。

圖1 從磁盤到文件系統(tǒng)

對于上圖,我們簡單得解釋一下。最底層是硬件設(shè)備,我們這里以硬磁盤為例。磁盤驅(qū)動器和操作系統(tǒng)對硬磁盤做了頂級得抽象,它們將復(fù)雜得硬磁盤抽象為一個連續(xù)得線性空間。最后是文件系統(tǒng),將線性空間進行管理和抽象,呈現(xiàn)給用戶一個層級結(jié)構(gòu)。這里得層級結(jié)構(gòu)就是我們平??吹降媚夸洠幽夸浐臀募兀元素得集合,如圖2所示。

圖2 文件系統(tǒng)實例

通過上面這張圖專家并不能很清楚得了解文件系統(tǒng)得層級結(jié)構(gòu)。我們給出Linux操作系統(tǒng)中文件系統(tǒng)得一個概圖,如圖3所示。通過該圖專業(yè)看出,文件系統(tǒng)中得數(shù)據(jù)呈現(xiàn)為一個樹形結(jié)構(gòu)。各個目錄與子目錄之間呈層級得結(jié)構(gòu)。

圖3 樹形結(jié)構(gòu)得文件系統(tǒng)

文件系統(tǒng)得數(shù)據(jù)管理

文件系統(tǒng)最核心得特性自然是數(shù)據(jù)管理了。這里得數(shù)據(jù)管理包括對整個磁盤得數(shù)據(jù)管理和對文件得數(shù)據(jù)管理兩部分。

對磁盤得管理主要是將磁盤劃分為不同得功能區(qū),最為簡單得畫法就是分為元數(shù)據(jù)區(qū)和數(shù)據(jù)區(qū)。實際文件系統(tǒng)得處理要復(fù)雜一些,以Ext2為例,其將磁盤空間劃分為@大小得塊組,然后再對每個塊組進行管理。

圖4 Ext2磁盤空間管理

在一個塊組中,最基礎(chǔ)得信息包含數(shù)據(jù)位圖,inode表位圖,inode表和數(shù)據(jù)區(qū)。對于磁盤空間得管理其實就是通過位圖來管理得,位圖用來標志某塊數(shù)據(jù)是否已經(jīng)被使用得。當然,不同得文件系統(tǒng)得管理略有不同,但原理大同小異。

另外一個比較重要得地方就是對文件數(shù)據(jù)得管理了。對于普通用戶來說文件就是一個線性得數(shù)據(jù)空間,好比一個大數(shù)組。但是磁盤上專家無法提供這嗎大得空間。因此文件系統(tǒng)在管理文件得時候是將文件切割為一定大小得邏輯塊得。這樣,文件系統(tǒng)得做法是將文件得邏輯塊與磁盤得物理塊建立對應(yīng)關(guān)系。這樣,當我們訪問文件某個位置得數(shù)據(jù)得時候就專業(yè)在磁盤上找到了。

經(jīng)過上述介紹,相信大家對文件系統(tǒng)有了一個概要得認識。如果大家想更加深入得了解文件系統(tǒng)得細節(jié),專業(yè)進一步閱讀本號得相關(guān)專欄。

 
(文/田張晧)
免責聲明
本文為田張晧原創(chuàng)作品?作者: 田張晧。歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明原文出處:http://m.jib360.com/qysx/show-144449.html 。本文僅代表作者個人觀點,本站未對其內(nèi)容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,作者需自行承擔相應(yīng)責任。涉及到版權(quán)或其他問題,請及時聯(lián)系我們郵件:weilaitui@qq.com。
 

Copyright?2015-2023 粵公網(wǎng)安備 44030702000869號

粵ICP備16078936號

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

韓瑞 小英 張澤

工作時間:

周一至周五: 08:00 - 24:00

反饋

用戶
反饋