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

【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題

這篇具有很好參考價(jià)值的文章主要介紹了【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

一、 簡單理解文件系統(tǒng)

我們接下來以磁盤舉例:
文件=文件內(nèi)容+文件屬性
Linux中文件內(nèi)容與屬性是分開存儲(chǔ)的。
文件內(nèi)容:在數(shù)據(jù)塊中存著
文件屬性:在inode中存著

【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java

【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java

Block Group:ext2文件系統(tǒng)會(huì)根據(jù)分區(qū)的大小劃分為數(shù)個(gè)Block Group。而每個(gè)Block Group都有著相同的結(jié)構(gòu)組成。政府管理各區(qū)的例子

超級(jí)塊(Super Block):存放文件系統(tǒng)本身的結(jié)構(gòu)信息。記錄的信息主要有:bolck 和 inode的總量,未使用的block和inode的數(shù)量,一個(gè)block和inode的大小,最近一次掛載的時(shí)間,最近一次寫入數(shù)據(jù)的時(shí)間,最近一次檢驗(yàn)磁盤的時(shí)間等其他文件系統(tǒng)的相關(guān)信息。 Super Block的信息被破壞,可以說整個(gè)文件系統(tǒng)結(jié)構(gòu)就被破壞了

GDT,Group Descriptor Table:塊組描述符,描述塊組屬性信息

塊位圖(Block Bitmap):Block Bitmap中記錄著Data Block中哪個(gè)數(shù)據(jù)塊已經(jīng)被占用,哪個(gè)數(shù)據(jù)塊沒有被占用

inode位圖(inode Bitmap):每個(gè)bit表示一個(gè)inode是否空閑可用。

i節(jié)點(diǎn)表:存放文件屬性 如文件大小,所有者,最近修改時(shí)間等

數(shù)據(jù)區(qū):存放文件內(nèi)容

Linux系統(tǒng)中,一個(gè)文件,一個(gè)inode,每一個(gè)inode都有自己的inode編號(hào)是唯一的(inode的設(shè)置是以分區(qū)為單位的,也就是1號(hào)分區(qū)inode編號(hào)從1到500,2號(hào)分區(qū)也是1到500,分區(qū)之間編號(hào)互不影響),inode為一個(gè)結(jié)構(gòu)體,里面存著文件的所有屬性,文件名并不屬于inode屬性

格式化:
每一個(gè)分區(qū)在被使用之前,都必須提前先將部分文件系統(tǒng)的屬性信息提前設(shè)置進(jìn)對(duì)應(yīng)的分區(qū)當(dāng)中(也就是劃分好Block Group ,GDT,inode位圖等),方便我們后續(xù)使用這個(gè)分區(qū)或者分組

二、文件操作具體步驟

【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java

1.新建文件

首先會(huì)分配到一個(gè)空余的分組中,在分組中通過GDT來判斷是否有剩余的位置放入,在inodeBitmap中查找最近的沒有使用的下標(biāo),將其從0置為1,之后用這個(gè)inode編號(hào)去inodeTable中這到這個(gè)位置,將自己的信息(大小,修改時(shí)間之類的)寫入到struct inode結(jié)構(gòu)體中,文件就完成了創(chuàng)建

如果要寫入數(shù)據(jù),首先判斷要寫入數(shù)據(jù)大小需要幾個(gè)數(shù)據(jù)塊大小,之后根據(jù)BlockBitmap在位圖中找到未使用的數(shù)據(jù)塊,之后將其置為1,把塊號(hào)填到inode中block數(shù)組對(duì)應(yīng)的位置,之后到DataBlock中寫入數(shù)據(jù)

刪除=允許被覆蓋,可以提高系統(tǒng)效率

2.刪除文件

我們根據(jù)我們當(dāng)前文件所處的目錄確定我們屬于哪個(gè)分區(qū)的,根據(jù)文件inode大小確定我們是哪個(gè)分組的,通過inode編號(hào)找到我們對(duì)應(yīng)inode的屬性,根據(jù)屬性中blocks數(shù)組的內(nèi)容,去BlockBitmap中將對(duì)應(yīng)位置的置為0,之后再將inode編號(hào)的位置在inodeBitmap中置為0

