国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接

這篇具有很好參考價值的文章主要介紹了【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

??作者:小樹苗渴望變成參天大樹??
??作者宣言:認(rèn)真寫好每一篇博客??
??作者gitee:gitee?
??作者專欄:C語言,數(shù)據(jù)結(jié)構(gòu)初階,Linux,C++ 動態(tài)規(guī)劃算法??
如 果 你 喜 歡 作 者 的 文 章 ,就 給 作 者 點(diǎn) 點(diǎn) 關(guān) 注 吧!


前言

今天我們開始講解文件系統(tǒng),上一篇我們通過文件操作,解決了一系列我們之前只停留在表面的操作,例如文件操作,重定向,緩沖區(qū)這些,但是我們還是不知道什么是文件系統(tǒng),因?yàn)槲覀兩弦黄v解的被打開的文件,加載到內(nèi)存,不在文件系統(tǒng)管理范圍的了,今天我們要說的是沒有被打開的文件,此時是放在硬盤里面的,那么硬盤怎么講我們這些沒有被打開的文件給存儲起來的呢。這篇帶大家來理解一下,讓我們對文件系統(tǒng)有重新認(rèn)識了一下。


本章講解順序
1.認(rèn)識硬件
2.在談文件系統(tǒng)

一、認(rèn)識硬件

大家應(yīng)該都知道,我們的硬盤是儲存計(jì)算機(jī)數(shù)據(jù)的,以為內(nèi)存是一個有電設(shè)備,斷電后上面的數(shù)據(jù)都沒有了,所以需要一個在斷電后存儲數(shù)據(jù)的硬件,那就是硬盤,我們現(xiàn)代的硬盤幾乎都是SSD了,但是在以前我們使用的都是磁盤,今天博主給大家講解的硬件設(shè)備就是磁盤,因?yàn)榇疟P的樣貌適合我們?nèi)ブv解的,現(xiàn)代的SSD和磁盤原理都是一樣的,只是集成了,不便于我們?nèi)チ私馑脑?,博主講通過圖片的方式一一給大家進(jìn)行講解。


1.1磁盤是什么??

磁盤是唯一的一個是機(jī)械設(shè)備的外設(shè),讓我們一起來看看。【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

我們打開看看磁盤里面的結(jié)構(gòu),非常的光亮,里面有許多結(jié)構(gòu),主要的是磁頭和盤片,數(shù)據(jù)就存儲在盤片上,在盤片運(yùn)作的時候磁頭會移到盤片上,來掃描盤片里面的數(shù)據(jù),盤片的個數(shù)是按照磁盤的存儲數(shù)據(jù)量的大小而決定的,數(shù)據(jù)越多盤片就越多,這是在出廠的時候就設(shè)定好了的,而這些盤片都是由一個馬達(dá)一起帶著轉(zhuǎn)動的,同事旋轉(zhuǎn),轉(zhuǎn)動速度都是一樣的。我們的每一片盤片都有兩面,每一面都可以存儲數(shù)據(jù),所以都必須有磁頭,磁頭是盤片的兩本,而這些磁頭也是另一個馬達(dá)同時控制轉(zhuǎn)動的,這些磁頭俯視來看都是重疊在一起的,我們找數(shù)據(jù)必須在盤片上進(jìn)行尋找,而這些都是通過磁頭轉(zhuǎn)到那個位置去定位到我們要找到的數(shù)據(jù),此時就要知道是哪個磁頭,就可以對應(yīng)到哪個盤片,在通過磁頭轉(zhuǎn)動的角度來讀取數(shù)據(jù)

盤片轉(zhuǎn)動的速度可以達(dá)到每秒幾萬轉(zhuǎn),大家看圖,磁頭和盤片很近,但是不會接觸,這樣就不會導(dǎo)致盤片刮花,導(dǎo)致數(shù)據(jù)讀取失敗,我們最好不要開始的來回拌勻電腦,開機(jī)狀態(tài)磁盤會轉(zhuǎn)到盤片上,震動有可能使磁頭上面抖動,掛到盤片,我們的一個磁盤在生產(chǎn)的時候都會在一個無塵的地方用封膠,防止灰塵對盤片有影響,拆開后的磁盤一般都報廢了

