av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

深度解析Unix中inode塊與超級塊

瀏覽:83日期:2024-06-15 09:26:37

雖然Unix操作系統要比Windwos系統要穩定。但是Unix操作系統有時候也會有鬧脾氣罷工的時候。這主要是因為Unix操作系統中inode塊與超級塊在作怪。那么這兩個塊在Unix操作系統中到底占據了什么位置呢?

一、inode塊,Unix文件的核心。

首先需要明白的是,在Unix操作系統中的任何資源都被當作文件來管理。如目錄、光驅、終端設備等等,都被當作是一種文件。從這方面來說,Unix操作系統中的所有的目錄、硬件設備跟普通文件一樣,具有共同的屬性。而這些屬性的話,就是保存在inode塊中。

Inode塊中保存了一個文件系統中的全部Inode節點。也就是說,當系統創建了一個文件(或者添加了一個新設備)時,系統就會從這個塊中給這個文件分配一個Inode結點。在這個結點中存儲了這個文件的大部分屬性,如創建、修改時間等等。但是需要注意的是,有兩個屬性不包含在這個inode結點中,分別為文件名與結點號。這主要是因為inode節點按順序排列,所以系統內核就可以采用簡單的算法,就可以得出inode節點號。通過系統提供的ls命令顯示文件或者目錄信息的時候,就需要用到這個結點中的信息。Ls命令為了確定一個文件的Inode節點需要查找它所在的目錄,然后讀取它的Inode 結點,并根據inode節點得到文件的屬性。正常情況下,這個節點號不會出現什么問題。但是如果由于意外斷電或者其他原因的話,有可能會發生一些故障。如可能一個inode結點在系統中已經被創建,但是其沒有被正常使用,或者可能塊號超出了范圍。這些故障會給操作系統留下安全隱患。為此當出現意外關機或者其他意外事件時,最好系統工程師能夠利用fsck系統命令來修復inode結點中的錯誤。

另外需要注意的是,在inode結點中還存儲著一個重要的信息,就是保存了一個包含13-15位指針元素的數組,這些指針是磁盤塊區的地址。這些指針非常的重要。操作系統就是依靠這些指針在硬盤上定位相關的文件,并讀取它。如上所述,因為一些意外的操作也會使得這個指針地址出現錯誤。有時候這會非常的嚴重。如一些文件無法讀取等等。如果這些文件不幸的是系統的一些配置文件,那么就會導致系統的崩潰。如果這些指針地址出現錯誤,則文件名仍然會顯示在操作系統中。但是如果用戶試著去打開這些文件時,系統卻會告知無法打開這些文件。如果遇到這種情況該這么辦呢?此時系統工程師就需要手工運行fsck命令。如果這個文件損壞的不是很嚴重,那么操作系統內內核會為其再建立一個鏈接。但是如果原文件損壞的比較厲害了,無法再重新讀取。則系統會建立用戶刪除這個文件(從硬盤中刪除)。

由于一些文件的屬性(如建立修改時間等等)都保存在Inode結點中,為此一些命令在獲取這些屬性的時候,是不需要打開文件的。如現在系統工程師在編寫一個文件備份程序,就需要用到inode節點中的修改時間截這個屬性。此時可以利用相關的命令直接從inode結點中去獲取,而不需要打開對應的文件去得知這個信息。為此在Unix操作系統中文件備份程序的執行效率會比較高,實現起來也相對簡單一點。

從上面的這些分析中可以看到,inode結點是Unix操作系統中文件的核心,也是操作系統與硬盤中存儲的數據打交道的一個中介者。如果這個結點信息出現錯誤的話,那么硬盤中存儲的數據塊就好像是無主的流浪者,無法被用戶所采用。另外我們平時刪除文件,其實只是刪除了這個聯系。所以通過一線恢復工具仍然可以恢復被刪除了的文件。如果需要真正刪除文件的話,就需要格式化硬盤(低格)或者復制大文件把其覆蓋掉。只有如此硬盤中存儲的數據塊才會被真正的刪除掉。最后需要說明的是,按照正常的關機程序來關閉Unix操作系統,是保護inode結點信息的最好措施。突然斷電或者其他意外事故,是inode結點的最大殺手。

二、超級塊,文件系統的心臟。

如果說inode塊是Unix操作系統中文件的核心,那么超級塊就是文件系統的心臟。啟動Unix操作系統后,發現某個文件系統無法使用,很有可能就是超級塊出現了問題。為什么這個超級塊有這么大的作用呢?主要是因為在超級塊中保存了全局文件信息,如硬盤已用空間、數據塊可用空間、inode結點信息等等。做一個形象的比喻,這個超級塊就好像是企業的資產負債表,一個文件系統中有哪些資源都記錄在這個表中。

