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

【Linux】inode軟硬連接

這篇具有很好參考價(jià)值的文章主要介紹了【Linux】inode軟硬連接。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?? 前言

本章我們將學(xué)習(xí)學(xué)習(xí)認(rèn)識(shí)一下磁盤的的物理結(jié)構(gòu),理解磁盤分區(qū)分塊,如何對區(qū)塊進(jìn)行管理。學(xué)習(xí)認(rèn)識(shí)inode和軟硬連接。目標(biāo)已經(jīng)確定,接下來就要搬好小板凳,準(zhǔn)備開講了…????????


1. 文件系統(tǒng)

1.1 磁盤的物理結(jié)構(gòu):

前面我們學(xué)到的所有的東西,全部都是在內(nèi)存中。但是并不是所有的文件都被打開了。
大量的文件,就在磁盤上,靜靜的躺著,這批文件非常多,雜,亂。
視角,從內(nèi)存中移開,視角,遷移到磁盤上。
磁盤基本的文件管理,本質(zhì)工作:就和快遞站的老板做的工作是一樣的!

磁盤是我們電腦上的唯一的一個(gè)機(jī)械設(shè)備目前,我們筆記本上,可能已經(jīng)不用磁盤了而是SSD(固態(tài)硬盤)。磁盤更加的便宜,公司的服務(wù)器大部分都是磁盤式的服務(wù)器,SSD的耐用性不如磁盤。

【Linux】inode軟硬連接,Linux,linux
存儲(chǔ)數(shù)據(jù)原理:

磁盤存儲(chǔ)數(shù)據(jù)的原理是基于磁性材料和磁場相互作用的物理過程。在硬盤和磁帶等磁介質(zhì)上,數(shù)據(jù)以磁場的形式進(jìn)行存儲(chǔ)和讀取。

磁性,改變N/S極,就是改變了0/1。

當(dāng)我們改變磁盤上某一個(gè)位置的N/S極,就好比更改了此處保存的數(shù)據(jù)0/1。

【Linux】inode軟硬連接,Linux,linux

  • 一個(gè)面,一個(gè)磁頭。
  • 機(jī)械式 + 外設(shè) = 磁盤一定是很慢的(相比于CPU,內(nèi)存)

【Linux】inode軟硬連接,Linux,linux
磁盤存儲(chǔ)結(jié)構(gòu)由多個(gè)組件組成,每個(gè)組件都有不同的功能和作用。以下是磁盤存儲(chǔ)結(jié)構(gòu)中常見的組件及其解釋:

  1. 盤片(Platters):盤片是磁盤存儲(chǔ)結(jié)構(gòu)的主要部分,通常由金屬或玻璃材料制成。它們被堆疊在一起,并通過主軸旋轉(zhuǎn)。數(shù)據(jù)存儲(chǔ)在盤片的表面上,每個(gè)盤片的兩個(gè)面都可以用于數(shù)據(jù)存儲(chǔ)。

  2. 磁頭(Heads):磁頭是用于讀取和寫入數(shù)據(jù)的裝置,通常由電磁部件組成。磁頭位于盤片的表面上方或下方,能夠浮動(dòng)在非常接近盤片表面的位置,并通過微小的電流產(chǎn)生磁場,與盤片上的磁場相互作用。

  3. 臂(Arm):臂是磁頭的支撐結(jié)構(gòu),也被稱為尋道臂。臂一端連接著磁頭,另一端連接到驅(qū)動(dòng)器的位置控制系統(tǒng)。臂可以在盤片的邊緣上移動(dòng),將磁頭定位到指定的磁道上。

  4. 磁道(Track):磁道是盤片上的一個(gè)圓環(huán)形區(qū)域,被劃分為多個(gè)同心圓。每個(gè)磁道上可以存儲(chǔ)一定容量的數(shù)據(jù),磁頭通過臂將其定位到指定磁道上進(jìn)行讀寫操作。

  5. 柱面(Cylinder): 柱面是指位于多個(gè)盤片上同一徑向位置的磁道的集合。換句話說,柱面由多個(gè)盤片上相同編號(hào)的磁道組成,這些磁道在垂直方向上對齊形成一個(gè)柱狀結(jié)構(gòu)。每個(gè)盤片都有多個(gè)柱面,且每個(gè)柱面上的磁道數(shù)量相同。使用柱面編號(hào)的方式可以簡化磁頭的尋道操作。

  6. 扇區(qū)(Sector):扇區(qū)是磁道上的最小單位,用于存儲(chǔ)數(shù)據(jù)。通常情況下,每個(gè)扇區(qū)的大小為512字節(jié)或4KB。數(shù)據(jù)的讀取和寫入以扇區(qū)為單位進(jìn)行。

  7. 主軸(Spindle):主軸是盤片的旋轉(zhuǎn)中心軸,通過電機(jī)驅(qū)動(dòng)使盤片高速旋轉(zhuǎn)。主軸的旋轉(zhuǎn)速度通常以每分鐘轉(zhuǎn)數(shù)(RPM)來衡量,例如7,200 RPM或10,000 RPM。

  8. 驅(qū)動(dòng)器控制器(Drive Controller):驅(qū)動(dòng)器控制器是磁盤驅(qū)動(dòng)器上的電路板,負(fù)責(zé)控制整個(gè)磁盤存儲(chǔ)系統(tǒng)的操作。它連接到計(jì)算機(jī)系統(tǒng),并根據(jù)計(jì)算機(jī)的指令控制磁頭的移動(dòng)、數(shù)據(jù)讀取和寫入等操作。