有了上面的介紹我們大致知道磁盤是怎么工作的,但是里面的細(xì)節(jié)我們不知道,只知道磁頭同時轉(zhuǎn),盤片同時轉(zhuǎn),磁頭在盤片上就可以讀取數(shù)據(jù)了,關(guān)于怎么存儲,我們是不知道的,接下來解決這個問題

1.2磁盤的具體存儲細(xì)節(jié)

我們來看一下更內(nèi)部的結(jié)構(gòu)
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
博主拿一面過來介紹。
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

按照上面的
盤面我們劃分成四個區(qū)域,每一個都是同心圓,而這每個圓叫做磁道,這四個區(qū)域中的其中一個里面的黃色部分就是扇區(qū),他是一條有弧度的線,里面都是二進(jìn)制位,類似于這樣【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
磁頭會發(fā)射電流使得這上面的數(shù)據(jù)0/1之間來回變化的。大家看到垌一個區(qū)域上扇區(qū)的長度是不一樣的,這樣就導(dǎo)致不均勻,但是現(xiàn)在已經(jīng)幾乎均勻了,是通過盤片不同位置的密度所控制的,來圓心近一點(diǎn)的二進(jìn)制位離得近一些,則反之.扇區(qū)是我們磁盤最基本的單位–512字節(jié)/4kb,(為什么是這個大小呢,這是一些數(shù)學(xué)家算出來這樣的大小有利于提高整機(jī)效率,具體的博主也不清楚)磁盤可以看成是無數(shù)個扇區(qū)組成的存儲介質(zhì)

我們是通過磁頭來將數(shù)據(jù)寫入盤片,此時第一個要解決的問題就是定位一個扇區(qū),就是先定位時哪個盤面(這是通過哪個磁頭決定的),再定位到哪個磁道,最后就可以定位到是哪個扇區(qū)。

【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器


解決上面的問題:對磁盤進(jìn)行邏輯結(jié)構(gòu)分析
相信在我們這個年紀(jì)的人,在小時候應(yīng)該都見過磁帶,博主經(jīng)常在英語聽力的時候看到。
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

我們的磁帶也是存儲數(shù)據(jù)的,把他扯出來就是一個長長的直線,為什么磁帶要設(shè)計(jì)成圓形??(因?yàn)檫@樣可以更多的增加磁帶的長度,增加磁帶的存儲容量),磁帶扯出來以后整體就想一個數(shù)組,此時我們的磁盤就也可以抽象成數(shù)組,假設(shè)我們磁盤有三個盤片,就有六個磁頭,把每個盤片分成10個磁道,每個磁道分成5個扇區(qū),我們的數(shù)組就可以劃分成如下圖
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
此時我們就把磁盤的物理結(jié)構(gòu)就變成了邏輯結(jié)構(gòu),只要給我一個數(shù)組下標(biāo),就可以計(jì)算出對應(yīng)的盤片,磁頭,磁道。


假設(shè)每個盤片2W個扇區(qū),每個盤片有50個磁道,這樣就可以算出每個磁道有400個扇區(qū)。外部傳進(jìn)來數(shù)組下標(biāo)是28888
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
邏輯地址又叫LBA地址,這樣我們就可以通過LBA地址計(jì)算出來磁盤的CHS地址,反過來計(jì)算也可以。

再次回歸到硬件,我們之前說過不止CPU有寄存器,其他外設(shè)也有,當(dāng)然這也包括磁盤【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

所以大家應(yīng)該知道我們是怎么讓磁盤獲得數(shù)組下標(biāo)在進(jìn)行轉(zhuǎn)化的吧。

二、文件系統(tǒng)

