[Seek Help] 想问下到底什么是不可变发行版(immutable distribution)? Resolved
Tofloor
poster avatar
吉吉如律令
deepin
2023-02-24 22:16
Author

被Vanilla这个发行版刷屏了,但看到的所有文章都只是强调不可变,但并没有解释不可变到底是什么意思,搜索了半天,也没弄明白具体含义,只是脑子里模模糊糊有了一个概念

我的理解:系统核心软件只会在系统发布更新时才会升级,而非系统的软件则是通过容器化与系统隔离开,升级和卸载都不会影响到系统

不知道这样理解对不对,因为感觉有点像deepin v23现在在走的路子,所以想了解一下

Reply Favorite View the author
All Replies
忘记、过去
deepin
2023-02-24 22:25
#1

可能和 macOS 10.15 开始差不多?
系统数据被放在只读宗卷,每次启动以快照方式被读取,即使用户修改也不会真的修改系统宗卷文件。只有升级的时候才会修改。

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2023-02-24 22:30
#2

和UOS的想法一样,不过UOS进一步锁了root

vanilla的原子更新是制作出新的不可变分区,然后重启过去,可以认为是安装到"未来",然后重启到"未来",而deepin的原子更新则是先把"现在"备份成"过去",然后把"未来"安装进"现在"

Reply View the author
Lwh2008-Equinox
deepin
2023-02-25 00:07
#3

举个例子opensuse micro

他是这样的:一般情况下除了home,etc,var以外其他目录都是只读文件系统。

然后。。。micro还支持原子更新:更新应用到新的快照里面,不改变原来的系统,重新启动时应用新的快照,或者是回滚。。。

仅仅知道这么多

或者是你可以看看fedora sliver blue文档

Reply View the author
W2J
deepin
2023-02-25 01:08
#4

这些应该都是隔离理念的具现化发展形式吧。

纵向隔离已经很彻底了,向上从VM到Docker,向下从cgroup到systemd再到内核资源,大家天顶星上才能相见倾诉。

如今横向隔离如火如荼了,过去/现在/未来,代码的归Rom,数据的归快照。群体前进群体后退,版本化为里程碑。

现在竞争的,格局,竟然是矩阵化策略。

大家还记得Win平台,系统/应用/数据,是从哪个版本分开存储的吗?大容器迁徙的转折点往往催生经典系统。

Reply View the author
SamLukeYes
deepin
2023-02-25 02:06
#5

个人理解,这里的不可变有两层含义:

  1. 不能用通常的方法直接对系统文件进行修改
  2. 按照其设计对系统进行更新及其他修改时,不会丢失修改前的版本

以 NixOS 为例,构成整个系统的所有软件包都存储在只读的 /nix/store 中,通过软链接、环境变量等方式将所需的软件组织成完整的系统。对系统进行更改时,配置文件发生变化,nixos-rebuild 会将更改所需的新内容下载或编译至 /nix/store 中,然后构建出一个新系统(可大致理解为一套新的软链接)。在这个过程中,已有的旧系统不会发生变化,只要后续没有删除旧的 generation,随时都可以回滚。

很多不可变发行版都会采用容器技术来管理应用,但并不是全部,至少 NixOS 不是,因为 nix 既可以用来构建不可变的系统,又可以作为非特权包管理器。

Reply View the author