Re: [請益] Cambridge VM/XEN 是 Killer AP 嗎 ?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 19 之 22 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章