這些組件共同協(xié)作,實(shí)現(xiàn)了數(shù)據(jù)在磁盤上的存儲(chǔ)和訪問過程。通過磁頭的移動(dòng)和盤片的旋轉(zhuǎn),可以精確地讀取和寫入數(shù)據(jù),從而實(shí)現(xiàn)高效的數(shù)據(jù)存儲(chǔ)和檢索。

讀寫磁盤的時(shí)候,磁頭找的是某一個(gè)面的某一個(gè)磁道的某一個(gè)扇區(qū):

  • 盤面(有兩面)有自己對應(yīng)的磁頭
  • 磁道 是由距離圓心的半徑?jīng)Q定的
  • 扇區(qū)是由盤面旋轉(zhuǎn)決定的

操作系統(tǒng)的文件系統(tǒng)所作的工作,便是將文件和其對應(yīng)的扇區(qū)聯(lián)系起來。用上面提到的辦法,便可以查找到每一個(gè)扇區(qū)!

  • 只要我們能找到磁盤上的盤面,柱面(磁道),扇區(qū),就能找到一個(gè)存儲(chǔ)單元!
  • 用同樣的方法,我們可以找到所有的基本單元??!

這種查找數(shù)據(jù)位置的操作,被稱為CHS尋址,CHS分別對應(yīng)磁柱、磁面、扇區(qū)。


1.2 CSH和LBA:

CHS的尋址方式:

  • 如何確定數(shù)據(jù)被寫到盤面對的哪些位置呢?
  • 先確定某一個(gè)柱面或者磁道,再確定是哪個(gè)面。
  • 接下來是確定在哪個(gè)扇區(qū),然后某一個(gè)存儲(chǔ)單元就能確定了。
  • 就能找到任意一個(gè)指定的扇區(qū)。

相信我們都見過磁帶,卷起來是一盤,拉直了是一個(gè)長條。而我們的磁盤也可以看作將每個(gè)磁道拉直了,連起來就是個(gè)長條,我們可以看作是一個(gè)大數(shù)組。

【Linux】inode軟硬連接,Linux,linux

  • 此時(shí),對磁盤文件的修改,就可以抽象成對內(nèi)核中一個(gè)數(shù)組的增刪查改操作!
  • 將每一小塊管好,整個(gè)也就管好了,對磁盤的管理就想象成了對數(shù)組的管理。

這種抽象之后的磁盤,被稱為LBA邏輯塊地址方式。

通過整除 + 取模等操作,就可以將LBA邏輯塊地址轉(zhuǎn)換成CHS地址來確定具體位置。

具體計(jì)算過程參考:學(xué)習(xí)傳送門

修改了數(shù)組中的數(shù)據(jù)之后,操作系統(tǒng)將LBA對應(yīng)的CHS地址算出來交給磁盤,讓磁盤來修改指定扇區(qū)的數(shù)據(jù),便實(shí)現(xiàn)了保存數(shù)據(jù)到磁盤中的操作。


1.3 IO的基本單位:

對于操作系統(tǒng)而言,一次IO的基本單位通常是塊(block),通常情況下,一個(gè)塊的大小等于一個(gè)扇區(qū)的大小。扇區(qū)是磁盤存儲(chǔ)的最小單位,一般為512字節(jié)或者4KB。

磁盤訪問的基本單位是扇區(qū),不代表磁盤將來就必須以扇區(qū)為單位訪問。我們可以以多個(gè)扇區(qū)為單位去訪問。

為什么通常是4KB呢?

