2012-05-22 43 views
2

我聽到這個詞彙很多,我有點困惑。有人可以解釋什麼是虛擬機以及它們爲什麼有用嗎?

  • 它只是一個在操作系統上構建的軟件應用程序,可以模擬另一個操作系統嗎?

  • 當有人代碼的虛擬機,就他們基本上一成立,就一個操作系統,但而不是訪問硬件直接,他們只是叫他們將需要相應的陷阱指令?但是,那麼你將無法模擬某些受保護的動作,如中斷,對吧?

  • 除了我能夠遠程連接到並從Windows中運行Linux桌面,還有沒有其他原因,這可能是有用的?

  • 什麼是「虛擬機監視器」?

  • 什麼是Java虛擬機的一點,爲什麼不只是做其他的語言嗎?

乾杯

+1

http://en.wikipedia.org/wiki/Virtual_machine;你的問題(事實上的問題列表)太寬泛。 (「爲什麼不做其他語言做什麼?」) - 很多語言都使用這種或那種形式的虛擬機。) – Mat

回答

3

有很多問題存在,我只是將着手解釋與虛擬機我的經驗。

他們測試在不同的操作系統版本的代碼或應用程序,即Vista的VS Windows 7或不同版本的Android,2.3 VS 4.0例如一個偉大的方式。

他們也保持你的主桌面計算機乾淨的好方法。也許我想安裝一些測試版軟件或測試版操作系統,但我不想讓主要機器變得不穩定。我可以安裝Windows 8的預覽版,並在之後進行垃圾回收。 Windows 8預覽不夠穩定,無法成爲我的主機,但我可能需要評估它。

我也可以製作虛擬機並拍攝快照。這意味着如果我想測試應用程序,則可以回滾到快照,以便在測試應用程序時知道機器的確切狀態。

虛擬機監視器是一個應用程序,我可以查看所有虛擬機的當前狀態。也許我正在運行一個運行多個活動服務器的生產系統。如果他們是Web服務器,他們可以在虛擬機中運行。虛擬機監視器是我可以查看它們各自使用的CPU數量的位置。增加內存,添加服務器,刪除服務器,安裝新服務器等。

虛擬機在這樣的現場情況下非常棒,因爲您可以克隆然後增加內存,減少內存,添加更多的服務器等,這些操作都可以很容易地完成。

2

來自維基:

虛擬機(VM)是一個「正常的主機操作系統內完全隔離安裝來賓操作系統」。現代的虛擬機與任一軟件仿真或硬件虛擬化或實施(在大多數案件)都在一起。

檢查this瞭解更多。

1

Java虛擬機和虛擬機是兩個完全不同的東西。

  • Java虛擬機(JVM)是​​一個可以執行Java字節碼的虛擬機。
  • 虛擬機(VM)是

虛擬機做捕獲中斷和行動酷似你的電腦將是「一個正常的主機操作系統中完全隔離的來賓操作系統安裝」。在面向開發人員的角度來看,它們對於不同操作系統的測試和調試非常有用。在服務器環境中,它們非常適合單個大型機的虛擬化。

Java虛擬機(JVM)用於解釋Java字節碼。 Java被「編譯」成中間狀態,JVM以完全透明的方式在開發者的主機上運行它。

+0

是的,我在那裏解釋關於虛擬機的問題,但Java虛擬機完全不同。你很對。 – peter

+0

@peter不要在答案中付出太多努力,因爲這個問題可能會下降。儘管如此,OP明確詢問(並混合)了VM和JVM,所以我認爲說存在巨大差異是合適的。 – Frankie

+0

好吧。今天沒有更好的事情要做。 – peter

1

它只是一個在操作系統上構建的軟件應用程序,可以模擬另一個操作系統嗎?

這是一個建立在另一個操作系統上的硬件平臺的軟件模擬。

當某人編碼虛擬機時,他們是否基本上開始創建一個操作系統,而不是直接訪問硬件,而只是調用他們需要的適當的陷阱指令?但是,那麼你將無法模擬某些受保護的動作,如中斷,對吧?

是,也不是。通常爲虛擬化提供硬件支持。例如,請參閱:x86 virtualization - Hardware support

除了我能夠遠程連接並從Windows內運行Linux桌面,是否還有其他原因可能有用?

很多的原因。

  • 測試已被提及。
  • 您已經提到了在主機操作系統中運行不同操作系統的能力。
  • 虛擬機運行狀態的快照的能力
  • 啓動/停止/暫停正在運行的虛擬機的功能。

什麼是Java虛擬機的重點,爲什麼不只是做其他語言呢?

平臺無關性。

相關問題