虛擬機是什麼?

2021-12-17 逆向開發

虛擬機概念(virtual machine machine)是一種說明計算機硬體和軟體關係的有效方法。

在安德魯 · 塔嫩鮑姆(Andrew Tanenbaum)的書《結構化計算機組織》(Structured Computer Organization)中可以找到對這個模型廣為人知的解釋。要說明這個概念,先從計算機的最基本功能開始,即執行程序。

計算機通常可以執行用其原生機器語言編寫的程序。這種語言中的每一條指令都簡單到可以用相對少量的電子電路來執行。為了簡便,稱這種語言為 L0。

由於 L0 極其詳細,並且只由數字組成,因此,程式設計師用其編寫程序就非常困難。如果能夠構造一種較易使用的新語言 L1,那麼就可以用 L1 編寫程序。有兩種實現方法:

虛擬機

與只使用語言描述相比,把每一層都想像成有一臺假設的計算機或者虛擬機會更容易一些。通俗地說,虛擬機可以定義為一個軟體程序,用來模擬一些其他的物理或虛擬計算機的功能。

虛擬機,將其稱為 VM1,可以執行 L1 語言編寫的指令。虛擬機 VM0 可以執行 L0 語言編寫的指令:


每一個虛擬機既可以用硬體構成也可以用軟體構成。程式設計師可以為虛擬機 VM1 編寫程序,如果能把 VM1 當作真實計算機予以實現,那麼,程序就能直接在這個硬體上執行。否則,用 VM1 寫出的程序就被翻譯 / 解釋為 VM0 程序,並在機器 VM0 上執行。

機器 VM1 與 VM0 之間的差異不能太大,否則,翻譯或解釋花費的時間就會非常多。如果 VM1 語言對程式設計師來說還不夠友好到足以用於應用程式的開發呢?

可以為此設計另一個更加易於理解的虛擬機 VM2。這個過程能夠不斷重複,直到虛擬機 VMn 足夠支持功能強大、使用方便的語言。

Java 程式語言就是以虛擬機概念為基礎的。Java 編譯器把用 Java 語言編寫的程序翻譯為 Java 字節碼(Java byte code)。

後者是一種低級語言,能夠在運行時由 Java 虛擬機(JVM)程序快速執行。JVM 已經在許多不同的計算機系統上實現了,這使得 Java 程序相對而言獨立於系統。

特定的機器

與實際機器和語言相對,用 Level 2 表示 VM2,Level 1 表示 VM1,如下圖所示。計算機數字邏輯硬體表示為 Level 1 機器。其上是 Level 2,稱為指令集架構(ISA, Instruction Set Architecture) 。通常,這是用戶可以編程的第一個層次,儘管這種程序包含的是被稱為機器語言的二進位數值。


指令集架構(Level 2)計算機晶片製造商在處理器內部設計一個指令集來實現基本操作,如傳送、加法或乘法。這個指令集也被稱為機器語言。每一個機器語言指令或者直接在機器硬體上執行,或者由嵌入到微處理器晶片的程序來執行,該程序被稱為微程序。

彙編語言(Level 3)在 ISA 層,程式語言提供了一個翻譯層,來實踐大規模軟體開發。彙編語言出現在 Level 3,使用短助記符,如 ADD、SUB 和 MOV,易於轉換到 ISA 層。彙編語言程序在執行之前要全部翻譯(彙編)為機器語言。

高級語言(Level 4)Level 4 是高級程式語言,如 C、C++ 和 Java。這些語言程序所包含的語句功能強大,並翻譯為多條彙編語言指令。比如,查看 C++ 編譯器生成的列表文件輸出,就可以看到這樣的翻譯。彙編語言代碼由編譯器自動彙編為機器語言。