3.查找文件

我們根據(jù)我們當(dāng)前文件所處的目錄確定我們屬于哪個(gè)分區(qū)的,根據(jù)文件inode大小確定我們是哪個(gè)分組的,通過inode編號(hào)在inodeTable中找到我們對(duì)應(yīng)inode的屬性,根據(jù)inode結(jié)構(gòu)體里面block數(shù)組去對(duì)應(yīng)的位置DataBlock找數(shù)據(jù),將對(duì)應(yīng)塊載入內(nèi)存,雖然我們載入了整個(gè)塊大小的數(shù)據(jù),但我會(huì)根據(jù)我當(dāng)前文件大小來在塊中讀取對(duì)應(yīng)字節(jié)的數(shù)據(jù)

三、目錄的重新理解

文件那些操作的前提都是基于我們有文件的inode編號(hào),但我怎么獲得我們inode編號(hào)呢?我們平時(shí)都是直接用文件名進(jìn)行操作的。

【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java

首先目錄也是文件,Linux系統(tǒng)下一切且文件,所以我目錄也有自己的屬性+內(nèi)容,也需要數(shù)據(jù)塊來存儲(chǔ)數(shù)據(jù)。
問:目錄里存放的是什么?
答:存放的是文件名與文件名其inode編號(hào)的映射關(guān)系。

問:既然這樣那我又是怎么獲得目錄的inode編號(hào)呢?我們得先知道目錄的inode編號(hào)讀取其數(shù)據(jù)內(nèi)容才能獲得文件名與inode編號(hào)?。。?!
答:我們會(huì)一路向上遞歸到根目錄,根目錄的位置是確定的,inode編號(hào)也是確定的,我們根據(jù)根目錄中存的數(shù)據(jù),找到目錄和inode的對(duì)應(yīng)關(guān)系

1.目錄下沒有w權(quán)限,無法對(duì)其下的文件進(jìn)行創(chuàng)建與刪除

因?yàn)榧幢阄覀儼盐募?chuàng)建出來,文件名與inode的映射關(guān)系,我們沒有w權(quán)限,我們就無法將這個(gè)關(guān)系存入目錄的數(shù)據(jù)當(dāng)中。

2.目錄下沒有r權(quán)限,無法對(duì)其下的文件進(jìn)行查看

我們要先獲得文件的inode編號(hào),才能去對(duì)應(yīng)數(shù)據(jù)塊中找文件的數(shù)據(jù),但現(xiàn)在目錄都不讓我讀啊!我都沒辦法獲取到文件的inode編號(hào),拿什么去讀文件?

3.目錄下沒有x權(quán)限,無法進(jìn)入這個(gè)目錄

進(jìn)入目錄,就是cd進(jìn)去, 將系統(tǒng)的環(huán)境變量做更新,給當(dāng)前路徑做更新,并給目錄信息做更新,但沒有x權(quán)限我們就無法執(zhí)行這一操作。

四、軟鏈接

軟鏈接是一個(gè)獨(dú)立的文件,有一個(gè)獨(dú)立的inode,也有獨(dú)立的數(shù)據(jù)塊,他的數(shù)據(jù)塊中保存的是指向文件的路徑(相當(dāng)于windows中的快捷方式)

命令:ln -s 要鏈接的文件名 創(chuàng)建的軟鏈接文件名
【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java
因?yàn)檐涙溄又写嬷溄游募穆窂?,所以我們可以選擇將我們的軟鏈接文件放入可執(zhí)行文件的目錄/usr/bin
``
這樣我們就可以以直接執(zhí)行我們自己寫的可執(zhí)行程序了
【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java
【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java

五、硬鏈接

硬鏈接不是一個(gè)獨(dú)立的文件,因?yàn)槠錄]有獨(dú)立的inode編號(hào),所謂建立硬鏈接,本質(zhì)其實(shí)是在特定目錄的數(shù)據(jù)塊中新增文件名和指向文件名inode編號(hào)的映射關(guān)系(相當(dāng)于取別名)

命令:ln 要鏈接的文件名 創(chuàng)建的硬鏈接文件名

