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

看板Programming作者 (ggg)時間18年前 (2007/05/26 01:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串19/22 (看更多)
※ 引述《queen8 (一日步兵、終身步兵)》之銘言: 謝謝指教. XEN 是英國 Cambridge UNIV 發展的, 但 Hardware Full Virtualization 的 IBM 360 CP/67 是位於美國麻州的 Cambridge Reasearch Center 最早研發的. : 不過, 必須提醒 IA-32 原設計就不把virtualization放在心裡,請參考 : http://www.usenix.org/events/sec2000/full_papers/robin/robin_html/index.html 386 的 Virtualization 不足已是實況. 但從 286 過來時, 記得是訴求著要發展 完整的 Virtual Machine(這需要 Virtual Memory) , 所以設計改 286 segment 加入 page 的 MMU 後拖延一陣, 後來就配合 MicroSoft 改向 VM86 的提供. 因 為 8086 native mode 不會用到 MMU , 這個 VM86 mode 就比較好做. 沒做完全 也算是不把 Full Virtualization 放在心裡吧. 提供的文章並未說明 Intel 當時是怎麼回事, 只是檢視了所有指令, 把該攔下的 卻未攔下的討論與數了出來. 對於非VM機器, priviledge instruction 在 user mode 通常是以 NOP 處理就可以了, 只有在 priviledge mode 才會生效執行. 但 VM 的 sensitive instruction 則不僅是有 priviledge 特性, 對 user mode 的 sensitive instruction 執行, 也都是要視為 illegal 要能 trap 攔下來才行. 這一點 X86 是做了. 但有些指令是 kernel 在用但 user 通常不用的, 就容易被忽略, 若不被設定為 priviledge instruction 反正也是在 Kernel 被執行. 但如果 要使用 VMware 這樣的用法的話, guest OS 的 kernel 就是在 user mode 被 執行, 此時被忽略的 sensitive instruction 才會被發現不是 priviledge instruction, 不會被 trap. 個人的看法是 Intel 是有配合 VM 做了 user mode priviledge instruction 的攔截, 據此, 不能說完全無心去做. 但某些 sensitive instruction 因為並未企圖完成 VM OS , 就沒有這些檢驗的經驗, 所以 就被忽略了. 這個忽略是沒有變成 priviledge instruction . 這些大部 份出現在 ring 0 使用, VMware 把這些找了出來也找到不算慢的軟體處 理方法. 其他的 ring level 因為 Multi-Process OS 保護隔離要用到, 失誤會比較少. 所以說 ring 0 的 sensitive instruction 不好找 ! 不過, 有 VM 理論在, 好不好找似乎不是理由. 但究竟怎麼回事, 就 難說了, 反正現在是補上了. 但如果又不跑 VM , 去攔這些指令, 還真是 多此一舉的變慢, 所以不用 VM, 要 disable trap 會比較好. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.5.5
文章代碼(AID): #16Lo6QYY (Programming)
討論串 (同標題文章)
文章代碼(AID): #16Lo6QYY (Programming)