模擬器可以有不同的類型,具體取決于用例和主機環境。以下是需要注意的基本模擬器類型:
1. 終端模擬器
終端仿真器是模擬傳統計算機終端功能的軟件。這些終端由顯示器和鍵盤組成,主要用于連接其他計算機,如小型機或大型機。終端仿真程序完成同樣的工作。
終端仿真器使主機能夠通過命令行或圖形界面聯系另一臺計算機,包括遠程系統。使用 Telnet 和 SSH 等協議,可以進行通信。該仿真使主機能夠在遠程計算機上使用或執行應用程序,并在兩者之間交換文件。這里的優點是兩個設備的操作系統不需要相同。
2.打印機模擬器
打印機仿真是提供一系列打印機命令語言的打印機應用程序。同時,它們提供了可管理性和安全性。多種仿真可以傳輸到打印機,使用戶能夠選擇合適的命令語言。考慮到為 HP 打印機創建的軟件數量,例如,許多軟件旨在復制 HP LaserJet 打印機。通過模擬 HP 打印機,它能夠與為真正的 HP 打印機設計的任何軟件一起工作。
3. 游戲機模擬器
視頻游戲機模擬器允許機器模擬視頻游戲機的硬件并在模擬平臺上運行其游戲。大多數情況下,模擬器具有超越實際硬件邊界的附加功能,例如更廣泛的控制器兼容性、更好的性能、更清晰的清晰度、單擊即可訪問作弊碼等。
仿真器還有助于為過時的、失效的或不常見的系統制作自制演示和新游戲。模擬器通常通過 ROM 文件(游戲卡帶內容的副本)或 ISO 映像(光學媒體的副本)接收游戲的代碼和數據。
4. 全系統模擬器
完全仿真模擬一切,包括 CPU、芯片組、基本輸入/輸出系統 (BIOS)、設備和中斷。COREMU 是一個開源并發仿真平臺,可降低集成全系統環境的復雜性。像這樣的模擬器很難構建,因為它們需要精確消除主機上的系統依賴性。
5.CPU模擬器
CPU 模擬器是模擬物理 CPU 的軟件應用程序。解釋器——跟蹤模擬程序代碼執行路徑的計算機程序,是 CPU 模擬器的最簡單變體。對于檢測到的每條機器代碼指令,在主機 CPU 上執行與源指令語義相似的操作。計算機科學家利用這些模擬器執行各種任務,包括調試、分析和惡意軟件分析。
6. 功能模擬器
功能仿真是使用計算機程序模仿另一個用符號匯編語言或編譯器代碼而不是二進制機器代碼編寫的計算機程序運行的做法。在不創建二進制代碼的情況下,程序員可以運行和跟蹤指定的源代碼位,以使用功能模擬器查找編程錯誤(錯誤)。
7.服務器模擬器
通常,多人視頻游戲需要一個 Internet 游戲服務器,該服務器可能無法訪問以進行本地安裝。服務器仿真器是一種未經授權的本地服務器,它模仿經授權的互聯網服務器的行為,盡管其核心流程可能有所不同。這并不總是仿真技術的合法使用。
8. 網絡模擬器
在實驗室中測試網絡(無線、5G、MANET 等)的行為是網絡仿真。PC或虛擬機上運行的軟件進行網絡仿真;偶爾使用單獨的仿真設備進行鏈路仿真。網絡會引發延遲、故障和數據包丟失,以測試它們在模擬器中的表現。
9. 移動模擬器
顧名思義,移動仿真器在臺式計算機上或作為基于云的測試平臺的組件來模擬設備的硬件和軟件。它是基于機器級匯編語言的移動應用程序的全面重新實現。Android(軟件開發工具包或 SDK)模擬器說明了這一點。它使開發人員能夠評估他們的應用程序在各種硬件類型和屏幕尺寸上的外觀。
仿真模擬器是如何工作的?
在深入研究其內部工作原理之前,讓我們先了解一下仿真的基本價值主張。仿真通過控制 CPU 及其組件單元的行為來運行。仿真器構建系統的每個組件,然后連接它們,類似于電線連接硬件組件的方式。確切的操作將根據您使用的是低級還是高級仿真技術而有所不同。
底層工作
低級仿真 (LLE) 模擬仿真硬件的行為。主機將盡可能地模擬程序執行的環境,程序將在其中進行處理。硬件或軟件均可實現 LLE。
由于它復制了硬件的行為,因此低級仿真是模擬所考慮系統的最準確措施之一。然而,基于硬件的仿真只是有時可行,因為它會增加系統成本。
然而,基于軟件的仿真需要對系統或其組件有深入的了解,只有在文檔足夠的情況下才能獲得這些知識。要以相同的速度執行程序,需要一個比原來的系統強大得多的系統。這就是高級仿真技術發揮作用的地方。
高層工作
高級仿真 (HLE) 提供了一種獨特的系統仿真方法。它不是模擬硬件本身,而是復制設備的功能。它提供了一組開發人員經常使用的操作,并有效地管理所有細節。
高級仿真器使用三種技術進行操作:
解釋:模擬器通過逐行模擬每條指令要完成的任務來運行應用程序的代碼。這種方法的主要問題是它非常慢;每次處理指令時,仿真器都必須對其進行解碼并執行必要的操作。
動態重新編譯:仿真器檢查應用程序的機器指令部分,看它們是否可以優化以在主機處理器上更有效地運行。這與單獨執行每條指令形成對比,后者通常會導致更大的開銷。因此,當仿真器再次遇到特定指令集時,它只需運行緩存的代碼即可。
列表攔截:具有足夠硬件抽象的協處理器,如圖形處理單元 (GPU) 和音頻芯片,需要主處理器提供指令列表。這是一個命令集,它建議協處理器執行什么。仿真器可以捕獲命令列表并將其轉換成主機的協處理器可以解釋的格式。
處理器時序和中斷處理是決定仿真器如何與 CPU 接口以適當運行的原則。
特定系統,尤其是較舊的系統,要求仿真器具有精確的時序以與當前的 CPU 兼容。例如,任天堂娛樂系統 (NES) 測量像素處理單元 (PPU) 中的處理器時序,這需要 CPU 在不同時刻將像素加載到內存中。
總之,中斷是 CPU 與硬件交互的主要方式。通常,您的硬件組件會向 CPU 傳達哪些中斷對它們至關重要。因此,仿真器也可以通過中斷處理來啟用相同的功能。
關鍵詞: 基本模擬器類型 終端模擬器 打印機模擬器 仿真模擬器是如何工作