运行时系统和兼容层

运行时系统和兼容层
  1. 我想知道运行系统兼容层 是同一件事吗?它们似乎都是一些软件,运行它们可以让其他软件在其上运行。上面提供了这两个概念的维基百科链接。
  2. 他们都是吗虚拟机虚拟机的维基百科文章提到运行时系统是一种虚拟机。
  3. 为什么 Cygwin 被称为兼容层,因为它的类型是其维基百科文章? 它是 Linux 操作系统的模拟器吗?还是运行时系统?

答案1

尽管看起来有很多相似之处,但也存在一些关键的区别:

运行时系统的一个很好的例子是 Java 虚拟机,它为 [编译的] Java 字节码提供了一致的跨平台环境。

兼容层的一个很好的例子是 WINE,它允许用户直接在 Linux 和 Unix 上运行未经修改的 Windows 应用程序。与 WINE 相比,兼容层也可以非常小,例如主代码库用于访问操作系统特定功能(例如,打开文件、通过互联网通信等)的单个库,它为应用程序提供一致的 API,以有效隐藏所有难看的操作系统特定差异。

运行时环境的缺点是整个环境必须对正在运行的任何代码可用,这可能需要大量的开发工作。

兼容层的缺点是它不一定提供一致性,并且调试起来更加困难。

运行时环境的优点是,移植到新平台后,应用程序无需修改即可运行。

兼容层的优点在于,为了支持新平台,只需要创建一个新层(或一组新层),并且只需进行最少的更改即可为新的目标平台编译主应用程序。

虚拟化就像一个极其广泛的运行时环境,但不同之处在于 CPU 指令集(以及任何所需的设备)都被很好地虚拟化或模拟。

相关内容