IO基本單位一般選擇4KB的原因有幾個(gè)方面的考慮:

  1. 存儲(chǔ)介質(zhì)特性:傳統(tǒng)硬盤(磁盤)的扇區(qū)大小通常是512字節(jié),而一個(gè)4KB的塊恰好包含了8個(gè)扇區(qū)。以4KB作為IO基本單位可以更好地匹配硬盤的物理組織結(jié)構(gòu),減少讀取和寫入時(shí)的尋道開銷,提高存儲(chǔ)設(shè)備的讀寫效率。
  2. 緩存效果:較大的塊大小有助于提高IO操作的緩存效果。當(dāng)系統(tǒng)進(jìn)行IO操作時(shí),會(huì)將整個(gè)塊加載到內(nèi)存緩存中。較大的塊大小可以最大程度地利用內(nèi)存的緩存能力,減少頻繁的磁盤訪問,從而提高整體的讀寫性能。
  3. 文件系統(tǒng)的塊大?。涸S多文件系統(tǒng)以4KB作為默認(rèn)的塊大小,選擇與文件系統(tǒng)塊大小一致的IO單位可以更好地與文件系統(tǒng)進(jìn)行協(xié)作。這樣可以避免額外的轉(zhuǎn)換和管理開銷,提高數(shù)據(jù)讀寫的效率。

其中我個(gè)人認(rèn)為最重要的一點(diǎn)就是:

  • 不要讓軟件(OS)設(shè)計(jì)和硬件(磁盤)具有強(qiáng)相關(guān)性,換句話說,就是解耦合!
  • 內(nèi)存也要以申請4KB的空間來接收。

需要注意的是,IO基本單位的選擇也會(huì)受到具體應(yīng)用場景、硬件限制以及性能需求的影響。對于某些特定應(yīng)用,可能會(huì)使用其他大小的塊來滿足特定的需求。因此,選擇IO基本單位的最佳大小需要綜合考慮各種因素,并進(jìn)行實(shí)際測試和評估。


1.4 文件系統(tǒng)結(jié)構(gòu):

上述我們講到,將磁盤看作是一個(gè)大的數(shù)組,將大數(shù)組分塊,只要將每一塊管理好,那么整個(gè)磁盤也就管理到位了。

【Linux】inode軟硬連接,Linux,linux

假設(shè)分區(qū)有100GB,我們分了20個(gè)小組,接下來再分組,分了五個(gè)組,所以最后要想把磁盤管好,就要把塊組管好,也就是最后把1GB管好。

Boot Block與開機(jī)有關(guān):

一般計(jì)算機(jī)在剛開始啟動(dòng)的時(shí)候,首先加電自檢,然后找主板上的一個(gè)設(shè)備Base 10 System,它是硬件,里面大概有五百多字節(jié)的存儲(chǔ)空間,里面就存儲(chǔ)了磁盤設(shè)備,當(dāng)它啟動(dòng)之后定要去找計(jì)算機(jī)里面,操作系統(tǒng)在什么地方,所以它啟動(dòng)之后一定要讀取一個(gè)分區(qū)里面的Boot Block,這個(gè)當(dāng)中就表明了一個(gè)機(jī)器的開機(jī)信息,包括分區(qū)表,同時(shí)還告訴我們操作系統(tǒng)中軟件在什么地方。
所以硬件層面上,系統(tǒng)啟動(dòng)時(shí),讀取這一小塊數(shù)據(jù)就可以直接找到操作系統(tǒng),然后加載操作系統(tǒng),俗稱:開機(jī)。

Linux采用的是文件內(nèi)容、文件屬性分開存放的存儲(chǔ)方式:

  • 文件的屬性是穩(wěn)定的
  • 文件的內(nèi)容在不斷增多

1.5 認(rèn)識(shí)inode:

Linux中文件的屬性信息(如權(quán)限、所有者、大小等)是通過inode來存儲(chǔ)和管理的:

  • 每個(gè)文件都有一個(gè)唯一的inode號(hào)碼,用于標(biāo)識(shí)該文件。
  • inode是文件系統(tǒng)中的一個(gè)數(shù)據(jù)結(jié)構(gòu),它包含了文件的元數(shù)據(jù)信息。
  • 包括文件的權(quán)限、時(shí)間戳、大小等。
  • 當(dāng)然也有一些文件沒有inode。

文件名是用戶給文件分配的可識(shí)別和易記的名稱,而inode是文件系統(tǒng)內(nèi)部用來唯一標(biāo)識(shí)和管理文件的數(shù)據(jù)結(jié)構(gòu)。

