虛擬機器概論(五) IBM虛擬機器模型

2021-03-31 18:57:48 字數 2811 閱讀 8634

ibm虛擬機器模型

ibm模型中,每個虛擬機器都是真正機器的完整拷貝,只是記憶體少了點。

ibm(international business machines)版的虛擬機器是現在仍然在使用的主流虛擬機器之一。在ibm模型中,每乙個虛擬機器都是一台真正機器的完整拷貝,只是記憶體少了點。根據這一概念,乙個功能強大的大型主機可以被分割成許多虛擬機器。這些虛擬機器僅比原來的主機少一點資源而已。

ibm的虛擬機器版本和其他虛擬機器流派類似,因為它也是提供功能對映的服務。這意味著虛擬機器負責解釋虛擬指令,並把它們對映為實際的機器指令。對於ibm流派的虛擬機器而言,這種指令的對映基本上是一種一一對映。這意味著一條虛擬指令僅僅與一條實際指令對應,並完成一條實際指令的工作。從本質上講,使用者實際上就是在訪問並執行機器的指令。

現在,你可能感到很疑惑:如果ibm vm作業系統實際上是把實際機器的所有功能都給了使用者,那麼它如何保證安全性呢?安全性也是通過對映來實現的。只要阻止或限制乙個認為敏感的特定指令集就可以了,例如那些試圖訪問處理器儲存器(暫存器)的指令。如果允許訪問這類指令,就等於允許使用者直接修改實際的機器,從而改變其它正在執行的虛擬機器。如果這種情況允許發生,那麼每個使用者的虛擬機器就不是完全無關的了,並可能因此破壞其他使用者的環境。

本質上講,ibm vm系統直接執行所有非敏感指令,同時截獲敏感指令。當機器截獲這些敏感指令以後,它會試著模擬出預期的操作,以使使用者不會察覺他們試圖進行一次非法操作。如果可能的話,vm系統為敏感指令提供一種虛擬執行,從而為使用者提供所有他們希望的功能,而同時還要維護os/370硬體的系統完整性。所有這些功能都由執行在硬體上的虛擬作業系統提供。

它是如何工作的?

因此,ibm虛擬機器系統不僅允許共享資源,而且保護了系統資源。

虛擬機器作業系統是整個ibm虛擬機器體系結構的「大腦」。包括作業系統和硬體在內的整個系統被稱作虛擬機器系統(vm system)。每個虛擬機器系統都被乙個叫做控制程式的程式控制。控制程式除了管理實際的物理硬體,還要為每個系統使用者建立乙個虛擬機器,這種虛擬機器是370系統或390系統的全真模擬。ibm虛擬機器概念的重點在於:每個使用者都可以在他們的虛擬機器上執行程式,儲存資料,甚至使虛擬機器崩潰,這不會影響虛擬機器系統本身和其他的系統使用者。所以,ibm虛擬機器模型不僅允許資源共享,而且實現了系統資源的保護。

控制程式實際實際上直接執行在主機硬體上,是虛擬機器系統中最重要的一部分。控制程式要管理系統硬體,包括啟動和關機在內的系統支援任務,以及請求的排隊和執行。同時控制程式還要管理每個虛擬機器的程式設計特徵和每個虛擬機器的建立和維護。

除了控制程式以外,另乙個和虛擬機器系統使用者互動的重要元件就是會話監視系統(conversational monitor system,cms)。這個稱呼聽起來有點複雜,但cms只提供使用者需要的作業系統的基本任務。其中包括檔案系統命令,程式載入和執行功能,記憶體管理,螢幕和視窗服務以及允許使用者書寫申請的服務。cms是一種單使用者單任務的作業系統。儘管系統有能力在同一時間處理多個任務,但起初它被用做單任務系統。每個虛擬機器都有它自己的cms拷貝,從而使所有使用者擁有同樣的介面和功能。

ibm虛擬機器系統的指令集實際上是一種一一對應

