什么是不可变 Linux 发行版?您应该使用它吗?
Linux但更安全。
要点
- 不可变的 Linux 发行版是只读操作系统,不允许写入根文件系统。
- 这些发行版比普通 Linux 发行版更安全、可靠、稳定,但使用起来也更复杂。
- 服务器、容器环境和手持设备受益于不可变的操作系统。
Linux 世界总是在不断发展。最近有一个概念引起了不小的轰动:不可变发行版。想象一下一个不可更改的 Linux 发行版。听起来像是一个限制?如果这能为 Linux 用户带来实际好处怎么办?
让我们更深入地研究不可变操作系统的世界,并讨论它们是否是您的正确选择。
什么是不可变的 Linux 发行版?
不可变的 Linux 发行版是一个其核心是只读的操作系统 (OS)。这意味着您无法轻松修改操作系统。这包括文件系统、目录、应用程序,甚至配置。即使作为管理员,您也无法对发行版进行任何修改。
如果不可变发行版中的某些内容发生更改,这只是暂时的,并会在您重新启动时恢复。这就是为什么这些操作系统被称为“不可变”。
不可变发行版的优点是什么?
为什么有人应该考虑使用不可变的 Linux 发行版而不是常规发行版?这是因为这些发行版由于其不可变的性质而带来了一些额外的好处。让我们来发现其中的一些。
1. 增强安全性
许多普通用户更喜欢 Linux 而不是其他操作系统的原因之一是它的安全性。但这并不意味着您的 Linux 系统不会受到漏洞的影响(特别是如果您没有遵循最佳安全实践)。
不可变的 Linux 发行版通过防止对系统进行未经授权的修改来提供额外的安全层,从而使它们更能抵抗攻击。
假设错误的人获得了您系统的管理权限。现在,如果这是一个普通的 Linux 系统,他们可以随心所欲地篡改它。但在不可变发行版中,即使是管理员也无法修改系统文件。
这减少了恶意人员的攻击面,因为他们无法安装恶意软件或危害系统。您的计算机变得更加安全,并且可以抵御未经授权的更改。
2. 维护更方便
不可变的发行版更易于管理和部署。您无需处理复杂的升级过程、依赖性问题或管理系统状态。
更新在实时系统上不起作用,只有在重新启动后才起作用。这减少了更新过程中出现混乱的可能性,这种情况很常见。
3. 原子更新
这些发行版在更新操作系统时遵循不同的方法。更新不是按包处理更新,而是在整个操作系统中完成。换句话说,整个操作系统被视为一个不可分割的单元。如果更新过程中出现任何故障,系统将回滚到之前的状态。
另一个有趣的方面是基于映像的升级过程。在更新过程中,系统会在单独的分区中创建新映像。当您使用现有映像时,所有更新都发生在新映像中。在下次启动时,您将启动到新的和更新的映像,而不是旧的映像。
4. 提高可靠性
您或其他人无法修改文件系统。因此,与普通的 Linux 发行版不同,您无法轻易永久地破坏这些操作系统。即使您意外或故意破坏了某些内容,它也会在下次重新启动时修复。第三方程序无法在您背后调整任何内容或删除任何可能使您的系统不稳定的重要系统元素。
这也意味着您无法运行任何危险的 Linux 命令,例如 sudo rm rf /*
命令,这会损害您的系统。总的来说,不可变发行版更可靠。
软件安装和更新如何在不可变发行版上进行?
如果不可变发行版是只读的,您如何安装或更新应用程序?大多数(如果不是全部)不可变发行版都使用 Flatpak、AppImages 或 Snap 来管理软件,它们是独立的软件包系统。您可以安装并运行这些软件包,而无需修改文件系统。
这些通用包格式包含所有必要的依赖项和库,因此它们不必依赖系统库。它们也与您的操作系统隔离。
一些不可变的发行版使用称为“分层”的技术来安装软件包。在此方法中,您可以将应用程序安装在只读基础系统之上的专用层上。
这意味着您可以访问发行版的软件包存储库来安装软件包。但是,您可以使用专门的工具来管理分层系统中的包,而不是使用 APT 或 DNF 等传统的包管理器。这些分层包会在您更新系统时保留,然后在重新启动后添加到更新的映像中。
某些操作系统上的另一个选择是通过 Distrobox 等容器安装应用程序。您将软件安装在主发行版顶部的容器中。这允许您安装和使用官方存储库中不可用的程序。
不可变发行版的最佳用例
不可变的发行版并不像您想象的那么罕见。事实上,Steam Deck 使用一个不可变的基于 Arch Linux 的发行版,称为 SteamOS。同样,由于原子更新,许多手持设备都使用不可变的发行版。
但这些并不是这些发行版的唯一用例。需要高安全性和可靠性的组织通常选择不可变的发行版。特别是在您需要确保服务器配置保持稳定和安全的服务器环境中,这些发行版可以帮助您实现这一目标。
开发人员可以充分利用这些系统来创建隔离且可重复的测试环境。 DevOps 工程师还可以在一致的环境中部署软件,从而减少持续集成/持续部署 (CI/CD) 管道的开销。
不可变的 Linux 发行版通常用于容器化环境(例如 Docker 和 Kubernetes),以确保您可以在可预测且一致的容器运行时环境中维护和扩展应用程序。
不可变 Linux 发行版的缺点
好吧,也许您确信使用不可变发行版,也可能不相信。到目前为止你只看到了好的一面。让我们看看这些操作系统带来的一些复杂性问题。
首先当然是学习曲线。学习 Linux 本身可能有点困难。即使您已经熟悉 Linux 系统,您仍然需要了解不可变发行版的不同之处。您还需要改进一些工作流程,这在一开始可能会有点耗时。如果您来自 Windows 还是 macOS?这可能是一次令人畏惧的经历。
未在活动系统上进行且仅在重新启动后应用的更新可能是可靠的。但这也意味着您必须重新启动系统才能获取更新的软件包。但是,某些发行版确实允许您将更新应用到实时运行的系统。您面临的另一个问题是在多个系统之间切换,因为这些发行版为更新创建了单独的可启动系统。
安装软件的方式也与使用传统的包管理器不同。如果您想要安装无法以 Flatpaks 或其他通用格式提供的应用程序,则需要在容器中安装全新的发行版才能使用单个应用程序。听起来不太好。
此外,您无法向系统写入任何内容。这包括编辑配置文件。但如果这对你来说是必需的怎么办?你还是不能这么做。有些发行版允许写入 /etc
目录,但仅此而已。
4 个不可变的 Linux 发行版帮助您入门
如果您想亲自尝试一下不可变的 Linux 发行版,那么您现在可以尝试以下四种方法:
1.尼克斯操作系统
NixOS 是一个完全可复制、不可变的 Linux 发行版。您使用的配置文件包含所有服务、选项、包、分区布局以及构建系统所需的其他内容。然后,您可以使用此配置文件创建任意数量的 NixOS 系统,每次都复制您的选择。
2. 普通操作系统
如果您可以在一个系统上运行多个 Linux 发行版怎么办?这就是适合您的香草操作系统。您可以访问不同的子系统(例如 Arch、Fedora、openSUSE 或 Alpine)来安装这些发行版中提供的特定软件。为此,您可以使用特定发行版的容器。每次启动软件时,系统都会运行容器并打开应用程序。
3. 费多拉银蓝
这是 Fedora Workstation 的不可变旋转。大部分体验与常规 Fedora 版本相同。随着每个新的 Fedora 版本的发布,您还会获得 Silverblue 的新版本。该版本更适合在基于容器的操作系统中进行测试和开发。
4.混合操作系统
BlendOS 是一个基于 Arch 的发行版,支持多种包管理器,例如 APT、Pacman、DNF、YUM 和 Yay。您可以使用它自己的包管理器、blend 或您熟悉的使用容器系统的其他包管理器。
不可变发行版适合您吗?
那么你应该使用不可变的发行版吗?这取决于你是否真的需要它。
对于云基础设施、容器化环境和服务器等需要高安全性、可靠性和稳定性的场景来说,这些很有意义。不适合定制和调整的系统(例如电器)可以从这些发行版中受益。
但对于常规桌面使用,不可变发行版可能不是一个好的选择。一些简单的事情(例如安装软件)比常规发行版要复杂得多。由于无法访问根文件系统,因此您需要特殊的解决方法。
不可变发行版所具有的一些优点在常规 Linux 发行版中也具有。您可以使用 Btrfs 回滚到包甚至整个操作系统之前的状态。也可以在任何 Linux 版本上安装通用包格式。虽然在某些方面更安全,但这些发行版仍然容易受到网络攻击和恶意软件的攻击。
考虑到所有的优点和缺点,您不妨在虚拟机中亲自尝试一下不可变的 Linux 版本,看看您是否喜欢它们。
更高的安全性和可靠性,但也有更多的责任
不可变的 Linux 发行版是 Linux 的未来吗?不见得。它们不会很快取代常规的 Linux 系统。至少对于普通用户来说不是。但由于具有众多优势,它们绝对适合某些利基用户和 IT 组织。
如果您是对 Linux 感兴趣的 Windows 用户,那么无需真正离开 Windows 即可轻松尝试 Linux。