Re: [請益] Cambridge VM/XEN 是 Killer AP 嗎 ?

看板Programming作者 (ggg)時間18年前 (2007/05/25 09:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串10/22 (看更多)
※ 引述《mingchieh.bbs@bbs.cis.nctu.edu.tw (Bug J.)》之銘言: : ==> 在 ggg12345.bbs@ptt.cc (ggg) 的文章中提到: : > 這是 VMware 的術語, Cambridge VM 最早的 CP/67 是基於做在 Microprogram : > 的 VMM 再於其上提供 VM Host , 至於 使用 Binary Translation 的軟體技術 : > 似乎是跟一般的 OS 稱呼的 VM 與 VMM 虛擬技術有差距. : > XEN 也使用法國 qemu 的某些模組, qemu 就是使用 Binary Translation 的 : > 軟體解譯技術, 但都不用這個 "Full Virtualization" 的說法. : 有吧,參考xen的原始paper,在2003年sosp發表 : http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf : 請翻到第二頁的2. XEN: APPROACH & OVERVIEW,在該段的第二行就有用到這個詞, : 而整篇PAPER這個詞也出現了7次 把出現的地方再看了一下, Full Virtualization 是指提供全部硬體的虛擬化, 在出現相關研究的地方提到了 最早的 IBM VM/370 及 VMware 及 Connectix , "All of these examples implement a full virtualization of (at least a subset of) the underlying hardware ". 印象中, 就不是很認定 VMware 及 Connectix 是其稱呼的 Full Virtualization 這個括弧留下的印象是作者 對 VMware 及 Connectix 的 Full Virtualization 是有點保留的. 因為最早的 VM 使用 Microprogramming 技術, 稱為 Emulation 是硬體指令層的攔截與解譯, 而不用通稱的 Simulation , 後者是習慣被用於軟 體程式的模擬. 現在的 VMware 及 Connectix 是使用軟體程式的模擬, 而基本上, Binary Translation 技術是替換原指令碼為另一套程式, 由之 "代替" 執行. 換 言之, 原指令碼等於消失了, 原來的 硬體processor指令 就等於未被虛擬化, 也 可以說那些替換的指令未被辨識後再解譯. 不過, XEN 強調其新創的 paravirtualization , 對於 VMware 及 Connectix 是否如宣稱的 "全虛擬", XEN 確也沒必要去爭論. 但嚴格看來, XEN , VMware , 及被微軟買下的 Connectix 都是針對虛擬缺陷的部份用 "事先取代法" 替換掉 , 也都不是 "全虛擬實層硬體". 個人覺得會出現這種困擾的原因是 VM386 在提供虛 擬化時, 不是沒提供而是沒作完整, 所以 VMware 跟 Connectix 的做法就相當於 有一部份使用硬體的功能, 然後把硬體未提供完整的那部份敏感指令用軟體給替換 掉了. 所以在上層的寄居 OS 所提供的執行環境裡, 程式裡若用到有缺陷的敏感性 指令還是不會有實層硬體的虛擬支援. 也就是 "非完整的全虛擬化". 如果不是 X86 CPU 只剩缺陷, BT 技術在無虛擬硬體支援的 CPU 裡使用是效率不高的. 相對 言, paravirtualization 的直接替代就會高效率. VMware 應該也會用這種 "病 毒式轉向替代法"(這是指不用 source code 重編譯的強行替代法, 也就是 binary modification). 這個 X86 的缺陷與困擾可參考 http://www.i.u-tokyo.ac.jp/edu/training/ss/msprojects/data/ 06-VirtualMachineArchitecture.pdf : > VMware 不提供完全自製的 OS 吧 ! 這跟 XEN 提供改裝過的 Linux 宿主 OS : 對,但是他也不需要改其他OS, : 請參考網頁的overview的第一段 : ESX Server installs on the “bare metal” and allows multiple unmodified : operating systems and their applications to run in virtual machines that : share physical resources. : ESX本身有自己的Driver model,不像Xen在原始設計上的另外一個原則 : "希望用現存的driver",所以他其實需要從寫driver,但是他不用一個 : domain0來輔助,或許你可以說他把domain0整個包在VMM裡了 VMware 的概念應該是提供下層硬體相容的 Logical Machine , 而非下層硬體 的 Full Virtualization. 她是提供給上層寄居OS一種市場較普及化裝置的虛 擬, 而非下層實體裝置的虛擬. 譬如 音效卡 就是模擬 Creative Sound Blaster 而非實體裝置. : > VM 的虛擬化主要說 : > 的是硬體的虛擬, 要不要保護隔離的這麼嚴謹這是保護, 不是虛擬. : > VM 8086 是較完整的虛擬, VM386 加入 MMX 就沒有全支援虛擬. Virtual : > Memory 再支援 Virtual Memory 本來就是 VM 效率最受爭議的一環. MMX : > 是 Virtual Memory 的硬體支援. : 個人認為這你要虛擬的層次的問題,在system virtualization的原則下, : 你要給上層看到的就是一個「看似真的bare machine的VM」 : 而沒有做到會有什麼問題呢?有些OS會看到「我不是在Ring0,我就不工作」, : 而又因為X86下,你要看自己在Ring幾,是可以直接看的, : 所以就會遇到這一類系統罷工的狀態 這也就是 sensitive instruction 不容易事先被辨認出來的原因. 問題是發生在 ring 0 的 emulation , 不是可不可以看到 status, 而是要虛擬 出一個 "如假包換" 的環境, 要讓 guest os 覺得是在 ring 0. : > 最先管制機器的就是 BIOS ROM , 除了微碼外就是 BIOS 為最底層, 現在的微碼也開 : > 始由 BIOS 協助可以置入修正. : 實際上在現今的VT和V技術,BIOS不用特地支援,但是在IA-64上卻需要, : 因此你這一點如果針對IA-64是對的,IA-32是有疑問的 這個功能要在 bios 開機設定時被啟動, AMD-V 是 default 為 enable. : > 如果他又結合異質 CPU 跑另外一種, 是這機器原來沒有的軟體時, 應該是 AP 吧! : > 這事, 工研院電通所改為資訊所後, 是不是硬體概念都滅種了 ? : 通訊所和這有什麼關係..... 電通所以前有做 SPARC CPU 計畫是專做硬體與 系統 OS 的. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.5.5
文章代碼(AID): #16LZTW_X (Programming)
討論串 (同標題文章)
文章代碼(AID): #16LZTW_X (Programming)