我們知道可以從邏輯結(jié)構(gòu)專程物理結(jié)構(gòu),那么我們接下來就在邏輯地址上進(jìn)行講解,因?yàn)檫壿嫿Y(jié)構(gòu)是我們所熟悉的結(jié)構(gòu)。
Linux下一切皆文件,這個大家都知道了,我們磁盤里面也存儲了許多沒有被打開的文件,那么這些文件不可能在磁盤里面里面隨便放著,從進(jìn)程開始我們就開始講解管理,方便我們?nèi)ゲ僮?,所以我們磁盤里面的文件也需要管理,這樣讀取文件的時候就方便。假設(shè)我們的磁盤有800G的容量,這太大了,管理起來太麻煩,所以我們要進(jìn)行劃分,將它劃分成200G左右的,但是也太大了,在瓜分成10G的,把這10G管理好,其余區(qū)域復(fù)制粘貼過去較好,來看劃分圖,所以分區(qū)就是我們電腦上的C盤,D盤

【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

此時我們的重點(diǎn)就來到最底下的一幅圖,大家應(yīng)該都不理解,接下來博主就來給大家一一介紹


最底下的一幅圖就是我們的文件系統(tǒng)

**(1)**啟動塊(Boot Block),這個大小是設(shè)定好的
**(2)**Block Group:ext2文件系統(tǒng)會根據(jù)分區(qū)的大小劃分為數(shù)個Block Group。而每個Block Group都有著相同的結(jié)構(gòu)組成。 將著10個g的空間瓜分成n個block group,接下來我們介紹其中一個block group
**(3)**datablocks:這是數(shù)據(jù)塊,里面有很多小塊,大小都是4kb,里面存放的都是內(nèi)容,所以存文件內(nèi)容的區(qū)域,以塊的形式呈現(xiàn)。
**(4)**inode table:這是屬性數(shù)據(jù)塊,里面存放單個文件的所有屬性,一般而言,一個文件一個inode,inode是一個結(jié)構(gòu)體,大小是128字節(jié),這個結(jié)構(gòu)體里面還有一個inode編號。
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

大家應(yīng)該看到博主把里面的其中三個屬性標(biāo)紅了嗎,這是我們今天所講的重點(diǎn)。第一個標(biāo)紅的屬性是唯一標(biāo)識文件的,只有找到他才能找到我們的文件所存儲的位置,第二個標(biāo)紅的屬性,等到講解軟硬件鏈接的時候再說,第三個標(biāo)紅的屬性是找對應(yīng)的數(shù)據(jù)塊(在上面我們說過datablock被分成很多小塊,每個小塊大小為4kb,我們給這些小塊設(shè)置下標(biāo),一個文件可能占用的不止一個小塊而是多個,而第三個屬性是一個數(shù)組,大小一般為15,他里面的內(nèi)容就是小塊的下標(biāo),這樣就形成了映射了,有的人會說,一個小塊4kb,數(shù)組才15個,這才可以對應(yīng)60kb大小的文件啊,當(dāng)文件特別大的時候,數(shù)組就不夠,難道會擴(kuò)容??答案是不會擴(kuò)容,我們的數(shù)組前12個位置是直接映射關(guān)系,里面存放的是小塊對應(yīng)的編號,后面三位是間接映射關(guān)系,我們數(shù)據(jù)塊里面規(guī)定好了,不止可以存放文件的數(shù)據(jù),也可以存放其他小塊的編號,后三位的前兩位是兩級索引,里面存放的也是小塊的編號,只不過這個小塊里面的內(nèi)容是其他小塊的編號,4kb的大小為4512字節(jié),一個編號是一個整型,大小是4字節(jié),所以兩個小塊可以存放1024個編號,大小變成了4096kb=4MB,最后一位是三級索引,里面存放的是小塊的編號,里面的內(nèi)容依舊存儲編號可以存儲512個小塊的編號,在繼續(xù)往下面的小塊里面存儲編號,每個小塊又可以存儲512個小塊編號,此時就有512512=262144個小塊,每個小塊存儲的數(shù)據(jù)大小為4kb,可以存儲4*262144=1048576kb=1GB)來看圖解,理解一下:
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
通過上面的講解我們的文件是怎么存儲了的吧,還有一個重要點(diǎn)的就是文件系統(tǒng)里面的文件屬性和文件內(nèi)容是分開存儲的

