过去我们已经介绍了许多仿真示例,但只涉及其实际工作方式。在大多数情况下,这很好。完全可以启动PC并使用仿真器,而不必担心它的细节。
但是您是否想知道幕后究竟发生了什么?为什么仿真器这么慢?甚至模拟将如何进一步改善您的日常生活?继续阅读,您将看到真正的仿真效果。
并非所有硬件都相等
例如,PlayStation游戏无法在Windows上运行,因为这些游戏无法在Windows上运行设计用于在普通计算机上运行。 PlayStation设备的物理外观非常具体,并且包含Windows(或任何其他PC操作系统)不知道如何使用的独特硬件。
这是仿真的来源:仿真目标在另一种系统上运行为一种系统设计的程序,执行此过程的程序称为模拟器。细节有些复杂,但是最后,它们都试图实现同一件事:使软件可以在不同的硬件上运行。
仿真器如何工作?
为了使外部程序运行,仿真需要做大量的工作。简而言之,仿真器是一种试图像硬件一样“起作用"的软件。通常,这意味着将硬件组件的所有功能都模拟为软件组件。
如果您想知道为什么现代系统没有模拟器(例如Xbox)一),这就是原因。因为现代硬件极其复杂,所以要使该过程正常运行需要大量的工作和精力。
回到PlayStation的示例,仿真器必须假装具有特殊的声音芯片,图形卡等等,甚至可以扩展到模拟CD驱动器之类的外围组件。
最难模拟的组件通常是中央处理器(CPU)。从智能手机到视频游戏机,它是每台计算机的核心元素之一,并且在许多方面都是最重要的。没有CPU,程序将无法运行。
CPU彼此不同的主要方式是它们的指令集。基本上,它们确定计算机执行程序给出的命令的方式。仿真器通常针对具有与主机系统不同指令集的系统。
例如,PlayStation的CPU使用称为 MIPS 的指令集,该指令集不同于使用该指令集的台式机和笔记本电脑例如 x86 。
仿真器收到的每条CPU指令都需要从一个指令集转换为另一指令集,并且这种转换需要即时进行。 。因此,在上面的示例中,PlayStation模拟器将收到一条MIPS指令,将其转换为x86,然后在笔记本电脑上运行。
这是模拟器如何模拟自己内部的整个设备的基础。电脑。想象一下,一名口译员试图在说不同语言的两个人之间进行对话。即使翻译速度非常快,也总是会损失一些速度,但是语言越复杂,翻译速度就越慢。
虚拟化与仿真
虚拟化非常与仿真类似,但是它们之间有重要区别-特别是虚拟化通常是指使用虚拟机。虚拟化和仿真可以完成相同的任务,但是它们的实现方式略有不同。
两者均旨在在隔离的环境中运行软件。虚拟化侧重于隔离,而仿真侧重于环境。这意味着仿真器比虚拟机能够仿真更大范围的硬件。例如,您不能在虚拟机上运行Playstation系统。
但是,因此,虚拟化往往比仿真更快。虚拟机不是模拟系统,而是分配一些处理能力给某个隔离的子系统。 这意味着未模拟CPU ,这也是虚拟机通用性较差的原因。
因此,两者的目标受众有所不同。模拟器通常是为视频游戏机(或与常规计算机完全不同的其他系统)设计的,而虚拟机更可能在企业中运行。这是因为它们提供了一个快速安全的环境,可以在其中运行程序。
但是,这主要是挑剔的。实际上,虚拟化和仿真在功能上是相同的,因为它们主要存在于将一种“指令语言"转换为另一种“指令语言"的过程。
3种使您受益的方法
可以利用仿真的方法。您甚至可能不知道就在使用它!以下是一些著名的示例。
64位Windows版本使用一种称为 compatibility layer 的特殊仿真来运行32位程序。由于32位程序的设计已经很相似,因此无需仿真整个系统即可使工作正常。因此,该过程非常快。
如果您使用的是Microsoft Office,则可能使用的是32位版本-唾手可得的仿真功能!
您可以使用正确的模拟器在您的计算机上玩很多较旧的视频游戏平台。有趣的是,由于现代计算机速度如此之快,因此许多此类游戏通过仿真实际上比在其本机硬件上运行更好。
例如,使用一台足够强大的计算机,您实际上可以以比设计的分辨率更高的分辨率玩某些游戏:
您甚至可以设置手机来模拟视频游戏机,从而获得更多掌上电脑经验。或者相反,在计算机上模拟手机。
通常,如果您想试用新的操作系统,则需要将其安装在硬盘上。通过仿真,您可以通过使用虚拟机在当前操作系统上运行单独的操作系统。
有许多原因使您想要这样做。由于安装仅限于虚拟环境,因此您无需担心安装不当。如果要尝试与计算机硬件不兼容的操作系统(例如Raspberry Pi的操作系统),它也可能是您唯一的选择。
翻译+仿真=仿真
仿真是一个极其复杂的过程,本文仅介绍基础知识。但是希望它可以让您瞥见引擎盖下发生的事情。因此,当您启动模拟器时,无论是玩旧的视频游戏还是安全地运行程序,您都将确切知道为什么它会变得有点慢。
您的仿真经验?