當操作系統啟動后,系統內核會把超級塊中的內容復制到內存中,并周期性的利用內存里的最新內容去更新硬盤上的超級塊中的內容。由于這個更新存在一個時間差,為此內存中的超級塊信息與硬盤中的超級塊信息往往只有在開機與關機的某個特定時刻是同步的;而在其他時間都是不同步的。假設當操作系統意外當機或者因為斷電而造成的意外事故時,內存中的超級塊信息沒有及時保存到硬盤中,此時文件系統的完整性就會受到破壞。輕者導致剛建立的丟失,重則的話會導致文件系統癱瘓。遇到這種情況時,系統工程師往往需要利用系統提供的sync命令在系統出現故障的那一刻把內存里的內容復制到磁盤上。這個過程往往操作系統會自動完成,這也正是因為為什么Unix操作系統要比Windows操作系統穩定的一個重要原因。當操作系統重新啟動的過程中,系統內核會對兩者進行比較,根據他們之間的差異,給文件系統打上干凈或者臟的標簽。這個信息也是存儲在文件系統的超級塊中。

可見超級塊如果發生損壞的話,對于文件系統的破壞性非常的大。輕者的話導致某個文件系統無法掛載,重則的話導致整個操作系統崩潰。在Unix操作系統中,除了可以利用sync命令來保證硬盤上的內容決不會比內存里的內容更新之外,還提供了一個很有利的措施來保證其的安全性。其實,這個技術很早就有,只是一開始并沒有用在超級塊的管理中。這個技術就是跟磁盤陣列類似。操作系統會將多個超級塊內容保存到硬盤中的不同區域。當其中一個超級塊出現問題時,操作系統會自動采用另外一個超級塊。等到系統運行正常后,系統內容就會把可用的超級塊去替換那個故障的超級塊。為此除非所有的超級塊都損壞了,否則的話,只要有一個超級塊是可用的,那么文件系統與操作系統就可以正常掛載與啟動。這種安全機制在很大程度上提高了超級塊的安全性,系統了Unix操作系統的穩定性。現在大部分的Unix操作系統(包括Linux操作系統)已經實現了類似的安全機制。

另外系統工程師需要了解在超級塊中到底保存了哪些信息。這對于以后遇到問題時查找問題原因有一定的故障。根據筆者的了解,在超級塊中保存了如下有用的信息。一是保存了文件系統的大小以及所用酷塊的大小;二是保存了可用數據庫的數量和部分可以及時分配的空閑數據塊列表;三是最近一次的更新時間與文件系統的狀態;四是空閑Inode結點的個數和部分可以及時使用的inode結點列表。有時候在Unix操作系統上進行應用程序開發也需要用到這些信息。

最后筆者需要強調一點,超級塊損壞的最大殺手仍然是意外斷電或者其他原因的意外當機。因為此時內存中的超級塊信息無法及時更新到硬盤中。為此就出現了內存與超級塊中內容不一致的地方,從而會導致系統啟動時的一系列故障。為此在Unix服務器上部署一個UPS是非常重要的。這雖然是一個老生常談的方法,但是卻非常有效。

標簽: Unix系統
主站蜘蛛池模板: 亚洲网一区 | 在线天堂免费中文字幕视频 | 第一av| 91久久久久久 | 看av网| 亚洲精视频| www国产成人免费观看视频 | 91最新在线视频 | 精品91久久 | 久久一区二区三区四区 | 欧美激情啪啪 | 国产精品99久久久久久动医院 | 国产亚洲欧美另类一区二区三区 | 国产福利小视频 | 久久国产精品一区二区三区 | 中文字幕不卡视频在线观看 | 国产日韩欧美 | 国产精品久久久久久久久久久免费看 | 91免费观看在线 | 国产午夜精品一区二区三区四区 | 日韩中文视频 | 国产日韩欧美一区二区 | 亚洲精品乱码久久久久久9色 | 最近最新中文字幕 | 免费一级片 | 日本中文字幕一区 | 国产在线一区二区三区 | 国产精品毛片无码 | a视频在线观看 | 91欧美激情一区二区三区成人 | 91精品一区二区三区久久久久 | 一区二区三区日韩精品 | 久久久精彩视频 | 成人免费看黄网站在线观看 | 欧美精品在线一区 | 亚洲国产一区二区三区在线观看 | www.操.com| 亚洲午夜在线 | 精品国产欧美一区二区三区成人 | 日韩精品国产精品 | 韩日在线视频 |