您好,登錄后才能下訂單哦!
一位朋友問“在PC或筆記本上,開啟了CPU虛擬化。然后安裝了一個VMware虛擬機,操作系統是Windows 2008 R2 DataCenter版本,VMware中設置虛擬化引擎為:Intel VT-x/EPT or AMD -v/RVI.啟動虛擬機后,無法創建HYper-v角色, 提示CPU與Hyper-v不兼容,不知道為什么?”
還有一位朋友“在安裝Win8 PR時,發現在安裝過程中竟然出現CPU不兼容的問題,明明已經超越了最低1GHz的頻率,四核以及六核CPU都有遭遇過這個問題,這又是為什么?
以上兩個問題,細究起來都跟CPU的的NX/XD標志設置有關。NX位(全名“No eXecute bit”,即“禁止執行位”),是應用在CPU中的一種安全技術。在功能上,AMD的“NX”和Intel的“XD”完全相同,只是名稱不同。
原理解析:支持NX技術的系統會把內存中的區域分類為只供存儲處理器指令集與只供存儲數據使用的兩種。任何標記了NX位的區塊代表僅供存儲數據使用而不是存儲處理器的指令集,處理器將不會將此處的數據作為代碼執行,以此這種技術可防止大多數的緩存溢出式***(即一些惡意程序把自身的惡意指令集通過特殊手段放在其他程序的存儲區并被執行,從而***甚至控制整臺電腦系統)。這樣就要求我們的CPU具備一定的安全功能,比如要支持SSE2、PAE以及NX指令,否則就會出現兼容性提示。
那么遇到這個問題該如何修改?
一、如果是物理機,需要修改BIOS
按F2進入BIOS,找到如下選項,修改為ENABLED
然后保存退出
二、如果是虛機,需要打開這個標識。
在虛擬機屬性中,選擇“向客戶機公開NX/XD標識”
三、WINDOWS不兼容的問題解決
NX功能在很多主板中往往是默認禁用的,需要用戶手動開啟,萬一BIOS中不能開啟這個功能還必須嘗試升級BIOS。
不過也不用擔心,NX檢測只會存在于全新安裝和升級向導中,Win8或windows 2008 R2的安裝文件中還有替代方法可以裝在不支持這項指令的機器上,比如使用光盤啟動或者通過網絡安裝。
微軟檢測CPU的安全技術主要是為了防止間諜軟件***,一旦用戶遇到兼容性提示首先要查看一下BIOS設置啟用相關指令支持,或者換用無硬件檢測的安裝方式避免這個問題。
補充知識:
類似的技術其實早已應用在SPARC、DEC Alpha、IBM的PowerPC、甚至是英特爾的IA-64架構處理器Itanium上;但“NX”這個名稱最先在AMD的Athlon 64、Opteron等支持AMD64的處理器上使用,并成為這些技術的代名詞。
在x86處理器的頁表索引中,NX位置于63號的位置(以0作第一位),即64位中的最后一位。如果NX位的數值是0(關閉),在頁表內的指令集可正常執行;但如果是1(啟動)的話則不能執行頁表的指令集,并會把頁表的一切皆當作數據。在格式上,頁表需為PAE格式,而非x86傳統的格式。
2001年,英特爾在自家的Itanium處理器加入這種技術,但未有在Pentium、Celeron、Xeon等x86處理器上使用。在AMD把NX應用在AMD64之后,英特爾也為Prescott版本的Pentium 4處理器加入類似技術,并以“XD”(eXecute Disable)的名義推出市場。在功能上,AMD的“NX”和Intel的“XD”完全相同,只是名稱不同。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。