到 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 一个帖子里的评论者说得很直白:“没有什么能阻止你在 omarchy 上安装 cachyos 内核和仓库。”有人为这种组合写了一个安装脚本,并发到了 Hacker News。
原则上的独立不等于实践中的可靠。在 r/omarchy 一个帖子里,讨论的是在两者之间迁移,一位评论者报告说“用来做这件事的所有安装脚本之类的东西,目前对很多人来说都不能用”,而且手动干预也没能让它跑起来。这只是一个帖子里的一个人,但正是那种值得提前防备的麻烦。
第二个限制在于这种组合值多少。已发布的性能对比显示游戏平均帧率差距很小,而 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% 的提升,这是该项目自己给出的数字。


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