(5)block bitmap:用來標(biāo)識我們數(shù)據(jù)塊有沒有被使用,比特位的位置和塊號映射起來,比特位的內(nèi)容,就是表示該塊有沒有被使用,所以我們刪除一個文件的時候,不需要講數(shù)據(jù)塊里面的內(nèi)容清空,只需要將對應(yīng)的比特位置0就可以了,下次在使用此位置就直接覆蓋就行了,所以大家有沒有發(fā)現(xiàn),下載很大的文件時間很長,但是刪除一個文件的時候速度很快,原因就在這里。大家如果誤刪一個文件后,其實(shí)可以恢復(fù),蛋需要專業(yè)的軟件和技術(shù)人員,將比特位置1,就可以了,但是此時你這塊位置沒有被使用過,不然內(nèi)容就被覆蓋了,所以誤刪最好就是什么都不要動,交給專業(yè)的人。

(6) inode bitmap:用來標(biāo)識我們的inode有沒有被使用,比特位的位置和inode的標(biāo)號映射起來,這個inode的個數(shù)是在分區(qū)的時候就劃分好的,個數(shù)是確定好的,當(dāng)inode使用完了,而數(shù)據(jù)塊還有,也是創(chuàng)建不了文件的,數(shù)據(jù)塊沒有,inode還有也創(chuàng)建不了文件。所以接下來就有了我們super block
(7) super block:文件系統(tǒng)的基本信息
里面包含了整個分區(qū)的基本使用情況(一共多少個組,每個組的大小,每個組的inode數(shù)量,每個組的block數(shù)量,每個組的起始inode,文件系統(tǒng)的類型與名稱等),這是每個分區(qū)里面的屬性,不會在每個分組里面都有的,一般只在開頭。所以在每個分區(qū)使用前,都必須提前將部分文件系統(tǒng)屬性的信息提前設(shè)置進(jìn)對應(yīng)的分區(qū)中,方便我們后續(xù)使用這個分區(qū)或者分組,這也叫格式化

(8) Group Descriptor Table:這是描述一個分組里面的情況,有多少數(shù)據(jù)使用,還剩多少,有多少inode被使用,還剩多少,一些屬性的。


inode vs 文件名

我們的一切根源都是通過inode去操作的,找到文件:inode編號->分區(qū)特定的分組->inode->屬性->內(nèi)容。在Linux系統(tǒng)中,一個文件,一個inode,每個inode都有自己的inode編號(inode的設(shè)置,是以分區(qū)為單位的,不能跨分區(qū)),inode標(biāo)識文件的所有屬性,文件名并不屬于inode這個結(jié)構(gòu)體里面的屬性,那我們怎么知道一個文件的inode編號的呢??我們用戶從來沒有使用過inode,我們一直使用的是文件名,所以這兩者肯定有一種聯(lián)系。這就要依托于我們的目錄結(jié)構(gòu),我們的目錄也是文件,有自己的inode, 就可以找到對應(yīng)的數(shù)據(jù)塊,那數(shù)據(jù)塊里面存儲的是什么內(nèi)容呢??但是就是文件名和inode的映射關(guān)系,兩者互為key值。這樣我們操作文件名,就間接操作了inode了。因?yàn)閕node是唯一的,所以統(tǒng)一目錄下不能有同名文件

此時大家理解一下:

  1. 目錄下,沒有w,我們就無法創(chuàng)建文件
  2. 目錄下,沒有r,我們就無法查看文件
  3. 目錄下,沒有x,我們就無法進(jìn)入文件
    在思考一下:
    新建文件,刪除文件,查找文件,修改文件,系統(tǒng)要做什么??,這個問題博主交給讀者,相信學(xué)習(xí)了上面的內(nèi)容,我認(rèn)為聰明的你肯定知道思考題的答案。

三、軟硬鏈接

3.1軟硬鏈接效果的展示

在講解軟硬件鏈接的時候,先不講概念,先讓大家看到軟硬件鏈接怎么去操作,長什么樣,才能更好的給大家講解,就好比先給大家看看磁盤結(jié)構(gòu),在講原理,大家才能更好的理解。
我們來看操作結(jié)果。
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

