如何将本地软件在网上运行_软件本地运行意味着什么?
如何将本地软件在网上运行
When people refer to running native software, emulation, and software compatibility, what exactly are they referring to? Read on as we delve into the concept of native software.
当人们提到运行本机软件,仿真和软件兼容性时,他们指的是什么? 在深入研究本地软件的概念时,请继续阅读。
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
今天的“问答”环节由 SuperUser 提供 ,它是Stack Exchange的一个分支,该社区是由社区驱动的Q&A网站分组。
问题 (The Question)
SuperUser reader Throsby is curious about what it means to run software natively. He writes:
超级用户读者Throsby对本机运行软件的含义感到好奇。 他写:
I’ve been wondering what it means for software to run natively. What exactly is such software and how is it different from software that does not run natively? How can I tell if a given piece of software will run natively on my computer? Is there likely to be software already on my computer that runs natively?
我一直想知道软件本地运行意味着什么。 此类软件究竟是什么?与非本机运行的软件有何不同? 如何判断给定的软件是否可以在计算机上本地运行? 我的计算机上是否已经有本机运行的软件?
Read on for an excellent analogy explaining exactly what it means to be native on a given system.
继续读下去,可以得到一个很好的类比,确切地解释了在给定系统上原生的含义。
答案 (The Answer)
SuperUser contributor Deltik offers a fantastic analogy that highlights what it means for software to be native and what kind of other software one might find on a given system:
超级用户贡献者Deltik提供了一个奇妙的类比,突出了软件对于本机的意义以及在给定系统上可能会发现的其他种类的软件:
A software is native to a platform if it was designed to run on that platform.
如果软件设计为可以在该平台上运行,则它是该平台固有的。
A platform usually refers to an operating system, but it can also be applied to devices such as the Nintendo Game Boy.
平台通常是指操作系统,但它也可以应用于诸如Nintendo Game Boy之类的设备。
Using the Game Boy as an example, it gets its software from cartridges. These cartridges contain code that runs natively on the Game Boy.
以Game Boy为例,它从墨盒中获取软件。 这些墨盒包含在Game Boy上本地运行的代码。
Emulators are a layer that allows software designed for one platform to be run on another. For example, there are emulators that can execute images of Game Boy cartridges and allow you to play Game Boy games on your computer or even your mobile phone.
仿真器是一层,允许为一个平台设计的软件可以在另一个平台上运行。 例如,有些模拟器可以执行Game Boy墨盒的图像,并允许您在计算机甚至手机上玩Game Boy游戏。
A compatibility layer is kind of like an emulator. When 64-bit computers and operating systems became mainstream, they needed to be compatible with the existing 32-bit technologies. Since 64-bit and 32-bit architectures are very different, a compatibility layer is often needed to run 32-bit software on 64-bit machines. For 64-bit editions of Microsoft Windows, Microsoft needed to write a compatibility layer so that 32-bit programs would still work on the new 64-bit system. This is why some programs are often installed to a folder called
Program Files (x86)
, wherex86
means “32-bit”.兼容性层有点像模拟器。 当64位计算机和操作系统成为主流时,它们需要与现有的32位技术兼容。 由于64位和32位体系结构非常不同,因此通常需要兼容层才能在64位计算机上运行32位软件。 对于Microsoft Windows的64位版本,Microsoft需要编写一个兼容性层,以便32位程序仍可以在新的64位系统上运行。 这就是为什么某些程序经常安装到名为
Program Files (x86)
的文件夹中的原因,其中x86
表示“ 32位”。Compatibility layers tend to be more intimate with the native system than emulators are. VirtualBoxemulates hardware for operating systems*, and the systems that it emulates doesn’t have very much direct interaction with the host system. WoW64 is a compatibility layer in that it lets 32-bit programs run on 64-bit Windows in a more integrated way. WoW64 helps make programs compatible rather thanemulating them in an isolated environment.
与仿真器相比,兼容性层更倾向于本机系统。 VirtualBox 模拟操作系统*的硬件,并且它模拟的系统与主机系统之间没有太多直接的交互。 WoW64是一个兼容性层 ,它允许32位程序以更集成的方式在64位Windows上运行。 WoW64帮助使程序兼容,而不是在孤立的环境中模拟它们。
A translation library is a component of compatibility layers. Whenever binary code is running non-natively, a translation library helps redirect foreign, non-native calls to native calls that the system can understand. Assembly programs written for the original TI-83 might not be compatible with the newer TI-83/84 Plus calculators because some calls that made sense in the TI-83’s architecture may no longer be valid in the TI-83/84+. A translation library (probably included in shells like MirageOS) ensures that calls for the TI-83 go to the new, updated places in the TI-83/84+ calculators.
翻译库是兼容性层的组成部分。 只要二进制代码在非本地运行,翻译库就会帮助将外部非本地调用重定向到系统可以理解的本地调用。 为原始TI-83编写的汇编程序可能与较新的TI-83 / 84 Plus计算器不兼容,因为某些在TI-83体系结构中有意义的调用可能在TI-83 / 84 +中不再有效。 一个翻译库(可能包含在 MirageOS之类的 shell中 )可以确保对TI-83的调用转到TI-83 / 84 +计算器中新的,经过更新的位置。
Platform-independent code is written in a language that is interpreted by something that usually runs natively. For example, PHP is a programming language that is interpreted and executed by the installed PHP binary, which has already been compiled natively for Windows, Mac, and Unix-based operating systems. The PHP code that web scripters write are independent of the platform, allowing the code to work on multiple operating systems as long as PHP is installed for those operating systems.
与平台无关的代码是用一种通常由本机运行的语言解释的语言编写的。 例如,PHP是一种由已安装PHP二进制文件解释和执行的编程语言,该PHP二进制文件已经针对Windows,Mac和基于Unix的操作系统进行了本机编译。 Web脚本编写者编写PHP代码与平台无关,只要在这些操作系统上安装了PHP,该代码就可以在多个操作系统上工作。
Have something to add to the explanation? Sound off in the the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.
有什么补充说明吗? 在评论中听起来不对。 是否想从其他精通Stack Exchange的用户那里获得更多答案? 在此处查看完整的讨论线程 。
翻译自: https://www.howtogeek.com/163759/what-does-it-mean-for-software-to-run-natively/
如何将本地软件在网上运行