亚洲天堂中文字幕一区二区|亚洲精品无播放器在线播放网站|亚洲精品熟女国产国产老熟女|亚洲欧美在线人成最新按摩

        
        
      • <form id="etzky"></form>
          <td id="etzky"><tr id="etzky"></tr></td>

          到底什么是inodes ?

          時(shí)間:2022-10-03 05:29:00 電腦入門 我要投稿
          • 相關(guān)推薦

          到底什么是inodes ?

            要提到 inode 之前,我們得先來(lái)了解一下硬盤的整體構(gòu)造才行!硬盤里面有多個(gè)硬盤盤組合在一起,下面是小編收集的資料,供大家參考!

            而一個(gè)硬盤盤可以如下圖所示,硬盤盤為圓形的,其中,每一個(gè)硬盤盤上面都有個(gè)可以讀寫的磁頭( Head ),而當(dāng)這個(gè)磁頭固定住,讓硬盤盤轉(zhuǎn)一圈,那么那一個(gè)圓形的就是磁道( Track )啦,而在硬盤內(nèi)的幾個(gè)硬盤盤同半徑的那一圈的磁道總和稱為磁柱( Cylinder ),而由圓心向外畫出直線,可以得到如下圖所示,那么那一顆一顆的咚咚,就是硬盤的最小儲(chǔ)存物理量,我們稱為扇區(qū)( setctor ),一個(gè)扇區(qū)的物理量大約是 512 bytes ( 約 0.5K )。

            磁頭 ( Head ) :可擦寫的金屬磁盤;

            磁道 ( Track ) :讀寫頭轉(zhuǎn)一圈 ( 同心圓的一圈 ) 的量;

            扇區(qū) ( Sector ) :最小的物理儲(chǔ)存量。

            好了,知道了大體的硬盤構(gòu)造之后,再來(lái)談一談怎么硬盤分割( partition )呢?我們?cè)谶M(jìn)行硬盤分割的時(shí)候,最小都是以磁柱為單位進(jìn)行分割的,那么分割完成之后自然就是格式化( format )啰,在 Linux 里面我們?cè)谶M(jìn)行格式化的時(shí)候必須要考慮到 Block 與 inode 的信息,這個(gè) block 還好理解,他是我們磁盤可以記錄的最小單位,是由數(shù)個(gè) sector 所組成的,所以他的大小通常為 n*512 bytes ,例如 4K 。那么 inode 是什么? Block 是記錄『檔案內(nèi)容數(shù)據(jù)』的地區(qū),而 inode 則是記錄『該檔案的屬性、及該檔案放置在哪一個(gè) Block 之內(nèi)』的信息!所以,每個(gè)檔案都會(huì)占用到至少一個(gè) inode 。而當(dāng)我們 Linux 系統(tǒng)要找到這個(gè)檔案時(shí),他會(huì)先去搜尋 inode table 找到這個(gè)檔案的屬性及數(shù)據(jù)放置的地區(qū),然后再到數(shù)據(jù)去找到數(shù)據(jù)存放的 Block 進(jìn)而將數(shù)據(jù)取出利用。這個(gè) inode 數(shù)目在一開始就會(huì)被設(shè)定好,他的設(shè)定方式通常是利用 ( 硬盤大小 / 一個(gè)容量 ),這個(gè)容量至少應(yīng)該比 Block 要大一些較佳,例如剛剛的 Block 訂為 4K ,那么 inode 可以訂為 8K 左右。所以,一顆 1GB 的硬盤,如果以 8K 來(lái)規(guī)劃他的 inode 數(shù)時(shí),他的 inode 就會(huì)有 131072 個(gè) inode 啦!而一個(gè) inode 的大小為 128 bytes 這么大!這么一來(lái)的話,我們就可以清楚的知道了,那就是一個(gè) partition 格式化為一個(gè) filesystem 之后,基本上,他一定會(huì)有 inode table 與 data area 兩個(gè)區(qū)塊,一個(gè)用來(lái)記錄檔案的信息與該檔案放置的 block 區(qū)塊,一個(gè)用來(lái)記錄檔案的內(nèi)容!

            由于我們 Linux 在讀取數(shù)據(jù)的時(shí)候,是先查詢 inode table 以得到數(shù)據(jù)是放在那個(gè) Block 里面,然后再去該 Block 里面讀取真正的數(shù)據(jù)內(nèi)容!然后,那個(gè) block 是我們?cè)诟袷交脖P的時(shí)候規(guī)定出來(lái)的一個(gè)值,這個(gè) block 是由 2 的 n 次方個(gè) sector 所集結(jié)而成的!所以,他是 0.5K 的倍數(shù)喔!假設(shè)我們 block 規(guī)劃為 4KBytes 好了,那么由于一個(gè) inode 與一個(gè) block 最多均只紀(jì)錄一個(gè)檔案,所以,哈哈!如果你的一個(gè)檔案有 0.1 K bytes 這么大時(shí),你要曉得的是,由于你的 block 為 4K bytes ,因此,你就會(huì)有 3.9 Kbytes 的空間『浪費(fèi)掉』喔!所以,當(dāng)你在格式化硬盤的時(shí)候,請(qǐng)千萬(wàn)注意到你的系統(tǒng)未來(lái)的使用方向喔!

            當(dāng) block 越小 ( 最小為 0.5K ) 、inodes 越多,可利用空間越多,但是大檔案寫入效率較差:適合檔案數(shù)量多但是檔案容量小的系統(tǒng),例如 BBS 或者新聞群組 news 這方面的服務(wù)之系統(tǒng);

            當(dāng) block 越大 ( 最大可到 16 * 0.5K 以上 ) 、 inodes 數(shù)越少,大檔案寫入效率較佳,但浪費(fèi)的空間較多:適合檔案容量大的系統(tǒng)。

            --------------------------------------------------------------------------------

            ln

            OK!知道了什么是 inode 與他的功能之后,接著下來(lái)就要來(lái)介紹 link 這個(gè)玩意兒了!說(shuō)到 link 其實(shí)也沒有什么大不了的,說(shuō)穿了,就真的有點(diǎn)像是 Windows 的『快捷方式』一樣,不過(guò), link 的功能要好的多呦! Link 又分為 hard link 與 symbolic link 兩種方式,分別來(lái)談一談:

            Hard Links:

            剛剛說(shuō)過(guò),當(dāng)系統(tǒng)要讀取某一個(gè)檔案的時(shí)候,就會(huì)先去讀 inode table ,然后再根據(jù) inode 的信息到 block area 去將數(shù)據(jù)取出來(lái)利用!而 hard link 就是直接再建立一個(gè) inode 連結(jié)到檔案放置的 block 區(qū)塊。也就是說(shuō),進(jìn)行 hard link 的時(shí)候,實(shí)際上,你的檔案內(nèi)容不會(huì)改變,只是你在查詢的時(shí)候,利用原來(lái)的 inode 與后來(lái)的 inode 均可被指定到該檔案放置的地點(diǎn),因此兩個(gè)檔案的內(nèi)容會(huì)是一樣的!所以讀取任何一個(gè) inode 的結(jié)果都是存取在同一個(gè)檔案的內(nèi)容就是了。不過(guò),這樣一來(lái)就有個(gè)問(wèn)題啦,因?yàn)?inode 是會(huì)連結(jié)到 block 區(qū)域去的,而『目錄』本身僅消耗 inode 而已,那么一來(lái)的話, hard link 不就不能 link 目錄啦?對(duì)的!沒錯(cuò)! Hard link 有兩個(gè)最大的限制:

            不能跨 filesystem ,因?yàn)椴煌?filesystem 有不同的 inode table 嘛!

            不能 link 目錄!

            Symbolic Links:

            相對(duì)于 hard link , Symbolic link 可就好理解多了,基本上,他就是在建立一個(gè)獨(dú)立的檔案,而這個(gè)檔案會(huì)讓數(shù)據(jù)讀取指向他 link 的那個(gè)檔案內(nèi)容!由于只是利用檔案來(lái)做為指向的動(dòng)作,所以,當(dāng)來(lái)源檔被刪除之后,symbolic link 的檔案會(huì)『開不了』,會(huì)一直說(shuō)『無(wú)法開啟某檔案!』

            所以,看樣子,似乎 hard link 比較安全,因?yàn)榧词鼓骋粋(gè) inode 被殺掉了,只要有任何一個(gè) inode 存在,那么該檔案就不會(huì)不見!不過(guò),不幸的是,由于 Hard Link 的限制太多了,包括無(wú)法做『目錄』的 link ,所以在用途上面是比較受限的!反而是 Symbolic Link 的使用方向較廣喔!好了,說(shuō)的天花亂墜,看您也差不多快要昏倒了!沒關(guān)系,實(shí)作一下就知道怎么回事了!

            特別留意,底下的案例中,我們是將系統(tǒng)的設(shè)定文件 copy 到 /root/test 底下進(jìn)行測(cè)試用的,請(qǐng)不要在 /etc/ 底下做,未來(lái)我們的工作目錄都會(huì)在 /root/test 底下進(jìn)行,這有個(gè)好處,是可以讓您清楚的知道,這是用來(lái) test 用的啦!

            語(yǔ)法: [root @test /root ]# ln [-s] [來(lái)源檔] [目的檔]

            參數(shù)說(shuō)明:

            -s :提供連結(jié)檔的連結(jié)!如果直接以 ln 不加任何參數(shù)的話,那么就屬于 hard link 啰!

            范例:

            [root @test /root]# mkdir test

            [root @test /root]# cd test

            [root @test /test]# cp /usr/bin/passwd .

            0. 原本的信息:

            [root @test /test]# ll

            -rw-r--r-- 1 root root 13476 Jun 26 11:31 passwd

            [root @test /test]# du -k <==查看該目錄下的占用硬盤空間

            20

            1. Hard Link 信息:

            [root @test /test]# ln passwd passwd-hard

            [root @test /test]# ll

            total 32

            -rw-r--r-- 2 root root 13476 Jun 26 11:31 passwd

            -rw-r--r-- 2 root root 13476 Jun 26 11:31 passwd-hard

            注意看,上面那個(gè)數(shù)字變成 2 啰!這就是占用掉 inodes 啰!

            [root @test /test]# du -k

            20 <==注意看,容量并沒有變大!因?yàn)槭?link 檔案呀!

            2. Symbolic Link 信息:

            [root @test /test]# ln -s passwd passwd-soft; ll

            -rw-r--r-- 2 root root 13476 Jun 26 11:31 passwd

            -rw-r--r-- 2 root root 13476 Jun 26 11:31 passwd-hard

            lrwxrwxrwx 1 root root 6 Jun 26 11:37 passwd-sofe -> passwd

            注意啰!該 Symbolic Link 的檔案是有容量的呦!

            注意啰, passwd-soft 會(huì)指到另外一個(gè)檔案去,而且,最前面屬性顯示 l ,

            此外,他是一個(gè)獨(dú)立的檔案!先殺掉 passwd 后,我們分別 more 一下內(nèi)容:

            3. 用 more 來(lái)試試看是怎樣?!

            [root @test test]# rm passwd

            rm: remove regular file `passwd'? y

            [root @test test]# more passwd-hard

            ………(正常顯示)

            [root @test test]# more passwd-soft

            passwd-soft: No such file or directory

            說(shuō)明:

            要注意啰!如果不加任何參數(shù)的話,那么就是 Hard Link 啰!如同上面的情況,增加了 hard link 之后,可以發(fā)現(xiàn) link 那一欄屬性增加了!而如果這個(gè)時(shí)候砍掉 passwd 會(huì)發(fā)生什么事情呢?呵呵! passwd-hard 的內(nèi)容還是會(huì)跟原來(lái) passwd 相同,但是 passwd-soft 就會(huì)找不到該檔案啦!就是這樣!了解了嗎?!還有,跟 cp 也不一樣呦!因?yàn)殡m然 Hard Link 的檔案看起來(lái)是有容量的,但是基本上還是指向原來(lái)的檔案,所以啰,整體容量是沒有增大的啦!

            而如果使用 -s 的參數(shù)時(shí),就做成差不多是 Windows 底下的『快捷方式』的意思(Symbolic Link,較常用!)不過(guò),需要特別注意的是, Linux 的 link 與 Windows 的快捷方式是不一樣的東西!舉個(gè)例子說(shuō),當(dāng)你在 Windows 建立一個(gè)快捷方式時(shí),你可以在這個(gè)快捷方式內(nèi)修改任何數(shù)據(jù),而你的原始數(shù)據(jù)并不會(huì)跟著變!不過(guò),當(dāng)你修改 Linux 下的 link 檔案時(shí),則更動(dòng)的其實(shí)是『原始檔』,呵呵,所以不論你的這個(gè)原始檔被連結(jié)到哪里去,只要你修改了連結(jié)檔,呵呵!原始檔就跟著變啰!以上面為例,由于你使用 -s 的參數(shù)建立一個(gè)名為 passwd-soft 的檔案,則你修改 passwd-soft 時(shí),其內(nèi)容與 passwd 完全相同,并且,當(dāng)你按下儲(chǔ)存之后,被改變的將是 passwd 這個(gè)檔案!

            此外,如果你做了底下這樣的連結(jié):

            ln –s /bin /root/bin

            那么如果你進(jìn)入 /root/bin 這個(gè)目錄下,『請(qǐng)注意呦!該目錄其實(shí)是 /bin 這個(gè)目錄,因?yàn)槟阕隽诉B結(jié)檔了!』所以,如果你進(jìn)入 /root/bin 這個(gè)剛剛建立的連結(jié)目錄,并且將其中的數(shù)據(jù)殺掉時(shí),嗯! /bin 里面的數(shù)據(jù)就通通不見了!這點(diǎn)請(qǐng)千萬(wàn)注意!并不是 /root 底下的資料都是 root 的!還需要注意一下該屬性才行!

            基本上, Symbolic link 的用途比較廣,所以您要特別留意 symbolic link 的用法呢!未來(lái)一定還會(huì)常常用到的啦!

          【到底什么是inodes ?】相關(guān)文章:

          我到底更像個(gè)什么詩(shī)歌10-24

          幸福到底是什么作文08-27

          你到底在焦慮什么哲理故事10-27

          到底的同義詞是什么呢07-20

          我們到底需要什么高中作文800字10-20

          友誼到底是什么的作文00字10-22

          以信任為話題的作文:信任到底是什么?06-25

          她到底在笑什么的幽默小故事10-24

          堅(jiān)持到底作文11-10

          堅(jiān)持到底作文11-14