我們的第一個是建立文件的硬連接,第二個是建立文件的軟鏈接,在ls上加一個-i選項(xiàng)就可以查看到文件的inode,對于軟硬件鏈接,我們看到最明顯的區(qū)別就是硬連接和原文件是同一個inode,所以說明硬連接沒有創(chuàng)建新的文件,而軟鏈接有一個屬于自己的inode.兩者的刪除使用unlink,可能使用rm kennel不行,但是刪除后都不會影響原文件。

3.2 概念講解

通過上面的演示,我們看到兩者出現(xiàn)了不同的效果:
(1)軟鏈接的理解
軟鏈接有自己獨(dú)立的inode,也就是一個獨(dú)立的文件,有自己的inode編號,和數(shù)據(jù)塊,里面的內(nèi)容存儲的是指向原文件的路徑,上面的演示是在同一目錄下建立的軟鏈接,看不出來優(yōu)勢,接下來給大家展示一下不同目錄下建立軟鏈接文件。【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
軟鏈接的應(yīng)用場景
我們通過軟鏈接,把深路徑的程序在淺路徑執(zhí)行出來了,大家有沒有發(fā)現(xiàn)這就是我們windows下的桌面快捷方式,相信大家小時候卸載軟件都是直接把桌面的圖標(biāo)給刪除了就認(rèn)為都刪除了,但實(shí)際上,只是刪除掉快捷方式的文件,真正的可執(zhí)行程序在你安裝目錄下存在著呢。

注意:我們軟鏈接文件里面存儲的是指向原文件的路徑,所以只刪除軟鏈接文件么有問題,但是只刪除原文件就會出現(xiàn)問題

(2)硬連接的理解
硬連接文件和原文件是同一個inode,可以理解為硬連接是我們原文件的一個別名,其實(shí)可以理解為互為別名,刪除任意一個其他的都不受影響,大家還記得我們在介紹inode結(jié)構(gòu)體的時候,說第二個標(biāo)紅的屬性引用計(jì)數(shù)后面來講,此時就是講解他的最好時機(jī)。
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
這一串?dāng)?shù)字表示的就是硬連接數(shù),當(dāng)刪除一個文件的時候,只有等到硬連接數(shù)減到0的時候,才會刪除,不然只會計(jì)數(shù)減減,他家有沒有發(fā)現(xiàn)技術(shù)有時候是相同,這個引用計(jì)數(shù)在智能指針,文件描述符表,和硬連接數(shù)都出現(xiàn)了,所以系統(tǒng)方面的知識連貫性很大。

硬連接具體做了什么,就是在指定目錄下(可以不在同一個目錄下),建立文件名和指定inode的映射關(guān)系–僅此而已

硬連接的應(yīng)用場景
他的應(yīng)用場景不是很多,但是運(yùn)用在廣泛的是進(jìn)行目錄間的切換。
我們先來創(chuàng)建一個目錄文件
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

普通文件的默認(rèn)硬連接數(shù)是1,目錄文件的默認(rèn)的硬鏈接數(shù)是2

我們來看一下此目錄文件的inode
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
我們看到目錄文件在一開始就要兩個隱藏文件 點(diǎn)點(diǎn)代表當(dāng)前路徑,點(diǎn)點(diǎn)代表上一路徑,所以點(diǎn)文件和當(dāng)前文件的inode是同一個。
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器


硬鏈接不允許給目錄,軟鏈接可以。
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器

為什么硬鏈接不允許給目錄呢??
這樣會造成環(huán)路問題,我們的操作文件的前提是查找到這個文件,所以路徑是方便我們查找的,所以查找回在路徑文件里面去查找,如果在一個目錄里面有硬鏈接后的路徑文件,就要可能往回找了
【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接,Linux系統(tǒng)編程,linux,運(yùn)維,服務(wù)器
所以我們才可以使用相對路徑去進(jìn)行操作,那點(diǎn)和點(diǎn)點(diǎn)不就是對目錄進(jìn)行硬鏈接?而且點(diǎn)和點(diǎn)也是存在環(huán)路問題啊?為什么可以呢?原因是這是系統(tǒng)自帶的,人家可以,我們用戶不可以,所以可以進(jìn)行硬鏈接,而我們搜索路徑的時候,不去點(diǎn)和點(diǎn)點(diǎn)里面進(jìn)行搜索,這樣就避免了環(huán)路。