每個(gè)inode內(nèi)部都有一個(gè)引用計(jì)數(shù)器(記錄有多少個(gè)文件指向我)
【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java
【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java
【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java

1.Linux不允許目錄建立硬鏈接,會(huì)造成閉環(huán)問題

【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java

我們假設(shè)可以創(chuàng)建目錄硬鏈接
【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題,linux,服務(wù)器,java文章來源地址http://www.zghlxwxcb.cn/news/detail-752443.html

到了這里,關(guān)于【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?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)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • Linux文件系列:磁盤,文件系統(tǒng),軟硬鏈接

    Linux文件系列:磁盤,文件系統(tǒng),軟硬鏈接

    我們之前所學(xué)的都是被進(jìn)程打開了的文件,接下來我們要學(xué)習(xí)沒有被進(jìn)程所打開的文件,它們是存儲(chǔ)在磁盤當(dāng)中的 要學(xué)習(xí)這些文件,首先我們要先學(xué)習(xí)一下磁盤 1.LBA地址 我們知道磁帶在展開之后呈現(xiàn)一種帶狀結(jié)構(gòu),磁帶中的數(shù)據(jù)就是以這種線性的方式進(jìn)行存儲(chǔ)的 那么我們可不可以

    2024年03月27日
    瀏覽(20)
  • Linux之文件系統(tǒng)與軟硬鏈接

    Linux之文件系統(tǒng)與軟硬鏈接

    目錄 一、磁盤 1、磁盤的物理結(jié)構(gòu) 2、磁盤的存儲(chǔ)結(jié)構(gòu) 3、磁盤的抽象結(jié)構(gòu) 二、文件系統(tǒng)與inode 1、初識(shí)inode 2、文件系統(tǒng) 3、用inode編號(hào)找文件屬性和內(nèi)容 4、inode和文件名的關(guān)系 5、創(chuàng)建一個(gè)文件 6、查看一個(gè)文件 7、刪除一個(gè)文件 三、軟硬鏈接 1、軟連接 2、硬鏈接 磁盤可以存

    2024年02月03日
    瀏覽(22)
  • 【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)有被打開和沒有被打開,之前談到一個(gè)文件被進(jìn)行讀寫,就要打開加載到內(nèi)存中,通過對(duì)應(yīng)的系統(tǒng)調(diào)用,fd文件描述符的管理,write和read等函數(shù)的增刪查改。并且借助緩沖區(qū)對(duì)文件屬性和內(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】基礎(chǔ)IO——文件系統(tǒng)|軟硬鏈接|動(dòng)靜態(tài)庫

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

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

    2024年02月04日
    瀏覽(21)
  • 硬鏈接和軟鏈接以及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】—— 強(qiáng)大的命令行工具 P.13(文件系統(tǒng) | 軟硬鏈接 | 動(dòng)態(tài)庫和靜態(tài)庫)

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

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

    2024年02月04日
    瀏覽(21)
  • 【Linux】inode軟硬連接

    【Linux】inode軟硬連接

    本章我們將學(xué)習(xí)學(xué)習(xí)認(rèn)識(shí)一下磁盤的的物理結(jié)構(gòu),理解磁盤分區(qū)分塊,如何對(duì)區(qū)塊進(jìn)行管理。學(xué)習(xí)認(rèn)識(shí)inode和軟硬連接。目標(biāo)已經(jīng)確定,接下來就要搬好小板凳,準(zhǔn)備開講了…???????? 前面我們學(xué)到的所有的東西,全部都是在內(nèi)存中。但是并不是所有的文件都被打開了。

    2024年02月16日
    瀏覽(17)
  • 文件系統(tǒng)和軟硬鏈接

    文件系統(tǒng)和軟硬鏈接

    文件操作就是進(jìn)程和被打開文件之間的關(guān)系,但是操作系統(tǒng)不可能同時(shí)將磁盤中的所有文件打開。被打開的文件要被管理起來,沒有被打開的文件為了方便我們隨時(shí)去讀取也要被管理起來。 1.了解磁盤的物理結(jié)構(gòu) 磁盤是計(jì)算機(jī)中幾乎唯一 一個(gè)機(jī)械設(shè)備并且是一個(gè)外設(shè),它的

    2024年02月01日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包