雖然Unix操作系統(tǒng)要比Windwos系統(tǒng)要穩(wěn)定 。但是Unix操作系統(tǒng)有時候也會有鬧脾氣罷工的時候 。這主要是因為Unix操作系統(tǒng)中inode塊與超級塊在作怪 。那么這兩個塊在Unix操作系統(tǒng)中到底占據(jù)了什么位置呢?
一、inode塊,Unix文件的核心 。
首先需要明白的是,在Unix操作系統(tǒng)中的任何資源都被當作文件來管理 。如目錄、光驅(qū)、終端設(shè)備等等,都被當作是一種文件 。從這方面來說,Unix操作系統(tǒng)中的所有的目錄、硬件設(shè)備跟普通文件一樣,具有共同的屬性 。而這些屬性的話,就是保存在inode塊中 。
Inode塊中保存了一個文件系統(tǒng)中的全部Inode節(jié)點 。也就是說,當系統(tǒng)創(chuàng)建了一個文件(或者添加了一個新設(shè)備)時,系統(tǒng)就會從這個塊中給這個文件分配一個Inode結(jié)點 。在這個結(jié)點中存儲了這個文件的大部分屬性,如創(chuàng)建、修改時間等等 。但是需要注意的是,有兩個屬性不包含在這個inode結(jié)點中,分別為文件名與結(jié)點號 。這主要是因為inode節(jié)點按順序排列,所以系統(tǒng)內(nèi)核就可以采用簡單的算法,就可以得出inode節(jié)點號 。通過系統(tǒng)提供的ls命令顯示文件或者目錄信息的時候,就需要用到這個結(jié)點中的信息 。Ls命令為了確定一個文件的Inode節(jié)點需要查找它所在的目錄,然后讀取它的Inode 結(jié)點,并根據(jù)inode節(jié)點得到文件的屬性 。正常情況下,這個節(jié)點號不會出現(xiàn)什么問題 。但是如果由于意外斷電或者其他原因的話,有可能會發(fā)生一些故障 。如可能一個inode結(jié)點在系統(tǒng)中已經(jīng)被創(chuàng)建,但是其沒有被正常使用,或者可能塊號超出了范圍 。這些故障會給操作系統(tǒng)留下安全隱患 。為此當出現(xiàn)意外關(guān)機或者其他意外事件時,最好系統(tǒng)工程師能夠利用fsck系統(tǒng)命令來修復(fù)inode結(jié)點中的錯誤 。
【深度解析Unix中inode塊與超級塊】另外需要注意的是,在inode結(jié)點中還存儲著一個重要的信息,就是保存了一個包含13-15位指針元素的數(shù)組,這些指針是磁盤塊區(qū)的地址 。這些指針非常的重要 。操作系統(tǒng)就是依靠這些指針在硬盤上定位相關(guān)的文件,并讀取它 。如上所述,因為一些意外的操作也會使得這個指針地址出現(xiàn)錯誤 。有時候這會非常的嚴重 。如一些文件無法讀取等等 。如果這些文件不幸的是系統(tǒng)的一些配置文件,那么就會導(dǎo)致系統(tǒng)的崩潰 。如果這些指針地址出現(xiàn)錯誤,則文件名仍然會顯示在操作系統(tǒng)中 。但是如果用戶試著去打開這些文件時,系統(tǒng)卻會告知無法打開這些文件 。如果遇到這種情況該這么辦呢?此時系統(tǒng)工程師就需要手工運行fsck命令 。如果這個文件損壞的不是很嚴重,那么操作系統(tǒng)內(nèi)內(nèi)核會為其再建立一個鏈接 。但是如果原文件損壞的比較厲害了,無法再重新讀取 。則系統(tǒng)會建立用戶刪除這個文件(從硬盤中刪除) 。
由于一些文件的屬性(如建立修改時間等等)都保存在Inode結(jié)點中,為此一些命令在獲取這些屬性的時候,是不需要打開文件的 。如現(xiàn)在系統(tǒng)工程師在編寫一個文件備份程序,就需要用到inode節(jié)點中的修改時間截這個屬性 。此時可以利用相關(guān)的命令直接從inode結(jié)點中去獲取,而不需要打開對應(yīng)的文件去得知這個信息 。為此在Unix操作系統(tǒng)中文件備份程序的執(zhí)行效率會比較高,實現(xiàn)起來也相對簡單一點 。
從上面的這些分析中可以看到,inode結(jié)點是Unix操作系統(tǒng)中文件的核心,也是操作系統(tǒng)與硬盤中存儲的數(shù)據(jù)打交道的一個中介者 。如果這個結(jié)點信息出現(xiàn)錯誤的話,那么硬盤中存儲的數(shù)據(jù)塊就好像是無主的流浪者,無法被用戶所采用 。另外我們平時刪除文件,其實只是刪除了這個聯(lián)系 。所以通過一線恢復(fù)工具仍然可以恢復(fù)被刪除了的文件 。如果需要真正刪除文件的話,就需要格式化硬盤(低格)或者復(fù)制大文件把其覆蓋掉 。只有如此硬盤中存儲的數(shù)據(jù)塊才會被真正的刪除掉 。最后需要說明的是,按照正常的關(guān)機程序來關(guān)閉Unix操作系統(tǒng),是保護inode結(jié)點信息的最好措施 。突然斷電或者其他意外事故,是inode結(jié)點的最大殺手 。
推薦閱讀
- unix口令文件介紹
- simp server for unix 配置教程
- 標準化您的 UNIX 命令行工具
- UNIX 高手的10 個習(xí)慣
- UNIX 目標文件初探
- 口令篇 UNIX操作系統(tǒng)的安全命令集
- 進行類Unix小型機系統(tǒng)管理的八項注意
- 類UNIX系統(tǒng)基礎(chǔ):文件安全與權(quán)限
- 在SCO Unix系統(tǒng)中實現(xiàn)業(yè)務(wù)數(shù)據(jù)的自動備份
- 構(gòu)建SCO UNIX下的郵件系統(tǒng)
