為什么說(shuō)Linux下“一切皆文件”?

前言:接觸Linux的同志們都聽(tīng)過(guò)一句話:“Linux下一切皆文件”疗琉。“一切皆是文件”是 Unix/Linux 的基本哲學(xué)之一歉铝,那么為什么Linux在一切皆文件呢盈简?

0.一切皆文件



首先,在windows中是文件的東西,它們?cè)趌inux中也是文件,其次一些在windows中不是文件的東西, 比如進(jìn)程, 磁盤, 也被抽象成了文件.柠贤。你可以使用訪問(wèn)文件的方法訪問(wèn)它們獲得信息香浩。甚至一些很離譜的東西,比如管道臼勉,也是文件邻吭。甚至類似于socket(套接字)這樣的東西, 使用的接口跟文件接口也是一致的。

這樣做最明顯的好處是宴霸,開(kāi)發(fā)者僅需要使用一套 API 和開(kāi)發(fā)工具即可調(diào)取 Linux 系統(tǒng)中絕大部分的資源囱晴。舉個(gè)簡(jiǎn)單的例子,Linux 中幾乎所有讀(讀文件瓢谢,讀系統(tǒng)狀態(tài)畸写,讀 socket,讀PIPE)的操作都可以用read函數(shù)來(lái)進(jìn)行氓扛;幾乎所有更改(更改文件枯芬,更改系統(tǒng)參數(shù),寫 socket采郎,寫 PIPE)的操作都可以用write函數(shù)來(lái)進(jìn)行千所。

不利之處在于,使用任何硬件設(shè)備都必須與根目錄下某一目錄執(zhí)行掛載操作蒜埋,否則無(wú)法使用淫痰。我們知道,本身Linux具有一個(gè)以根目錄為樹(shù)根的文件目錄結(jié)構(gòu)整份,每個(gè)設(shè)備也同樣如此黑界,它們是相互獨(dú)立的。如果我們想通過(guò)Linux上的根目錄找到設(shè)備文件的目錄結(jié)構(gòu)皂林,就必須將這兩個(gè)文件系統(tǒng)目錄合二為一朗鸠,這就是掛載的真正含義。


1.虛擬文件系統(tǒng)VFS


VFS是一種用于網(wǎng)絡(luò)環(huán)境的分布式文件系統(tǒng)础倍,是允許和操作系統(tǒng)使用不同的文件系統(tǒng)<1>實(shí)現(xiàn)的接口烛占。虛擬文件系統(tǒng)(VFS)是物理文件系統(tǒng)與服務(wù)之間的一個(gè)接口層,它對(duì)Linux的每個(gè)文件系統(tǒng)的所有細(xì)節(jié)進(jìn)行抽象沟启,使得不同的文件系統(tǒng)在Linux核心以及系統(tǒng)中運(yùn)行的其他進(jìn)程看來(lái)忆家,都是相同的。嚴(yán)格說(shuō)來(lái)德迹,VFS并不是一種實(shí)際的文件系統(tǒng)芽卿。它只存在于內(nèi)存中,不存在于任何外存空間胳搞。VFS在系統(tǒng)啟動(dòng)時(shí)建立卸例,在系統(tǒng)關(guān)閉時(shí)消亡称杨。(cite from百度百科)

比較晦澀難懂是不是?那么換一種描述:虛擬文件系統(tǒng)使得Linux可以存在多個(gè)“實(shí)際的文件系統(tǒng)”筷转,比如分區(qū)1是ext2姑原,分區(qū)2是ext3,分區(qū)3是fat32呜舒。那么每個(gè)“實(shí)際的文件系統(tǒng)”的結(jié)構(gòu)和操作方式是不一樣的锭汛。如果是這樣的話用戶怎么去操作它們呢?總不能每種不同的文件系統(tǒng)都采用不同的方法吧袭蝗,那么這個(gè)時(shí)候就需要VFS作為中間層唤殴!用戶直接控制VFS,VFS再去控制各個(gè)文件系統(tǒng)到腥。



2.VFS存在的意義


可歸結(jié)為以下四點(diǎn):

對(duì)應(yīng)用層提供一個(gè)標(biāo)準(zhǔn)的文件操作接口朵逝;

對(duì)文件系統(tǒng)提供一個(gè)標(biāo)準(zhǔn)的接口,以便其他操作系統(tǒng)的文件系統(tǒng)可以方便的移植到Linux上左电;

VFS內(nèi)部則通過(guò)一系列高效的管理機(jī)制廉侧,比如inode cache, dentry cache 以及文件系統(tǒng)的預(yù)讀等技術(shù)页响,使得底層文件系統(tǒng)不需沉溺到復(fù)雜的內(nèi)核操作篓足,即可獲得高性能;

此外VFS把一些復(fù)雜的操作盡量抽象到VFS內(nèi)部闰蚕,使得底層文件系統(tǒng)實(shí)現(xiàn)更簡(jiǎn)單栈拖。

標(biāo)注

<1>文件系統(tǒng)(一般可以分為以下幾類)

網(wǎng)絡(luò)文件系統(tǒng),如 nfs没陡、cifs涩哟、cdoa、afs等網(wǎng)絡(luò)文件系統(tǒng)

磁盤文件系統(tǒng)盼玄,如ext2/ext3/ext4文件系統(tǒng)贴彼;

特殊文件系統(tǒng),如 proc埃儿、sysfs器仗、ramfs、tmpfs童番、pipe文件系統(tǒng)等精钮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市剃斧,隨后出現(xiàn)的幾起案子轨香,更是在濱河造成了極大的恐慌,老刑警劉巖幼东,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臂容,死亡現(xiàn)場(chǎng)離奇詭異科雳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)策橘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門炸渡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人丽已,你說(shuō)我怎么就攤上這事蚌堵。” “怎么了沛婴?”我有些...
    開(kāi)封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵吼畏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我嘁灯,道長(zhǎng)泻蚊,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任丑婿,我火速辦了婚禮性雄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羹奉。我一直安慰自己秒旋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布诀拭。 她就那樣靜靜地躺著迁筛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耕挨。 梳的紋絲不亂的頭發(fā)上细卧,一...
    開(kāi)封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音筒占,去河邊找鬼贪庙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛翰苫,可吹牛的內(nèi)容都是我干的止邮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼革骨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼农尖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起良哲,我...
    開(kāi)封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盛卡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后筑凫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體滑沧,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡并村,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滓技。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哩牍。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖令漂,靈堂內(nèi)的尸體忽然破棺而出膝昆,到底是詐尸還是另有隱情,我是刑警寧澤叠必,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布荚孵,位于F島的核電站,受9級(jí)特大地震影響纬朝,放射性物質(zhì)發(fā)生泄漏收叶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一共苛、第九天 我趴在偏房一處隱蔽的房頂上張望判没。 院中可真熱鬧,春花似錦隅茎、人聲如沸澄峰。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摊阀。三九已至耻蛇,卻和暖如春踪蹬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臣咖。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工跃捣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夺蛇。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓疚漆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刁赦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娶聘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容