Bill Dietrich

撰写的评论

嗯,我从没听说过“操作系统”只是内核之上的中间件。我认为这不是标准用法。例如,请参阅 https://en.wikipedia.org/wiki/Operating_system 操作系统是管理硬件,为进程调度 CPU 时间,管理内存的。

我认为这篇文章中的一些说法是错误的。镜像或容器不包含完整的操作系统。虚拟机包含完整的操作系统。

这些是错误的

“镜像不仅打包你的软件,还打包运行你的软件所需的所有支持依赖项,直至并包括完整的操作系统。”

“……重要的是要理解,你创建的镜像将包含完整的操作系统。”

“……镜像是不变的,并且包含运行你的软件所需的所有依赖项,从操作系统开始……”

“……容器每次都运行相同的操作系统……”

这些说法是正确的

“……从你希望运行的软件的角度来看,镜像的打包方式就好像它们是完整的操作系统一样……”

“虚拟机必须包含完整的操作系统……”

这些不正确的说法是对容器和虚拟机之间差异的根本误解。容器镜像与库一起打包,这些库将从容器标准 API(例如 Ubuntu 18.04)映射到实际主机操作系统的 API(一个移动的目标)。容器镜像不打包构成操作系统的许多东西:调度器、内存管理器、设备驱动程序、文件系统模块等等。相比之下,虚拟机镜像确实包含完整的操作系统,并使该操作系统认为它运行在裸机上。

© . All rights reserved.