软件在本地运行意味着什么?

Thr*_*sby 27 terminology

我一直想知道软件在本地运行意味着什么。这种软件究竟是什么,它与非本机运行的软件有何不同?如何判断给定的软件是否可以在我的计算机上本地运行?我的计算机上是否可能已经有本地运行的软件?

Del*_*tik 44

如果软件设计为在该平台上运行,则该软件是该平台的原生软件。

平台通常是指操作系统,但也可以应用于任天堂 Game Boy 等设备。

以 Game Boy 为例,它从卡带中获取软件。这些卡带包含在 Game Boy 上本地运行的代码。

模拟器是一个允许为一个平台设计的软件在另一个平台上运行的层。例如,有些模拟器可以执行 Game Boy 卡带的图像,并允许您在计算机甚至手机上玩 Game Boy 游戏。

兼容层是一种像的仿真器。当 64 位计算机和操作系统成为主流时,它们需要与现有的 32 位技术兼容。由于 64 位和 32 位架构非常不同,因此在 64 位机器上运行 32 位软件通常需要一个兼容层。对于 64 位版本的 Microsoft Windows,Microsoft 需要编写一个兼容层,以便 32 位程序仍然可以在新的 64 位系统上运行。这就是为什么有些程序通常安装在一个名为 的文件夹中Program Files (x86),其中的x86意思是“32 位”。

与模拟器相比,兼容性层往往更接近于原生系统。 VirtualBox 模拟操作系统的硬件*,它模拟的系统与主机系统没有太多直接的交互。 WoW64是一个兼容层,它允许 32 位程序以更集成的方式在 64 位 Windows 上运行。WoW64 有助于使程序兼容,而不是在孤立的环境中模拟它们。

翻译库是兼容层的组分。每当二进制代码非本地运行时,翻译库有助于将外部非本地调用重定向到系统可以理解的本地调用。为原始 TI-83 编写的汇编程序可能与较新的 TI-83/84 Plus 计算器不兼容,因为某些在 TI-83 架构中有意义的调用在 TI-83/84+ 中可能不再有效。翻译库(可能包含在像MirageOS这样的shell 中)确保对 TI-83 的调用转到 TI-83/84+ 计算器中新的、更新的位置。

独立平台的代码是用一种通常在本地运行的东西解释的语言编写的。例如,PHP 是一种由已安装的 PHP 二进制文件解释和执行的编程语言,该二进制文件已经针对基于 Windows、Mac 和 Unix 的操作系统进行了本地编译。Web 脚本编写者编写的 PHP 代码独立于平台,只要为这些操作系统安装了 PHP,代码就可以在多个操作系统上运行。


各种各样的

更正

*谢谢你,迈克尔Kjörling,用于捕捉一些问题这个答案

其他

“本土”和“非本土”的区别不是非黑即白(感谢afrazier

  • 小吹毛求疵:(它是 VirtualBox,而不是 VirualBox,并且)VirtualBox 不模拟操作系统,它模拟*硬件*。因此,您可以在 VirtualBox 中安装您喜欢的任何操作系统(受虚拟化限制),甚至可以从头开始编写您自己的操作系统。 (3认同)