【Linux】inode軟硬連接,Linux,linux

【Linux】inode軟硬連接,Linux,linux

  • Data blocks: 以塊為單位,進(jìn)行文件內(nèi)容的保存!
  • inode table:以128字節(jié)為單位,進(jìn)行inode屬性的保存!
  • 如何標(biāo)定文件的唯一性?
    • inode屬性里面有一個(gè)inode編號(hào)!
  • 一個(gè)分區(qū)內(nèi),一個(gè)inode是具有唯一性的。
    • 一般而言,一個(gè)文件,一個(gè)inode,一個(gè)文件,一個(gè)inode號(hào) !
  • Block Bitmap: 標(biāo)識(shí)每個(gè)塊是否已經(jīng)被使用了。用比特位的內(nèi)容,來表示對應(yīng)的塊是否被占用。用比特位的位置,來表示哪個(gè)數(shù)據(jù)塊。
  • inode Bitmap: 用比特位的位置來代表是第幾個(gè)inode,用對應(yīng)位置比特位是0還是1來表示,inode表里的inode是否被占用。
  • GDT(Group Descriptor Table): 管理分區(qū)內(nèi)的一個(gè)組,有多少inode,起始的inode編號(hào),有多少個(gè)inode被使用,有多少block被使用,還剩多少,總的group大小是多少…
  • SB(super block) : 就是我們文件系統(tǒng)的項(xiàng)層數(shù)據(jù)結(jié)構(gòu)了!
    • 表示整個(gè)分區(qū),一共有多少個(gè)塊,一共有多少個(gè)Block group。
    • 每一個(gè)塊組inode使用情況是什么,每一個(gè)塊組Date Block使用情況是什么。
    • 整個(gè)分區(qū)是多大,整個(gè)分區(qū)在磁盤中是從幾號(hào)到幾號(hào),整個(gè)分區(qū)是什么樣的文件系統(tǒng)。
    • 文件系統(tǒng)種類是什么,全部屬性都寫在了Super Block,所以是一個(gè)頂層的數(shù)據(jù)結(jié)構(gòu)。
  • 一個(gè)inode(文件,屬性)如何和屬子自己的內(nèi)容關(guān)聯(lián)起來呢?
    • data block,4KB,也叫以保存其他塊的編號(hào)!
    • 直接在自己的塊內(nèi)找到其他的塊,找到文件的inode就能找到文件的所有內(nèi)容了。
  • 文件名,算文件的屬性嗎?算!
    • 但是,inode里面,并不保存文件名??!
    • Linux下,底層實(shí)際都是通過inode編號(hào)標(biāo)識(shí)文件的,沒有文件名的概念。

Linux下一切皆文件,那么目錄是文件嗎?

  • 答案是肯定的,目錄也是文件??!
  • 文件 = 內(nèi)容(blocks) + 屬性(inode)
  • 文件名和inode的映射關(guān)系是存儲(chǔ)在目錄的數(shù)據(jù)塊(block)中的。

為什么要讀取目錄下文件名時(shí),查看文件名時(shí)必須要有讀權(quán)限:

  • 讀取文件名就是在讀取目錄的內(nèi)容。
  • 讀取目錄的內(nèi)容就必須要有讀權(quán)限。
  • 這和讀一個(gè)普通文件沒區(qū)別。

當(dāng)想在目錄下創(chuàng)建一個(gè)文件時(shí),創(chuàng)建文件時(shí)必須要有寫權(quán)限:

  • 最后要將文件名和inode映射關(guān)系寫到目錄的data block當(dāng)中。
  • 如果沒有寫權(quán)限,怎么寫入呢?

Linux同一個(gè)目錄下,可以創(chuàng)建多個(gè)同名文件嗎??不會(huì)!

  • 文件名本身就是一個(gè)具有Key值的東西!
  • 通過文件名找inode一定是一對一的關(guān)系,不存在多個(gè)文件名重復(fù)的問題。
  • 目錄里保存的是文件名和inode的映射關(guān)系。

