最著名的传统 Linux 发行版本包括:
随着容器的兴起,主操作系统的角色已经更改。在容器的场合,传统的包管理器扮演着不同的角色:大多数基于容器的镜像往往会从特定的
Linux 发行版构建,利用 .deb
或 .rpm
包满足依赖关系,容器镜像将所有应用程序级依赖项打包在它们之上。对系统做增量更改将是一个巨大的挑战。因此,对于现代发行版而言,焦点越来越集中在不可变性上。
现代 Linux 发行版指的是以容器为中心的发行版,具有不可变性和自动升级(由 Chrome 首创)的前端和中心服务。
2013 年,年轻的初创公司 CoreOS 创造了 CoreOS Linux。其主要特性包括用于系统升级的双分区方案及没有包管理器。换句话说,所有应用以原生容器运行。
在 Red Hat 收购 CoreOS 之后,将 CoreOS Linux 与 Project Atomic(具有相似的目标)合并。其结果是 Red Hat Enterprise Linux CoreOS1 https://access.redhat.com/documentation/en-us/openshift_container_platform/4.1/html/architecture/architecture-rhcos。
在 Red Hat 宣布收购 CoreOS 不久,一家德国的初创公司 Kinvolk GmbH(现为 Microsoft 的一部分)宣布 fork CoreOS Linux,并继续开发,新的品牌为 Flatcar Container Linux2 https://www.flatcar.org/。
Flatcar 描述自身为容器原生、轻量级操作系统,包含容器编排器 Kubernetes
及支持 IoT/边缘计算。它包含 CoreOS
原来的自动升级特性,及强大易用的供应工具 Ignition3 https://www.flatcar.org/docs/latest/provisioning/ignition/。此外,没有包管理器,全都以容器运行,利用
systemctl
可以管理容器化应用的生命周期。
Bottlerocket4 https://github.com/bottlerocket-os/bottlerocket 是一个由 AWS 开发的 Linux 操作系统,其主要意图是主机容器。Bottlerocket 使用 Rust 编写,用于 Amazon EKS 和 Amazon ECS 服务。
跟 Flatcar 和 CoreOS 相似,代替包管理器,Bottlerocket 使用基于 OCI 镜像的模型来对应用进行升级和回滚。Bottlerocket 使用只读、完整性检查的文件系统(基于 dm-verity)。要访问(通过 SSH)及控制 Bottlerocket,它运行 control container5 https://github.com/bottlerocket-os/bottlerocket-control-container。
RancherOS6 https://github.com/rancher/os 是一个由 Docker 进行容器管理的 Linux 发行版。RancherOS 由 Rancher 赞助(现在是 SUSE),它针对容器工作负载进行了优化。它运行两个 Docker 实例,系统 Docker 运行第一个进程,用户 Docker 创建应用程序容器。RancherOS 资源消耗很小,很适合用于嵌入式系统及边缘计算。