据我所知..。
考虑到以上情况,我试图把我的头脑集中在容器和处理am (而不是系统am)之间的区别上。换句话说,OS级服务器虚拟化和应用程序虚拟化有什么区别?
从技术上讲,这不是指同一件事:使用抽象环境底层操作系统的软件创建的独立于平台的软件执行环境?
虽然有人说容器所实现的隔离是一个关键的区别,但也有人说系统VM 仅限于虚拟机提供的资源和抽象
发布于 2022-04-21 19:18:46
OS级虚拟化旨在为特定的操作系统运行未修改的应用程序。应用程序只能通过OS与外部世界通信,因此该API上的虚拟化组件允许向在不同的虚拟化上下文(容器)中运行的应用程序呈现不同的外部世界映像(例如内存量、网络配置、进程列表)。通常,应用程序运行在“真实的”CPU上(如果还没有虚拟化的话),并且不需要(有时也不需要)知道操作系统所呈现的环境是经过某种方式过滤的。它不是独立于平台的软件执行环境。
另一方面,应用程序VM的目标是运行为该VM专门准备的应用程序。例如,Java解析为“处理器”编译的字节码,该字节码与实际的CPU没有什么共同之处。有一些CPU可以本地运行一些Java字节代码,但是一般的概念是为不同的“真实”OS平台上的软件解释提供一个有效的字节码。要使其工作,JVM必须提供一些所谓的本机代码来与运行它的OS调用进行接口。您可以在Sparc、ARM、Intel等上运行您的程序,前提是您有特定于OS的整数应用程序,并且您的字节码符合规范。
发布于 2022-04-21 20:27:56
我已经为你创建了一个图形表示,它更容易(对我)解释这样的差异,我希望它能有所帮助。

https://stackoverflow.com/questions/71955661
复制相似问题