到 CachyOS 的子版块问该装 CachyOS 还是 Omarchy,得分最高的两条回复都不是推荐。一条写着「Asking this in related to CachyOS sub…bruh」。另一条把这比作走进 Honda 论坛问该买 Accord 还是 Camry。
两条回复都没错,而原因在于机制,不在于态度。基于 Arch 的发行版差异,归根结底在于每个项目在哪里改动了原版 Arch。就本文比较的这几个发行版而言,这些改动大多落在五个地方:安装器、内核与编译目标、软件仓库、桌面外壳与配置,以及更新与回滚策略。CachyOS 和 Omarchy 的最大改动落在不同的层。
简短版本
- 就本文比较的这几个发行版而言,有意义的差异大多落在五个层:安装器、内核与编译目标、软件仓库、桌面外壳与配置、更新与回滚策略。
- 一个项目可以只改一层而不动其余四层,这就是为什么两个发行版可以都「基于 Arch」却几乎毫无共同之处。
- CachyOS 大幅改动内核/编译层和仓库层,精心打理安装器,但不强加任何桌面外壳:安装时由你自己选。
- Omarchy 大幅改动桌面外壳层和更新策略层,运营自己的软件包频道,但不出于性能目的改动内核或编译目标。
- 这些层可以分别采用:CachyOS 有文档说明如何把它的仓库加到现有 Arch 安装上,也有人在 Omarchy 上走过这条路,结果好坏参半。
本文不解决的问题
有三个问题与本文的问题足够接近,容易被混为一谈,而每一个都需要分类模型给不了的另一种证据。
- CachyOS 总体上是否更快。 这个问题有它自己的证据基础和专门的文章。
- 两者中你该装哪一个。
- 所有现存的 Arch 衍生版。本文点名五个,这五层是针对这一组发行版的比较模型,而不是对所有 Arch 衍生版的完整分类。
本文追踪的五个层
就本文比较的衍生版而言,五个层解释了大部分有意义的差异:安装器、内核与编译目标、软件仓库、桌面外壳与配置,以及更新与回滚策略。一个项目可以只改其中一层,其余四层完全保持 Arch 交付时的样子。
安装器是从裸机到可启动系统的路径,也是项目决定把多少选择交到你手里的那一层。原版 Arch 提供手动安装文档,其 Live ISO 中也附带引导式安装器 archinstall;衍生版仍然可以用自己的引导式默认值替换这一体验。重要的是安装器替你敲定了什么:文件系统、引导加载器、加密、驱动、桌面。每个默认值都是某人采取的立场。
内核与编译目标层涵盖三件常被混为一谈的事。你启动的是哪个内核构建。你的软件包是针对哪种 CPU 指令集编译的。由哪个调度器决定什么时候运行什么。
编译目标是软件包构建时所针对的微架构级别。x86-64 是所有 x86-64 处理器都支持的基线。x86-64-v3 增加了 AVX、AVX2、BMI1、BMI2 和 FMA 等特性,x86-64-v4 则在 v3 之上再要求 AVX-512。为其中任一级别构建的软件包,在缺少所需特性集的处理器上无法启动。调度器决定下一个拿到处理器的是哪个可运行任务,而不同调度器在吞吐量与交互响应之间的取舍不同。衍生版可以三者都改、只改一项,或都不改。
软件仓库层是来源问题:你拿到的软件包是谁构建的、有多新、由谁控制它到达的渠道。原版 Arch 从 core、extra 和 multilib 拉取二进制包,旁边的 AUR 则是需要你自己编译的构建脚本。衍生版可以在其上叠加自己的仓库,可以在 Arch 仓库前面刻意加一段延迟,也可以两者兼有。
桌面外壳与配置层是屏幕上显示的内容及其排布方式,也是最容易被术语绊倒的地方。KDE Plasma 或 GNOME 这样的桌面环境是一套完整的组合:窗口管理、面板、文件管理器、设置、应用程序。i3 这样的平铺式窗口管理器,或 Hyprland 这样的平铺式 Wayland 合成器,只负责窗口摆放而不提供完整的桌面套件,把状态栏、启动器、通知和锁屏留作独立部件。衍生版可以强加一个外壳,可以提供菜单让你选,也可以不表态。
更新与回滚层涵盖系统如何前进,以及走错方向时如何退回。在原版 Arch 上这两件事都由你负责:想更新时执行 pacman -Syu,恢复靠软件包缓存或你自己搭的快照方案。衍生版可以包装这条命令、给它加门禁或原样保留,也可以通过把文件系统布局成快照成本低廉的形式,让恢复成为默认能力。Btrfs 子卷布局买到的就是这个:快照是某一子卷在某个时间点的副本,配合引导加载器集成,衍生版可以把这些快照作为恢复选项呈现出来。
CachyOS 改了什么
CachyOS 大幅改动内核与编译目标层和软件仓库层,精心打理安装器,且不强加任何桌面外壳。它提供自己的内核构建,并针对更新的 CPU 特性级别重新编译 Arch 的软件包,然后把屏幕上显示什么交给安装它的人决定。
它的安装器让你选择桌面、文件系统和内核,以及软件包和引导管理器,硬件检测工具会为检测到的设备安装驱动。 这个项目的主张在安装器之下,而不在安装器之中。
默认的 linux-cachyos 内核用 Clang ThinLTO 和 AutoFDO 剖析构建,这一系列提供 BORE、EEVDF 和 BMQ 作为可选调度器。 另外,它还支持 sched-ext,这是一个无需构建新内核即可从用户空间加载 BPF 调度器的框架。 这两者是不同的东西:sched-ext 在运行时切换调度器,并不是那份列表里的第四项。
CachyOS 还针对 x86-64-v3、x86-64-v4 和 Zen4+ 重新编译 Arch 的软件包,其 wiki 声称 x86-64-v3 相比基线有 5% 到 20% 的提升。 这是 CachyOS 对自己工作给出的数字,不是独立测量。重新构建的软件包放在一个叠加在 Arch 的 core、extra 和 multilib 之上的 CachyOS 仓库里,而不是取代它们。叠加而非替换让来源保持清晰:任何一个包,你仍然能说出是哪个渠道构建的。
桌面外壳是 CachyOS 不强加的那一层。环境由你选择,不过有几个选项附带 CachyOS 维护的设置或 dotfiles。 它的在线安装器提供十七种以上环境,包括 KDE Plasma、GNOME、Hyprland、Niri、Sway 和 Xfce,选择权在你。 CachyOS Hello 和 Kernel Manager 是系统管理工具,不是外壳。
CachyOS 不要求使用自己的更新包装器:直接执行 pacman -Syu 仍是文档记载的路径,另外还有 Shelly、Octopi 和离线更新等可选工具。安装在 Btrfs 上时,CachyOS 会划分独立子卷并用 Snapper 做恢复快照;受支持的引导加载器配置可以把这些快照暴露出来用于恢复。
Omarchy 改了什么
Omarchy 大幅改动桌面外壳层和更新策略层,自带软件包频道,但不出于性能目的改动内核或编译目标。它只安装一个固定桌面,并接管更新命令,而不是把 pacman 留给你。
Omarchy 从自己的 ISO 安装,可以占用整块磁盘,也可以装进另一个操作系统旁边的空闲空间,并且默认加密磁盘。 安装器不问桌面问题,因为答案只有一个。
内核与编译目标层基本没动。 Omarchy 自己的手册把它描述为围绕 Hyprland 和 Quickshell 构建的基于 Arch 的发行版,而在安装器、更新、dotfiles 和 CLI 各页面中,都没有记载任何自定义内核、编译目标或调度器选择。 在普通硬件上,Omarchy 运行的是原版 Arch 内核包,这些包和系统其余部分一样来自 Arch 镜像。 手册中记载的唯一内核替换是出于硬件支持:在配备 T2 芯片的 Intel Mac 上,安装器会设置打了补丁的 linux-t2 内核。
仓库层它确实改了,但改动的方向与 CachyOS 不同。 Omarchy 以普通 pacman 软件包的形式从自己的 Package Repository 安装,其默认的 stable 频道跟踪一个比最新版落后一个月的 Arch 镜像,这样不兼容问题会先在上游暴露出来。 另外三个频道(RC、edge 和 dev)用这段缓冲换取新鲜度。
Hyprland 和 Quickshell 一起到来,没有退出选项。Hyprland 是平铺式 Wayland 合成器;Quickshell 是用来搭建状态栏、启动器、菜单、通知和锁屏的构建套件,这就是 Omarchy 能在一个版本里替换整个外壳而不只是发个主题的原因。这种拆分让 Omarchy 拥有一个可复现的、由项目定义的基线,同时把你自己的覆盖设置分开存放。 配置一分为二:你的 dotfiles 在 ~/.config,项目的默认值在 /usr/share/omarchy,后者归软件包所有,更新时会被覆盖。 任何你希望在更新后仍然保留的东西,都应该放在这条分界线属于你的一侧。
更新策略是 Omarchy 立场最鲜明的地方。omarchy update 命令在一次操作中执行待处理的迁移和软件包更新,并先拍一个快照;回滚就是在引导加载器里选中那个快照。 改用 pacman -Syu 会撞上一道防护:Omarchy 会阻止直接的系统升级并把你引向它自己的命令,不过手册说这道防护会告诉你如何为单次事务绕过它。 重点在于耦合:迁移和软件包更新一起走。
为什么比较帖永远吵不出结果
CachyOS 和 Omarchy 触及了几个相同的层,但把最强的改动放在了不同的位置。CachyOS 专注于内核、编译目标和软件包构建;Omarchy 专注于桌面外壳和更新流程。「哪个更好」把这些各自独立的问题压成了一个。
它们在安装器、仓库和恢复层上有重叠,但方式并不相同。CachyOS 的仓库改变的是 Arch 软件包如何构建;Omarchy 的仓库改变的是它们何时到达。CachyOS 保留直接的 pacman 更新并在其周围加上快照;Omarchy 把软件包更新、迁移和快照耦合在自己的更新命令之后。
| 层 | 原版 Arch | CachyOS | Omarchy |
|---|---|---|---|
| 安装器 | 手动安装指南或引导式 archinstall;选择权仍在你手里 | 引导式:桌面、文件系统、引导管理器、内核,外加驱动自动检测 | 基于 ISO,整盘或空闲空间,加密,无桌面选择 |
| 内核与编译目标 | 原版内核;软件包针对基线 x86-64 构建 | linux-cachyos 构建、可选调度器、sched-ext,软件包针对 x86-64-v3/v4 和 Zen4+ 重新构建 | 性能方面未改动:原版内核(T2 Mac 上为打补丁的 linux-t2),基线构建 |
| 软件仓库 | Arch 的 core、extra、multilib,旁边是 AUR | 自有仓库叠加在 Arch 仓库之上 | 自有仓库;stable 跟踪落后一个月的镜像 |
| 桌面外壳与配置 | 不预装任何桌面;由你选择并组装 | 不强加任何桌面;安装器提供 17 种以上环境 | 固定的 Hyprland 和 Quickshell;默认值位于 /usr/share/omarchy |
| 更新与回滚策略 | 由你决定何时执行 pacman -Syu;恢复方案由你自行安排 | 支持直接 pacman -Syu;可选更新工具;Btrfs 上用 Snapper 恢复 | 默认使用 omarchy update;每次更新都拍快照;直接 pacman -Syu 有防护,绕过方法有文档 |
那个 CachyOS 帖子顶部的两条回复压缩的正是这一点:一个正确的诊断,却没有把背后的五个层讲出来。
这些层可以混搭
这五个层可以分别采用,而不是互相排斥。 CachyOS 公开了有文档记载的路径,说明如何把它的仓库加到 Arch 安装上,以及如何再移除。 Omarchy 就是一个 Arch 安装,所以同一条路径也能把 CachyOS 的优化仓库搬到它上面。
确实有人这么做。 r/linux_gaming 一个帖子里的评论者说得很直白:「There's nothing stopping you from installing the cachyos kernel and repositories on omarchy.」 有人为这种组合写了一个安装脚本,并发到了 Hacker News。
原则上的独立不等于实践中的可靠。 在 r/omarchy 一个关于在两者之间迁移的帖子里,一位评论者报告说「All of the install scripts and such to do this are currently not working for many people」,而且手动干预也没能让它跑起来。 这只是一个帖子里的一个人,但正是那种值得提前防备的麻烦。
第二个限制在于这种组合值多少。 已发布的性能对比显示游戏平均帧率差距很小,而 CachyOS 的内核、调度器和编译目标带来的更广泛收益仍然取决于具体负载,并非自动获得。
CachyOS 的内核工作和编译目标是否能在更广范围内、对哪些类型的负载带来有意义的收益,依赖的是另一套证据基础,不是本文要解决的那一套。
在拥有 root 权限、NVMe 与 AMD EPYC 强大性能的 Linux VPS 上构建应用。
查看 Linux 套餐EndeavourOS 和 Manjaro 在同样的层上处于什么位置
EndeavourOS 和 Manjaro 以各自的组合落在同样的五个层上,这正是这个模型比两个项目的对比更有价值的地方。EndeavourOS 改动最多的是安装器层,但它也用 Dracut 生成 initramfs,并维护一个小型仓库存放 EndeavourOS 专属工具和软件包。Manjaro 改动最多的是仓库层,安装器改动一些,编译目标层则完全没动。
EndeavourOS 把自己描述为一个轻量、以终端为中心的 Arch 系统,它增加的是一个引导式安装器、一小组精选软件包(Firefox、Yay、FirewallD、Pipewire),以及自己的 GPU 和虚拟机驱动工具。 没有自定义内核,没有针对 CPU 重新构建 Arch 通用仓库,没有强加的桌面:在本文点名的所有衍生版中,它仍然最接近原版 Arch。
Manjaro 的定位是一种级联式稳定的思路。 软件包在 Manjaro 自己的仓库中依次经过 unstable、testing 和 stable 分支,而不是直接跟踪 Arch 的仓库,这就是为什么同名的 Manjaro 软件包可能比 Arch 软件包更旧。 它的安装器提供桌面选择,包括官方的 Plasma、GNOME 和 Xfce 版本,以及社区的 Cinnamon、i3 和 Sway 构建。
它还带有一个内核工具,而这个区别很重要。 Manjaro Settings Manager 可以添加和移除内核,让你运行另一个预构建的内核版本。 在打包好的内核版本中做选择,和针对更新的 CPU 指令集重新构建软件包不是同一种操作,尽管两者都位于内核与编译目标层。
这种分支模型也是把 Manjaro 与固定发布世界区分开来的东西。 Manjaro 的滚动模型对比 Ubuntu,是在 Arch 家族之外提出的同一个仓库与更新策略问题。 同样的算法在这个家族之外也适用。 Ubuntu 源自 Debian,并在发布节奏、打包策略和默认桌面上与之不同。
一个新衍生版的首页通常会告诉你它触及了这些层中的哪些,以及它是否改动了这个五层模型之外的东西。
常见问题
Omarchy 是真正的发行版,还是只是一堆 dotfiles?
按五层测试来看,Omarchy 不只是一个 dotfiles 集合。它有自己的 ISO 安装器、拥有四个发布频道的自有软件仓库,以及取代 pacman -Syu 的自有更新工具。它不出于性能目的改动内核或编译目标:手册记载的唯一内核替换是针对配备 T2 芯片的 Intel Mac 的硬件支持补丁。底层系统在其他方面都是原版 Arch。这些加起来算不算「一个发行版」,是一场关于标签的争论。
我能在 Omarchy 上运行 CachyOS 的内核和仓库吗?
技术上可以。CachyOS 有文档说明如何把它的仓库加到现有 Arch 安装上,而 Omarchy 底层使用的就是 Arch 软件包。但这不保证兼容:Omarchy 延迟的软件包频道和更新流程增加了另一个变数,r/omarchy 的一位评论者报告说便捷脚本对很多人都失效了。做好手动干预的准备。
CachyOS 会强迫我用某个桌面环境吗?
不会。CachyOS 把桌面选择留给你。它的在线安装器列出十七种以上选项,从 KDE Plasma 这样的完整环境到 Hyprland 和 Niri 这样的平铺式 Wayland 合成器,选择在安装过程中完成。CachyOS 维护的工具,比如 Kernel Manager,在你选的任何桌面上都能运行。
x86-64-v3 是什么意思?
x86-64-v3 是高于 x86-64 基线的一个 CPU 微架构特性级别。它增加了 AVX、AVX2、BMI1、BMI2 和 FMA 等要求,所以专门为 v3 构建的软件需要支持该特性集的 CPU。为它编译的软件包可以使用这些特性,在缺少这些特性的处理器上则无法启动。CachyOS 针对 x86-64-v3 和 x86-64-v4 重新构建 Arch 的软件包,并声称 v3 有 5% 到 20% 的提升,这是该项目自己给出的数字。


讨论
评论
登录后参与讨论。