除了cms以外,vm系統體系還有一些其他的組成部分,包括組控制系統(group control system),透明的系統訪問工具(transparent system access facility),一些附加的服務,以及傾印檢視工具(dump viewing facility)。我知道你可能正在想所有這些羅嗦的官方名詞究竟是什麼意思。老實說,上面提到的那些東西對於大體理解ibm虛擬機器系統並不重要。所以,我們將會集中精力來討論控制程式和會話監視系統是如何來對映指令的。

正如在綜述中提到的那樣,指令集實際上是一一對映的。基於速度和便利性的考慮,370系統和390系統上的大部分指令都是由系統直接執行的。這意味著cms使得使用者在沒有速度損失的情況下執行指令並獲得他們所希望的功能。現在我最想說的是乙個小的指令子集,vm系統認為這個指令子集是敏感的。

一條敏感的指令實際上指的就是一條這樣的指令:它允許使用者改變另外乙個使用者虛擬機器的狀態,改變系統硬體狀態,以及其他一些敏感或者受保護的函式。為了說明這個問題,現在讓我們看乙個例子:

比如說乙個使用者試圖執行一條可以訪問其他使用者虛擬機器和資源的指令。這條指令將會被cms截獲,並標記為敏感指令。這意味著cms將把這條指令當作一條受保護的指令,然後在將這條指令傳遞給控制程式的時候加上乙個特殊的標誌,這個標誌將告訴控制程式:「這是一條受保護的指令。」計算機術語管這叫做中斷,但這對本文並不重要。

控制程式接收帶有標誌的指令,這個標誌告訴控制程式,這是一條敏感的指令。然後控制程式對這條指令執行一些特定的例程或檢查,以決定如何來處理它。這些例程可以告訴控制程式是否需要模擬這條指令的執行,或者是否完全阻止這條指令的執行。如果控制程式模擬這條指令,使用者將永遠不會知道他們剛剛試圖去執行一條敏感的指令,他們的系統也會象沒什麼特殊事情發生一樣而繼續執行。如果控制程式必須阻止這條指令的執行,那麼它會給使用者返回一條訊息,告訴他們發生了錯誤。使用者程式很可能因此而停止執行。

小結

閱讀完以上幾段以後,你現在已經對什麼是ibm虛擬機器模型和ibm虛擬機器如何工作有了基本的了解。這很好,但是我敢打賭,你一定在想這個模型真的能夠工作嗎?它真的像宣傳的那樣工作嗎?我曾經用過這個系統,老實說,它確實能夠工作。

ibm虛擬機器系統提供了一種安全環境下,多使用者共享大型系統的途徑。

ibm虛擬機器系統提供了一種安全環境下多使用者共享大型系統的途徑。通過為每個使用者建立乙個真實機器的拷貝,

ibm系統允許每個使用者獲得同樣的功能和資源,而不會危及任何使用者的封裝性和安全性。經過將近三十年的發展,這個系統已經足夠的穩定。這使得它作為乙個資源共享系統在企業和大學裡得到廣泛的應用。

虛擬機器概論(七) OSI虛擬機器模型

osi虛擬機器模型 虛擬 就是在暗示某時某地,雖然乙個物件或者裝置並不存在,但人們可以看到它 虛擬機器 這個詞容易讓許多人產生豐富的聯想。流行 和新聞廣播在報道關於計算機模擬和計算機遊戲的新發展時,通常會用到 虛擬 這個詞。在任何一種情況下,使用 虛擬 就是在暗示某時某地,雖然乙個物體或者裝置並不存...

virtualbox虛擬機器 虛擬機器的網路

今天要測試ip多宿主 ip multihoming 即host和guest的兩個網絡卡分別接,host ping guest的ipv6不通。解決過程如下 命令輸出 ip addr 1 lo mtu 65536 qdisc noqueue state unknown link loopback 00 ...

debian虛擬機器安裝kvm虛擬機器

一 概念介紹 1 libvirt是linux上的虛擬化庫,是長期穩定的c語言api,支援kvm qemu xen lxc等主流虛擬化方案。virsh是libvirt對應的shell命令。2 kvm,即kernel basedvirtual machine的簡稱,是乙個開源的系統虛擬化模組,自linu...