Update 2024-12-08-simulator.md

pipelines/1734480055
mayx 2024-12-08 15:07:29 +00:00
parent a8b9118a20
commit 129c4d1b5b
1 changed files with 6 additions and 5 deletions

View File

@ -7,12 +7,12 @@ tags: [模拟器, Windows, Android, Linux, macOS]
在一个系统模拟另一个系统有多困难呢?<!--more-->
# 起因
前段时间我在网上和人聊天的时候谈到了安卓模拟器在我看来所有除了Linux上可以[使用Waydroid原生运行Android](/2023/12/24/android.html)之外,其他系统只能通过虚拟机的方式运行,毕竟如果能在完全不相干的系统上运行安卓我感觉还是挺不可思议的。不过随后就被打脸了🤣,网易在前几年出过一个包含“星云引擎”的安卓模拟器——[MuMu Nebula](https://www.mumuplayer.com/mumu-nebula.html),据说这个模拟器是不需要使用虚拟化技术的,所以这次我来探索一下各种模拟器。
前段时间我在网上和人聊天的时候谈到了安卓模拟器在我看来所有除了Linux上可以使用例如Waydroid的[容器原生运行Android](/2023/12/24/android.html)之外,其他系统只能通过虚拟机的方式运行,毕竟不用虚拟机能在完全不相干的系统上运行安卓我感觉还是挺不可思议的。不过随后就被打脸了🤣,网易在前几年出过一个包含“星云引擎”的安卓模拟器——[MuMu Nebula](https://www.mumuplayer.com/mumu-nebula.html),据说这个模拟器是不需要使用虚拟化技术的。所以这次我打算探索一下这个安卓模拟器和它类似的模拟器。
# 关于虚拟机和模拟器的区别
在我看来,模拟硬件的就是虚拟机,模拟软件的就是模拟器。不过现在这些挺难分的,好多融合的也挺多。比如QEMU+KVM使用硬件虚拟化显然是虚拟机QEMU System模式使用二进制翻译的方式模拟硬件也是虚拟机但是QEMU User模式使用了当前系统的资源没有模拟硬件所以是模拟器不过也有叫仿真器的……不过也许不是这样模拟指令集也算拟了一个CPU吧像Java虚拟机似乎就是这样只是单模拟一个CPU叫虚拟机又感觉不太对……并且macOS的Rosetta 2甚至还有硬件加速硬件模拟x86的内存一致性模型还有用了AOT已经翻译完的再执行就不算模拟器了吧……另外还有什么容器之类的……搞得这些概念很难分清。
那至少使用了硬件虚拟化技术的肯定是虚拟机吧其实这也一定现在的Windows有个叫基于虚拟化的安全性使用了硬件虚拟化技术但是不能说现在的Windows是运行在虚拟机上吧这些大公司搞的乱七八糟的黑科技把我都绕晕了😂。
总之接下来我要说的模拟器是一定基于某个系统然后模拟另一个系统的环境不使用硬件虚拟化技术而且翻译的不是「指令集」而是「系统调用」这样感觉才算我心目中的模拟器🫠也就是OS模拟器。
在我看来模拟硬件的就是虚拟机模拟软件的就是模拟器。不过现在这些挺难分的融合的也挺多。比如QEMU+KVM使用硬件虚拟化显然是虚拟机QEMU System模式使用二进制翻译的方式模拟硬件也是虚拟机但是QEMU User模式使用了当前系统的资源没有模拟硬件所以应该是模拟器(不过也有叫仿真器的?)……不过也许不是这样?模拟指令集也算拟了一个CPU吧像Java虚拟机似乎就是这样只是单模拟一个CPU叫虚拟机又感觉不太对……并且macOS的Rosetta 2甚至还有硬件加速硬件模拟x86的内存一致性模型还有用了AOT已经翻译完的程序再执行那应该不算模拟器吧……另外还有什么容器之类的……搞得这些概念很难分清。
那至少使用了硬件虚拟化技术的肯定是虚拟机吧?其实这也一定现在的Windows有个叫基于虚拟化的安全性”的功能使用了硬件虚拟化技术但是不能说现在的Windows是运行在虚拟机上吧这些大公司搞的乱七八糟的黑科技把我都绕晕了😂。
总之接下来我要说的模拟器是一定基于某个系统然后模拟另一个系统的环境不使用硬件虚拟化技术而且翻译的不是「指令集」而是「系统调用」这样感觉才算我心目中的模拟器🫠也就是OS模拟器。
# 各种各样的OS模拟器
## MuMu NebulaWindows模拟Android
@ -28,4 +28,5 @@ tags: [模拟器, Windows, Android, Linux, macOS]
这种倒是挺多的像DOSBox还有GBA模拟器之类的我以前在手机上就试过[用DOSBox Turbo安装Windows3.2](/2020/09/27/vm.html#%E6%89%8B%E6%9C%BA%E7%9A%84%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%BD%BF%E7%94%A8%E5%8F%B2)也用GBA模拟器玩过宝可梦不过这些其实不算我心目中的模拟器😆因为它们不是翻译的系统调用而是模拟了一块古董CPU然后装了对应的系统能直接用只不过大家都说这类算模拟器所以提了一下。
# 感想
看起来模拟器相比虚拟机还是有很多优势啊,省**内存**这一优势还是很重要的虽然现在内存倒是不贵苹果内存除外但是消耗本不必要的内存就是浪费吧。只不过这种东西对技术要求果然还是太高了实在是费力不讨好所以没有企业愿意投入精力来做所以就都凉了吧……不过Wine倒是活得不错大概是因为Windows的软件太多了吧……生态真的很重要啊。
看起来模拟器相比虚拟机还是有很多优势啊,省**内存**这一优势还是很重要的,虽然现在内存倒是不贵 ~~(苹果内存除外🤣)~~ ,但是消耗本不必要的内存就是浪费吧。只不过这种东西对技术要求果然还是太高了,实在是费力不讨好,所以没有企业愿意投入精力来做,所以就都凉了啊……
不过Wine倒是活得不错大概是因为Windows的软件太多了吧……生态很重要啊。