四、補(bǔ)充知識

先發(fā)布,晚點(diǎn)再來補(bǔ)充,各位讀者們。文章來源地址http://www.zghlxwxcb.cn/news/detail-757196.html

到了這里,關(guān)于【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Linux】15. 文件系統(tǒng)與軟硬鏈接

    【Linux】15. 文件系統(tǒng)與軟硬鏈接

    在之前的學(xué)習(xí)過程當(dāng)中,我們知道當(dāng)文件被打開后需要加載進(jìn)內(nèi)存,第一步為其創(chuàng)建struct file結(jié)構(gòu)體描述其結(jié)構(gòu)(操作系統(tǒng)需要管理被打開的文件:先描述再組織),在通過進(jìn)程當(dāng)中的文件描述符指針指向文件描述符表,根據(jù)文件描述符的分配規(guī)則給新打開的文件分配文件描述符

    2024年02月09日
    瀏覽(19)
  • 【Linux】磁盤結(jié)構(gòu) | 文件系統(tǒng) | 軟硬鏈接

    【Linux】磁盤結(jié)構(gòu) | 文件系統(tǒng) | 軟硬鏈接

    文件的狀態(tài)有被打開和沒有被打開,之前談到一個文件被進(jìn)行讀寫,就要打開加載到內(nèi)存中,通過對應(yīng)的系統(tǒng)調(diào)用,fd文件描述符的管理,write和read等函數(shù)的增刪查改。并且借助緩沖區(qū)對文件屬性和內(nèi)容的修改。 大部分文件是沒有被打開的(不需要訪問),都在磁盤里保存的

    2024年01月20日
    瀏覽(25)
  • 【Linux】文件系統(tǒng)軟硬鏈接的那些事兒

    【Linux】文件系統(tǒng)軟硬鏈接的那些事兒

    作者:?舊言~ 座右銘:松樹千年終是朽,槿花一日自為榮。 目標(biāo):理解什么是軟硬鏈接,并且能創(chuàng)建軟硬鏈接。 毒雞湯:再小的事,別人做了是情分,不做是本分??墒怯行┤?永遠(yuǎn)只要求他人付出,不懂得感恩。 專欄選自:Linux初階 望小伙伴們點(diǎn)贊??收藏?加關(guān)注喲????

    2024年04月22日
    瀏覽(24)
  • 【Linux】什么是文件系統(tǒng)及inode?如何創(chuàng)建軟硬鏈接?軟硬鏈接有什么作用?

    【Linux】什么是文件系統(tǒng)及inode?如何創(chuàng)建軟硬鏈接?軟硬鏈接有什么作用?

    了解一下文件系統(tǒng): Linux ext2文件系統(tǒng),上圖為磁盤文件系統(tǒng)圖(內(nèi)核內(nèi)存映像肯定有所不同),磁盤是典型的塊設(shè)備,硬盤分區(qū)被 劃分為一個個的block。一個block的大小是由格式化的時候確定的,并且不可以更改。例如mke2fs的-b選項(xiàng)可以設(shè) 定block大小為1024、2048或4096字節(jié)。而

    2024年02月11日
    瀏覽(19)
  • 【Linux】基礎(chǔ)IO——文件系統(tǒng)|軟硬鏈接|動靜態(tài)庫

    【Linux】基礎(chǔ)IO——文件系統(tǒng)|軟硬鏈接|動靜態(tài)庫

    基于上篇博客所寫到的文件各種操作都是基于被打開文件所進(jìn)行操作的,那么如果一個文件沒有被打開它存在哪里呢?這個答案毫無疑問肯定是存在于磁盤上的。那么,對于一個沒有打開的文件(也就是磁盤文件)我們應(yīng)該如何理解呢? 這里我們所要講的磁盤是機(jī)械硬盤、即

    2024年02月04日
    瀏覽(21)
  • [Linux]理解文件系統(tǒng)!動靜態(tài)庫詳細(xì)制作使用?。ň彌_區(qū)、inode、軟硬鏈接、動靜態(tài)庫)

    [Linux]理解文件系統(tǒng)!動靜態(tài)庫詳細(xì)制作使用!(緩沖區(qū)、inode、軟硬鏈接、動靜態(tài)庫)

    ? ? ? ? hello,大家好,這里是bang___bang_,今天來談?wù)劦奈募到y(tǒng)知識,包含有緩沖區(qū)、inode、軟硬鏈接、動靜態(tài)庫。本篇旨在分享記錄知識,如有需要,希望能有所幫助。 目錄 1??緩沖區(qū) ??緩沖區(qū)的意義 ??常見緩沖區(qū)刷新策略 ??緩沖區(qū)位置猜想 ??現(xiàn)象猜測 ??現(xiàn)象解

    2024年02月13日
    瀏覽(26)
  • 【探索Linux】—— 強(qiáng)大的命令行工具 P.13(文件系統(tǒng) | 軟硬鏈接 | 動態(tài)庫和靜態(tài)庫)

    【探索Linux】—— 強(qiáng)大的命令行工具 P.13(文件系統(tǒng) | 軟硬鏈接 | 動態(tài)庫和靜態(tài)庫)

    在計(jì)算機(jī)科學(xué)領(lǐng)域中,Linux 系統(tǒng)一直以來都是備受推崇的操作系統(tǒng)之一。其中,文件系統(tǒng)、軟硬鏈接、動態(tài)庫和靜態(tài)庫是 Linux 系統(tǒng)中非常重要的概念,在實(shí)際應(yīng)用中扮演著不可或缺的角色。 在上一篇文章中,我們了解了 Linux 系統(tǒng)中文件描述符、重定向以及基礎(chǔ) IO 操作的相關(guān)

    2024年02月04日
    瀏覽(21)
  • 【Linux】—— 詳解軟硬鏈接

    【Linux】—— 詳解軟硬鏈接

    前言: 本期,我將要給大家講解的是有關(guān) Linux下 軟硬鏈接 的相關(guān)知識!?。?目錄 前言 (一)理解硬鏈接 1.什么是硬鏈接 2.創(chuàng)建硬鏈接 ?3.硬鏈接的使用場景 (二)理解軟鏈接 1.什么是軟鏈接 2.創(chuàng)建軟鏈接 3.軟鏈接使用場景 (三)硬鏈接和軟鏈接的對比 總結(jié) 文件共享可以

    2024年02月03日
    瀏覽(22)
  • 【linux深入剖析】深入理解軟硬鏈接 | 動靜態(tài)庫的制作以及使用

    【linux深入剖析】深入理解軟硬鏈接 | 動靜態(tài)庫的制作以及使用

    ??你好,我是 RO-BERRY ?? 致力于C、C++、數(shù)據(jù)結(jié)構(gòu)、TCP/IP、數(shù)據(jù)庫等等一系列知識 ??感謝你的陪伴與支持 ,故事既有了開頭,就要畫上一個完美的句號,讓我們一起加油 軟鏈接和硬鏈接是在Linux系統(tǒng)中常見的文件鏈接方式。 軟鏈接(Symbolic Link): 軟鏈接是一個指向目標(biāo)文

    2024年04月13日
    瀏覽(25)
  • Linux下軟硬鏈接和動靜態(tài)庫制作詳解

    Linux下軟硬鏈接和動靜態(tài)庫制作詳解

    目錄 前言 軟硬鏈接 概念? 軟鏈接的創(chuàng)建 硬鏈接的創(chuàng)建 軟硬鏈接的本質(zhì)區(qū)別 理解軟鏈接 理解硬鏈接 小結(jié) 動靜態(tài)庫 概念 動靜態(tài)庫的制作 靜態(tài)庫的制作? 動態(tài)庫的制作? 本文涉及到inode和地址空間等相關(guān)概念,不知道的小伙伴可以先閱讀以下兩篇文章了解一下哦。 ?Linux文件

    2024年04月28日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包