補(bǔ)充:

  • 目錄實(shí)際上是一種特殊的文件,它包含了一個(gè)或多個(gè)數(shù)據(jù)塊,用于存儲(chǔ)文件名和對應(yīng)的inode號(hào)碼的映射。
  • 每個(gè)目錄數(shù)據(jù)塊中都保存著一系列的目錄項(xiàng)(directory entry),每個(gè)目錄項(xiàng)由文件名和對應(yīng)的inode號(hào)碼組成。系統(tǒng)通過遍歷這些目錄項(xiàng),就能夠根據(jù)文件名找到相應(yīng)的inode,進(jìn)而操作文件。
  • 當(dāng)文件系統(tǒng)需要?jiǎng)?chuàng)建、刪除、重命名或移動(dòng)文件時(shí),它會(huì)更新目錄數(shù)據(jù)塊中的目錄項(xiàng),以反映文件名與inode之間的變化。
  • 因此,目錄的數(shù)據(jù)塊承載了文件名和inode之間的映射關(guān)系,它起到了連接文件名和inode的橋梁作用。通過查找目錄數(shù)據(jù)塊,系統(tǒng)可以快速定位并操作特定的文件。

通過ls -l -i來查看文件的inode:
【Linux】inode軟硬連接,Linux,linux
當(dāng)我們創(chuàng)建一個(gè)文件,操作系統(tǒng)做了什么?

  • 找到自己的目錄,找到目錄的inode,然后找到目錄的Date Block。
  • 這里有文件名和inode的映射關(guān)系,文件名在該目錄下的唯一性,根據(jù)文件名做查找,找到了inode編號(hào)。
  • 根據(jù)inode編號(hào)找到block group,然后只要把該文件對應(yīng)的inode Bitmap由1置0。
  • 將這個(gè)文件對應(yīng)的Block Bitmap數(shù)據(jù)塊由1置0,此時(shí)就完成了文件刪除。

請問刪除一個(gè)文件,OS做了什么??

  • Linux并沒有真正的清除數(shù)據(jù):
  • 刪除的時(shí)候,只是將標(biāo)記該文件對應(yīng)的屬性和數(shù)據(jù)塊的相關(guān)位圖結(jié)構(gòu)由1置0,就完成了刪除。
  • 最后在文件所處的目錄當(dāng)中,把該文件對應(yīng)的inode映射關(guān)系去掉,此時(shí)這個(gè)文件就被刪除了。

ls的工作過程:

  • ls找到目錄對應(yīng)的inode編號(hào),根據(jù)inode編號(hào)找到inode。
  • inode里面有屬性,屬性里面有數(shù)據(jù)塊和inode的映射關(guān)系。
  • 找到數(shù)據(jù)塊,只把數(shù)據(jù)塊中文件名列出來就完了。

ls -l工作過程:

  • ls -l是找到目錄對應(yīng)的數(shù)據(jù)塊,找到了對應(yīng)的內(nèi)容。
  • 內(nèi)容里面文件名和inode映射關(guān)系就有了,拿著每個(gè)文件的inode,去查找每個(gè)文件它自己的inode,將屬性全部讀取。
  • 此時(shí)再拼接文件名,就構(gòu)成了ls -l的信息。

2. 軟硬連接

在我們Linux剛開始學(xué)習(xí)的時(shí)候,我們有一個(gè)連接數(shù)是沒有講的:
【Linux】inode軟硬連接,Linux,linux
文件硬連接數(shù):

文件硬連接個(gè)數(shù)指的是特定文件的硬鏈接數(shù)量。在Linux系統(tǒng)中,多個(gè)文件名可以指向相同的數(shù)據(jù)塊,這些文件名被稱為文件的硬鏈接。 硬鏈接是文件系統(tǒng)中的鏈接,它們具有相同的inode號(hào),并且它們引用相同的文件內(nèi)容。
每當(dāng)創(chuàng)建一個(gè)硬鏈接時(shí),文件的硬鏈接計(jì)數(shù)增加1。相反,當(dāng)刪除一個(gè)硬鏈接時(shí),硬鏈接計(jì)數(shù)減少1。只有在硬鏈接計(jì)數(shù)為0時(shí),文件才被真正刪除,釋放相關(guān)的存儲(chǔ)空間。
因此,文件的硬鏈接個(gè)數(shù)表示有多少個(gè)文件名指向同一份數(shù)據(jù)。當(dāng)硬鏈接計(jì)數(shù)為1時(shí),說明該文件沒有其他硬鏈接,即它是唯一指向該數(shù)據(jù)的文件。

【Linux】inode軟硬連接,Linux,linux

2.1 目錄和文件的硬連接數(shù):

