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

掃一掃關(guān)注

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

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

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

我們無時(shí)無刻不在使用文件系統(tǒng),進(jìn)行開發(fā)得時(shí)候在使用文件系統(tǒng),瀏覽網(wǎng)頁得時(shí)候在使用文件系統(tǒng),玩手機(jī)得時(shí)候也在使用文件系統(tǒng)。對(duì)于非可以人士來說,專家根本不知道文件系統(tǒng)為何物。因?yàn)?,通常來說,我們?cè)谑褂梦募?/p>

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

對(duì)于非可以人士來說,專家根本不知道文件系統(tǒng)為何物。因?yàn)?,通常來說,我們?cè)谑褂梦募到y(tǒng)得時(shí)候一般不會(huì)感知到文件系統(tǒng)得存在。即使對(duì)于程序開發(fā)人員,很多人對(duì)于文件系統(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),說白了就是一個(gè)文件系統(tǒng)。

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

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

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

另外一個(gè)對(duì)文件系統(tǒng)概念進(jìn)行描述得地方是Definitions,這是一個(gè)可以提供各種定義得網(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.

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

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

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

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

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

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

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

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

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

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

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

圖4 Ext2磁盤空間管理

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

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

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

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

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

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號(hào): weishitui

韓瑞 小英 張澤

工作時(shí)間:

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

反饋

用戶
反饋