
.exe 檔案不會直接在 Linux 上執行,Linux 執行檔也不會直接在 Windows 上執行。但是我們在 Windows 中安裝 VMware,我們可以在相同的硬體和架構上運行這兩個檔案。可執行檔如何運作?
答案1
要更深入的了解,您可以查看有關 VMware Workstation 的維基百科[1]以及關於虛擬機器監視器[6]。
VMware Workstation 可以隨時保存虛擬機器的狀態(「快照」)。這些快照稍後可以恢復,從而有效地將虛擬機器返回到已儲存的狀態。
因此,您可以同時執行多個作業系統,每個作業系統都有自己的執行檔。
它就像一個《超級作業系統》在每個虛擬機器之間不斷切換。
不同的可執行檔可以在為其編譯的系統頂部運行,如果一切都正確完成,他們將不會注意到任何差異。
多說幾句
一般來說,您可以使用不同的方法來設定機器,以允許處理針對不同作業系統或不同體系結構編譯的可執行檔:
您可以同時安裝多個作業系統,例如Windows 和Linux。
在啟動時您選擇與哪個作業系統一起工作。
(+)
您將擁有完整的功能和速度,但只是時間有限。
(-)
這意味著要使用驅動器上每次安裝所需的空間。你可以有一個模擬器,一個翻譯的程式(“模仿”)每一則機器指令,也許允許在 32 位元機器上執行 64 位元程式碼。例如
bochs
[2]或者著名的mame
[3]能夠在現代電腦上模擬數千個經典街機電玩和硬體。
(+)
您可能會節省驅動器空間。
(-)
你會跑得很慢,因為你需要翻譯每個指令。你可以有一個相容層作為
wine
[4](原為「Wine Is Not an Emulator」的縮寫),能夠在多種 POSIX 相容作業系統上運行 Windows 應用程序,例如 Linux、Mac OSX 和 BSD,將 Windows API 呼叫即時轉換為 POSIX 呼叫。
(+)
比上一個更快(-)
並不總是相容您可以安裝一個虛擬機器監視器 (VMM),類型 II [6]。這虛擬化軟體,作為開源 VirtualBox [5],將允許安裝整個未修改的作業系統,相關可執行檔將在該作業系統上執行。所謂的虛擬機器將運行託管透過您原來的作業系統(見下圖)。
....一種虛擬化,允許未修改的作業系統及其所有已安裝的軟體在特殊環境中運行,在您現有的作業系統之上。這種環境稱為“虛擬機器”,是由虛擬化軟體透過攔截對某些硬體組件和某些功能的存取來創建的。5]。
I、II 型 VMM [6]:
最後但並非最不重要的一點是,I 型管理程序 [6], 或者虛擬機器監視器(虛擬機器MM),創建和運行虛擬機器的電腦軟體、韌體或硬體。這次它將直接在硬體上運行,作業系統將如下它的計劃之一。參見上圖。
它直接在主機的硬體上運行,以控制硬體並管理來賓作業系統。因此,它們有時被稱為裸機管理程式。來賓作業系統作為主機上的進程運行。
結論
每個可執行檔都針對一個作業系統進行編譯,必須透過該作業系統與硬體進行通訊。不同的指令、函式庫、策略...因此,Windows 的可執行檔通常無法在 Linux 下運行,反之亦然,但正如你所看到的,有很多方法可以解決這個問題語言翻譯,增加一個不同種類的層,這樣程式就可以不知道。
筆記:一些彙編程式需要直接存取記憶體和中斷[7]他們可能需要特別的照顧。