相關焦點

  • 虛擬機是什麼東東?
    虛擬機(Virtual Machine)指通過軟體模擬的具有完整硬體系統功能的、運行在一個完全隔離環境中的完整計算機系統。虛擬機具有真實系統完全一樣的功能,進入虛擬系統後,所有操作都是在這個全新的獨立的虛擬系統裡面進行,可以獨立安裝運行軟體,保存數據,擁有自己的獨立桌面,不會對宿主系統「虛擬機寄生的系統一般被稱作為宿主系統,一個宿主系統可以虛擬出多個虛擬機。」
  • 什麼是虛擬機 Virtual Machine ?
    虛擬機(VM)於20世紀60年代誕生。 這篇我們將回答以下問題:什麼是VM? 為什麼人們需要虛擬機?
  • 什麼是虛擬機?虛擬機有哪些產品?
    虛擬機(Virtual Machine)技術,就是通過軟體工具模擬的具有完整硬體系統功能的、運行在一個完全隔離環境中的完整計算機系統。利用這種技術,可以在現有的計算機的作業系統中建立多個同構或異構的虛擬計算機系統。
  • Hyper-V:最好的虛擬機是什麼?
    哪種虛擬機工具最好?當然,也許也有人會說,這幾個不是都一樣嗎?在VirtualBox,VMware Workstation Player和Windows 10集成的Hyper-V之間進行選擇很困難。這是三種虛擬機工具的堆疊方式,以及適合不同的任務。什麼是虛擬機監控程序?
  • 常說的docker與虛擬機有什麼區別
    docker與虛擬機實現原理比較        如下圖分別是虛擬機與docker的實現框架。         比較兩圖的差異,左圖虛擬機的Guest OS層和Hypervisor層在docker中被Docker Engine層所替代。
  • 說說虛擬機的備份
    虛擬機機的備份,首先要從數據安全角度來看,大家都普遍使用傳統共享存儲或 vSAN等分布式存儲,雖然這些存儲解決方案都有超過三個九以上的可靠性,但是仍然存在數據丟失的風險,而且有些問題,如數據的誤刪除,病毒感染等,這些都不是存儲的可靠性能解決的,所以大家應該把虛擬機備份看作是數據安全的基礎,而且由於虛擬機的備份很容易,且不用說備份軟體,自己寫個腳本,每天晚上把虛擬機克隆一下
  • 虛擬機VirtualBox安裝詳細步驟(附虛擬機鏡像下載)
    通過本篇文章,我們將學會安裝虛擬機,以及導入虛擬機鏡像並使用虛擬機。本文還提供虛擬機鏡像下載。
  • 聊聊虛擬機的那些事兒
    一、什麼是虛擬機虛擬機(Virtual
  • 使用qemu安裝虛擬機
    安裝一臺虛擬機事前準備就和我們要安裝物理機一樣,我們在安裝虛擬機之前也要做點事先的準備。要準備這麼幾樣東西。必要的系統檢查創建虛擬機的虛擬磁碟下載guest系統的iso鏡像必要的系統檢查檢查分為兩種,硬體和軟體,軟體上又可以分為內核模塊和應用程式。首先晶片上要支持kvm,比如x86的架構需要有vmx。
  • Nova虛擬機啟動
    既然流表是為了虛擬機通信用的,那麼沒有虛擬機的接入,流表也就沒有了用武之地。因此,本節就來講一講OpenStack中虛擬機啟動過程中,是如何獲取MAC、IP位址,如何在Neutron上綁定port,以及如何獲取IP位址的。這一節就當做是對上一節「Neutron的軟體實現」的一個補充吧。從頭開始講。
  • 關於虛擬機.
    在計算機中創建虛擬機時,需要將實體機的部分硬碟和內存容量作為虛擬機的硬碟和內存容量。每個虛擬機都有獨立的CMOS、硬碟和作業系統,可以像使用實體機一樣對虛擬機進行操作。。。。。。咳嗯。簡單來說,虛擬機軟體相當於一個容器,它可以在你的主機系統中運行這個容器,然後再往裡面放入一個系統。目前,虛擬機分為Iinux虛擬機和java虛擬機。
  • VMware11虛擬機安裝教程
    18.  安裝完成,打開虛擬機界面如下。註:用戶可根據自己的需求在虛擬機裡安裝(xp、win7、xin8或xin10)系統,虛擬機裡安裝windows系統方法大致相同,請參考以下安裝教程。1.  雙擊桌面VM快捷方式,打開虛擬機。
  • 虛擬機
    提供給其他虛擬機接口。其主要的任務是:Dom0:特權域,他是運行在Xen Hypervisor上的一個特殊的虛擬機。支持網絡設備和塊設備的半虛擬化。DomU:非特權域。根據其虛擬化方式實現,有多種實現方式。Xen的PV技術Xen的HVM技術Dom0和DomU配置不一樣的
  • 虛擬機的新選擇,win10自帶Hyper-V 虛擬機
    Hyper-V 簡介Hyper-V是 win10自帶的虛擬機安裝管理工具,使用Hyper-V 可以方便在win10上安裝各種不同的虛擬機
  • 手把手教你安裝Linux虛擬機
    一個比較折中的方案是,在自己的電腦上安裝一個Linux虛擬機。所謂虛擬機,就是在你已有的電腦裡再虛擬出一個或多個電腦,可以理解為電腦中的電腦。比如說,你可以在虛擬機裡安裝一個Window電腦,或者安裝一個Linux電腦,都是可以的。虛擬機的作用就是幫你虛擬出運行一臺真正的電腦所需要的各種資源,然後就可以在上面跑其它的作業系統。
  • Linux虛擬機詳細安裝教程
    Windows系統安裝linux虛擬機,要有一個可以生成虛擬機的工具下面我們用到的教程是VMware,下面教程以Windows系統為例安裝演示。教程所用到安裝包我會放到公眾號上,後臺回復 VMware 獲取點擊更改 修改安裝路徑,默認安裝在C盤,建議改為其它的盤,最好是固體硬碟的,打開虛擬機的速度會提升挺多的。等待安裝完成即可。
  • 理解Java和Android虛擬機
    我們知道的虛擬機有很多,運行Java的JVM虛擬機,運行Android程序的Davlik和Art虛擬機,運行C#的CLR虛擬機,那麼什麼是虛擬機呢
  • 體驗Linux、MacOS首選在虛擬機:簡單
    選擇在虛擬機中安裝體驗其他系統是最好的無損方式。當累計到一定經驗後,便可嘗試直接安裝到實體機上。那麼,在開篇前,你可能聽說過虛擬機,用VMWare,VitualBox就可以創建虛擬機,但是你知道VWmare,VirtualBox應該稱做什麼?虛擬機管理程序(Hypervisor)或虛擬機監視器(VMM)是創建和運行虛擬機的計算機軟體、固件或硬體。
  • 給 windows 虛擬機裝個 windows
    本文主要介紹的是 VMware 虛擬機,下載並安裝 VMware 軟體再安裝作業系統即可模擬出另一臺計算機的效果,這種模擬出來的計算機就是虛擬機.VMware 不僅支持 Windows 也支持 Linux ,對於 Mac 系統也是支持的,如需了解 Mac 宿主機如何安裝使用虛擬機,可以參考工具資源系列之給mac裝個虛擬機.
  • Windows下使用虛擬機安裝Linux作業系統
    由於大部分個人電腦都是使用Windows系統的,所以有必要介紹一下如何在Windows環境下使用Linux作業系統,本文以在Virtual Box裡安裝Ubuntu Linux為例,介紹如何在Windows下使用虛擬機安裝Linux作業系統。什麼是Linux?