當(dāng)我們創(chuàng)建目錄或文件時(shí),我們看到的是:目錄默認(rèn)的硬鏈接數(shù)是2,而文件默認(rèn)的硬鏈接數(shù)是1。

  • 這是什么原因?
  • 在Linux系統(tǒng)中,目錄是一種特殊類型的文件,它包含了文件名和對應(yīng)文件索引節(jié)點(diǎn)的映射關(guān)系。
  • 目錄的硬鏈接數(shù)指的是指向該目錄的硬鏈接數(shù)量,也就是有多少個(gè)目錄項(xiàng)指向該目錄。
    • 一個(gè)目錄至少有兩個(gè)硬鏈接,一個(gè)是它自己的記錄(“.”),另一個(gè)是指向該目錄的父目錄的記錄(“. .”)。
    • 這樣設(shè)計(jì)的目的是為了在文件系統(tǒng)中建立層次結(jié)構(gòu),并保證文件系統(tǒng)的完整性。
  • 文件的硬鏈接數(shù)指的是指向該文件的硬鏈接數(shù)量,也就是有多少個(gè)文件名指向該文件。
    • 默認(rèn)情況下,文件在創(chuàng)建時(shí)只會(huì)有一個(gè)硬鏈接,即它的原始文件名。
    • 這是因?yàn)槲募ǔ1徽J(rèn)為是唯一的,沒有必要有其他文件名指向同一個(gè)文件。
    • 如果需要?jiǎng)?chuàng)建文件的硬鏈接,可以使用特定的命令進(jìn)行創(chuàng)建。

【Linux】inode軟硬連接,Linux,linux

總之,目錄的默認(rèn)硬鏈接數(shù)是2,是為了維護(hù)文件系統(tǒng)的結(jié)構(gòu)和完整性;而文件的默認(rèn)硬鏈接數(shù)是1,因?yàn)槲募ǔ1徽J(rèn)為是唯一的。

2.2 軟連接:

ln -s 源 目標(biāo) #創(chuàng)建軟連接

軟連接就相當(dāng)于Linux下的快捷方式(ln: link的簡稱):

【Linux】inode軟硬連接,Linux,linux
Linux中軟連接(快捷方式)的用法:

【Linux】inode軟硬連接,Linux,linux

現(xiàn)在是連接可執(zhí)行程序,未來可能是連接頭文件,連接庫文件(動(dòng)靜態(tài)庫)不用我們很冗余的去找這些庫。

2.3 硬連接:

ln 源 目標(biāo) #創(chuàng)建硬鏈接

建立一個(gè)硬連接:

【Linux】inode軟硬連接,Linux,linux
inode對比:

【Linux】inode軟硬連接,Linux,linux
我們發(fā)現(xiàn)軟連接的inode和原來的inode不同,而硬連接的inode則是與原來相同。

硬連接數(shù):一旦建立好映射關(guān)系,就從1變成了2。

【Linux】inode軟硬連接,Linux,linux
【Linux】inode軟硬連接,Linux,linux

  • 在當(dāng)前目錄下重新建立了文件名和inode之間的映射關(guān)系
  • 這兩個(gè)文件名經(jīng)過該目錄映射的是同一個(gè)inode。

軟連接的連接數(shù)沒有變化的原因是:這是個(gè)獨(dú)立文件,因?yàn)樗歇?dú)立inode。

【Linux】inode軟硬連接,Linux,linux
引用計(jì)數(shù)沒有變化,就證明了,軟連接不是單純的拿文件名和文件inode建立映射關(guān)系,要不然和硬
連接沒區(qū)別了。

2.4 軟硬連接的區(qū)別:

軟連接:

  • 軟連接是一個(gè)獨(dú)立文件,有自己獨(dú)立的inode和inode編號(hào)。
  • Linux下的快捷方式!
  • 既然是一個(gè)獨(dú)立文件,inode是獨(dú)立的,軟連接的文件內(nèi)容是什么呢??
    • 保存的是指向的文件的所在路徑!!
    • 在系統(tǒng)級(jí)別保存的,我們開是看不到的。

硬連接:文章來源地址http://www.zghlxwxcb.cn/news/detail-596996.html

  • 硬鏈接不是一個(gè)獨(dú)立文件,他和目標(biāo)文件使用的是同一個(gè)inode!
    • 硬鏈接不是一個(gè)獨(dú)立的文件,它是與原始文件共享相同的inode和數(shù)據(jù)塊。
    • 硬鏈接與原始文件在文件系統(tǒng)中指向同一個(gè)數(shù)據(jù)塊,它們是同一個(gè)文件的多個(gè)文件名。
    • 當(dāng)你創(chuàng)建一個(gè)硬鏈接時(shí),實(shí)際上是將一個(gè)新的文件名關(guān)聯(lián)到原始文件的inode上。
    • 因此,硬鏈接并不會(huì)占用額外的磁盤空間,也不會(huì)存在獨(dú)立的文件實(shí)體。
    • 對于文件系統(tǒng)來說,無論是原始文件還是硬鏈接,都只有一個(gè)實(shí)際的數(shù)據(jù)塊。
  • 由于硬鏈接與原始文件共享相同的inode,它們具有相同的權(quán)限、時(shí)間戳等元數(shù)據(jù)信息。
    • 如果修改了原始文件的內(nèi)容或?qū)傩裕信c之相關(guān)聯(lián)的硬鏈接文件都會(huì)反映這些更改。
  • 注意細(xì)節(jié):
  • 需要注意的是,硬鏈接只能在同一個(gè)文件系統(tǒng)中創(chuàng)建,并且不能關(guān)聯(lián)到目錄。
  • 刪除一個(gè)硬鏈接只會(huì)減少硬鏈接計(jì)數(shù),當(dāng)硬鏈接計(jì)數(shù)降為零時(shí),文件才會(huì)被真正刪除,釋放相應(yīng)的磁盤空間。
  • 什么是硬鏈接數(shù)?
  • inode編號(hào),不就是一個(gè) “指針” 的概念嗎?
  • 本質(zhì)就是改文件inode屬性中的一個(gè)計(jì)數(shù)器,count,標(biāo)識(shí)有幾個(gè)文件名和我的inode建立了映射關(guān)系。
  • 簡言之,就是有幾個(gè)文件名指向我的inode(文件本身)。
  • 硬連接的作用:
  • 路徑間切換。

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

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

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

相關(guān)文章

  • 【linux】文件系統(tǒng)+軟硬連接+動(dòng)靜態(tài)庫

    【linux】文件系統(tǒng)+軟硬連接+動(dòng)靜態(tài)庫

    自我名言 : 只有努力,才能追逐夢想,只有努力,才不會(huì)欺騙自己。 喜歡的點(diǎn)贊,收藏,關(guān)注一下把! 文件分為:被打開的文件和沒被打開的文件,前面兩篇博文主要講解的是進(jìn)程與被打開文件的關(guān)系。今天這篇博客講的是沒被打開的文件如何在磁盤上存放,文件系統(tǒng)如何

    2024年02月07日
    瀏覽(23)
  • 【看表情包學(xué)Linux】軟硬鏈接 | 軟連接數(shù) | 創(chuàng)建軟硬鏈接 | 動(dòng)靜態(tài)庫 | 生成靜態(tài)庫 | 生成動(dòng)態(tài)庫

    【看表情包學(xué)Linux】軟硬鏈接 | 軟連接數(shù) | 創(chuàng)建軟硬鏈接 | 動(dòng)靜態(tài)庫 | 生成靜態(tài)庫 | 生成動(dòng)態(tài)庫

    ?? ??? 爆笑 教程 ????《看表情包學(xué)Linux》?? ? 猛戳訂閱 ? ? ?? ?? 寫在前面: 上一章我們講解了 inode,為文件系統(tǒng)收了尾,這幾章我們充分地講解完了文件系統(tǒng)的知識(shí)點(diǎn),現(xiàn)在我們開始開始學(xué)習(xí)軟硬鏈接了。如果沒有文件系統(tǒng)的鋪墊,想直接理解軟硬鏈接難免有些困

    2024年02月14日
    瀏覽(40)
  • linux(inode)學(xué)習(xí)

    linux(inode)學(xué)習(xí)

    目錄: ????????????? 1.認(rèn)識(shí)磁盤結(jié)構(gòu) ????????????? 2.沒有被打開的文件在磁盤里是怎么保存的 ------------------------------------------------------------------------------------------------------------------------------ 如果一個(gè)文件沒有被打開,這個(gè)文件在哪里呢???? ----? 當(dāng)然在磁盤

    2024年02月05日
    瀏覽(22)
  • Linux系統(tǒng)編程:文件系統(tǒng)和inode

    Linux系統(tǒng)編程:文件系統(tǒng)和inode

    目錄 一.?磁盤的結(jié)構(gòu)和讀寫數(shù)據(jù)的方式 1.1?磁盤級(jí)文件和內(nèi)存級(jí)文件 1.2?磁盤的物理結(jié)構(gòu) 1.3?訪問磁盤數(shù)據(jù)的方式 二.?磁盤文件系統(tǒng) 2.1?磁盤的分區(qū)管理方法 2.2?文件名和inode的關(guān)系 三.?結(jié)合文件系統(tǒng)對文件創(chuàng)建和刪除的相關(guān)問題的理解 3.1?文件創(chuàng)建時(shí)操作系統(tǒng)進(jìn)行的工作

    2024年02月16日
    瀏覽(24)
  • 硬鏈接和軟鏈接以及inode的簡述【Linux】

    硬鏈接和軟鏈接以及inode的簡述【Linux】

    ??認(rèn)識(shí)inode之前,先來看一下一個(gè)文件在磁盤里面是怎么存儲(chǔ)的。 ??首先一個(gè)物理的圓盤形狀且多層的一個(gè)磁盤會(huì)被邏輯化成為一個(gè)數(shù)組,找到一個(gè)文件在這個(gè)數(shù)組里面叫做LBA尋址。 ??這個(gè)數(shù)組會(huì)被劃分為一個(gè)一個(gè)的block,所以磁盤也會(huì)被稱為塊設(shè)備。一個(gè)個(gè)的block的大

    2024年01月25日
    瀏覽(23)
  • linux之文件系統(tǒng)、inode和動(dòng)靜態(tài)庫制作和發(fā)布

    linux之文件系統(tǒng)、inode和動(dòng)靜態(tài)庫制作和發(fā)布

    1.沒有被打開的文件都在磁盤上? --- 磁盤級(jí)文件 2.對磁盤級(jí)別的文件,我們的側(cè)重點(diǎn) 單個(gè)文件角度 -- 這個(gè)文件在哪里,有多大,其他屬性是什么? 站在系統(tǒng)角度 --? 一共有多少文件?各自屬性在哪里?如何快速找到?可以存儲(chǔ)多少個(gè)文件?如何快速找到指定文件?如何對此

    2024年04月10日
    瀏覽(21)
  • Ceph入門到精通- Linux 磁盤管理(block 與 inode)

    Ceph入門到精通- Linux 磁盤管理(block 與 inode)

    1)? 硬盤的最小存儲(chǔ)單位:sector(扇區(qū)),每個(gè)扇區(qū)儲(chǔ)存 512 字節(jié);操作系統(tǒng)會(huì)一次性連續(xù)讀取多個(gè)扇區(qū),即一次性讀取多個(gè)扇區(qū)稱為一個(gè) block(塊) 2)? 文件存取的最小單位:block(塊),由多個(gè)扇區(qū)組成;block 的大小常見的有 1KB、2KB、4KB,在 linux 中常見設(shè)置為 4KB,即連

    2024年02月14日
    瀏覽(21)
  • Day11-Linux系統(tǒng)iNode及鏈接知識(shí)及企業(yè)按哪里精講

    Day11-Linux系統(tǒng)iNode及鏈接知識(shí)及企業(yè)按哪里精講

    中文意思是索引節(jié)點(diǎn)(index node) 是磁盤上的一塊【存儲(chǔ)空間】。 一個(gè)inode大小256字節(jié)。 看到形態(tài)是一個(gè)串?dāng)?shù)字(身份證)。 存儲(chǔ)文件的屬性信息(大小、用戶、組、修改時(shí)間 ls -l的信息都在里面放著)。 還存放一個(gè)重要的東西,指向文件真正實(shí)體的位置信息(指針)。 1)買回

    2024年02月20日
    瀏覽(22)
  • 【看表情包學(xué)Linux】磁盤基礎(chǔ)知識(shí) | CHS 尋址 | 邏輯扇區(qū) LBA | 索引節(jié)點(diǎn) inode | 偽刪除 inode bitmap 1→0

    【看表情包學(xué)Linux】磁盤基礎(chǔ)知識(shí) | CHS 尋址 | 邏輯扇區(qū) LBA | 索引節(jié)點(diǎn) inode | 偽刪除 inode bitmap 1→0

    ????????? ??? 爆笑 Linux? 教程: ????《看表情包學(xué)Linux》 ?? ?? ?本篇博客全站熱榜排名: 9 ?? 寫在前面: 上面我們學(xué)到的所有東西,全部都是在內(nèi)存中的。是不是所有的文件都被打開了呢?不是所有的文件,都被打開的,我們之前研究的是進(jìn)程打開的文件,

    2024年02月16日
    瀏覽(25)
  • linux(軟硬鏈接)

    linux(軟硬鏈接)

    目錄: ?????????? 1.軟連接 ?????????? 2.硬鏈接 ----------------------------------------------------------------------------------------------------------------------------- 1.軟連接 linux當(dāng)中有兩個(gè)概念,一個(gè)是軟連接,一個(gè)是硬鏈接,在學(xué)習(xí)完了文件系統(tǒng)和inode現(xiàn)在來理解這兩個(gè)概念非常簡單

    2024年02月06日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包