Linux 最大的成功,恰恰是那些我们不再谈论的事情。人们常常谈论最新的桌面环境、最新的内核,或者下一个重大特性。这些当然值得关注。但它们并非 Linux 变得更容易使用的首要原因。

真正的成功故事要安静得多。

在过去的 25 年里,Linux 从日常计算中消除了数百个微小的烦恼。它们中的大多数消失得如此彻底,以至于许多新的 Linux 用户甚至不知道它们曾经存在过。

如果你是在 1990s 年代末或 2000s 年代初开始使用 Linux 的,这份清单可能会勾起一些回忆。如果你是 Linux 新手,你可能会好奇我们当年是怎么熬过这些的。

下面,让我们怀旧地回顾一下 12 个 Linux 头疼问题,它们在过去的 25 年里悄然消失了。

1. 让鼠标滚轮工作

今天,你连接几乎任何鼠标,一切都能正常工作。

但在当年,仅仅是让滚轮工作就可能变成一个晚上的项目。

我们中的许多人手动编辑 XF86Config,更改鼠标协议,添加 ZAxisMapping,重启 X,然后祈祷自己没有打错字。一行错误的配置就可能导致图形桌面完全无法启动。

Section "InputDevice"
Identifier  "Mouse1"
Driver      "mouse"
Option      "Protocol" "IMPS/2"
Option      "Device" "/dev/psaux"
Option      "ZAxisMapping" "4 5"
EndSection

如果这段配置看起来仍然很眼熟,那你可能已经使用 Linux 很久了。

今天,滚轮直接就能用。我们几乎不再去想它了。现代内核自带通用鼠标驱动,PS/2 和 USB 鼠标都能自动识别。

注意: 一些系统使用 /dev/input/mice 而不是 /dev/psaux,尤其是在 USB 鼠标普及之后。

2. 购买 Linux 真正支持的 Wi-Fi 硬件

购买无线网卡并不像选择你喜欢的品牌那么简单。

真正的问题是:“它用的是什么芯片组?”

一个芯片组完美工作。另一个需要通过 ndiswrapper 使用 Windows 驱动。第三个则干脆拒绝工作。

购买硬件通常意味着在阅读产品评测之前,先要阅读 Linux 论坛。

今天,大多数 Linux 用户在安装过程中就能连接 Wi-Fi,然后继续他们的一天。802.11ac 和 802.11ax 芯片组的内核支持现在非常完善。

3. 安装显卡驱动而不搞坏 X

显卡驱动曾是桌面 Linux 用户最大的恐惧之一。

安装 NVIDIA 驱动通常意味着离开桌面,切换到文本控制台,停止显示服务器,运行一个特殊的安装程序,然后祈祷在下一次内核更新后一切仍然正常。

Ctrl + Alt + F1

如果出了问题,迎接你的将是一个闪烁的光标,而不是你的桌面。

今天,大多数发行版会自动检测硬件并轻松安装正确的驱动。对于喜欢最新专有驱动的用户,NVIDIA 也提供了官方的 Linux 软件包仓库,使得更新比以前容易得多。Wayland 的普及也让显示栈更加稳定,不再需要手动折腾 Xorg 配置。

推荐阅读: Linux Desktop Startup Recovery - A Beginner’s Guide

4. 让声音从扬声器里出来

Linux 上的音频曾因其……“有趣”而闻名。

不同的桌面环境偏好不同的声音系统。有时一个应用程序能播放音频,而另一个则完全静音。

许多用户花在阅读音频文档上的时间比听音乐的时间还多。

今天,声音通常在系统启动时就能正常工作。大多数用户甚至从未想过背后的音频栈。PulseAudio 和后来的 PipeWire 让音频和视频路由变得统一可靠,蓝牙音频也不再需要手动配对配置。

5. 挂载 USB 驱动器和光盘

插入 USB 驱动器并不总是会打开文件管理器。

相反,你经常要打开终端并自己挂载它。光盘和 DVD 也是如此。

mount /dev/cdrom /mnt/cdrom

如果你在按下弹出按钮之前忘记卸载光盘,Linux 会立刻提醒你。

今天,可移动介质会自动出现。大多数用户从不去想背后发生了什么。udev 和 udisks 自动挂载,用户空间完全无需干预。

6. 打印一页纸

打印曾经是 Linux 最薄弱的环节之一。

找到正确的驱动,安装正确的 PPD 文件,并说服打印机合作,所花的时间可能比写文档本身还要长。

Linux 上的打印多年来一直是个笑话。谢天谢地,现在这个笑话已经不好笑了。

今天,许多打印机一旦出现在你的网络上就能直接工作。CUPS 通过 IPP Everywhere 协议自动发现并配置打印机,甚至支持 AirPrint。

7. 使用双显示器

运行两个显示器远非易事。

你必须学习像 Xinerama 和 NVIDIA TwinView 这样的名字,编辑配置文件,并在每次更改后重启图形桌面。

让两个显示器工作起来感觉不像是在配置电脑,更像是在解谜。

今天,你只需在设置窗口中把显示器拖到合适的位置,点击 应用,就完成了。Wayland 的组合器原生支持多显示器,无需额外配置。

8. 合上笔记本电脑盖

合上笔记本电脑是一种信任的考验。

它还能再醒来吗?

有时可以。有时 Wi-Fi 会消失。有时屏幕保持黑屏。有时整个系统会死机。

你很快就学会了在测试挂起之前保存工作。

今天,挂起和恢复已经非常可靠,我们中的大多数人在合上盖子之前都不会再多想。systemd 和 modern ACPI 支持让 suspend/resume 成为日常可用特性。

9. 追逐软件包依赖关系

安装一个程序通常意味着还要安装另外五个。

一个软件包依赖于另一个。那个软件包需要三个库。其中一个库又需要某个东西的旧版本。

有时安装程序会给你这样的信息:

error: Failed dependencies:
libfoo.so.3 is needed by bar-1.2.rpm

这条消息足以毁掉整个晚上。

今天,现代的包管理器几乎会自动解决所有这些依赖关系。apt、dnf、pacman 和 zypper 都能处理依赖链,甚至支持事务性更新。

10. 不离开 Linux 玩游戏

多年来,游戏一直是 Linux 最大的弱点之一。

大多数 PC 游戏只针对 Windows 构建。如果某个游戏碰巧有 Linux 版本,那感觉就像是一个惊喜,而不是常态。

我们中的许多人为了玩游戏而双启动 Windows。其他人则尝试使用 Wine,希望最新版本能运行某个喜爱的游戏而不崩溃。

今天,多亏了 Valve 对 Linux 游戏的投资,Steam、Proton 和 Steam Deck 让成千上万的 Windows 游戏在 Linux 上运行得出奇地好。游戏不再是许多人离开这个平台的理由。

建议阅读:

11. 企业级 Linux 需要驱动软盘

这个是给老 Linux 系统管理员的。

我还记得在旧的企业服务器上安装 Red Hat Enterprise Linux。就我而言,那是 2007 年的一台 HP ProLiant 服务器。

有时安装程序根本无法检测到 RAID 或存储控制器。安装过程会停止,直到我插入硬件供应商提供的 驱动盘。

只有在加载了那个驱动之后,Anaconda 才能看到磁盘并继续安装。

这在当时感觉完全正常。

回过头来看,带着一张驱动软盘只是为了安装一个操作系统,这听起来几乎难以置信。

今天,Linux 安装程序会自动识别企业级存储控制器。那张小小的驱动盘已经悄然成为 Linux 历史的一部分。

12. 了解你的每一块硬件

老 Linux 用户无意中成为了硬件专家。

我们学习了图形芯片组、Wi-Fi 芯片组、声卡、网卡,甚至显示器规格。

不是因为我们想学,而是因为 Linux 期望我们知道它们。

今天,许多 Linux 用户完全不知道他们的笔记本电脑里装的是什么芯片组。这其实是一件好事。Linux 已经变得足够聪明,可以替我们搞清楚这些。lspci、lsusb 和 dmidecode 仍然存在,但现在很少有人需要手动查询。

建议阅读:

回首过去

Linux 当然在多年间增加了许多新特性。然而,我认为它最大的成就是别的。

它悄无声息地消除了无数日常的挫败感。

这些问题没有一个是因为某个神奇的版本发布而消失的。成千上万的 Linux 开发者年复一年地修复了一个又一个的小问题。这些修复中的大多数从未成为头条新闻。但它们共同将 Linux 转变成了我们今天所享受的桌面操作系统。

如今,没有人会因为鼠标能用而写一篇博文。没有人会因为打印机被自动检测到而庆祝。也没有人会因为笔记本电脑从睡眠中按预期唤醒而发起讨论。

使用 Linux 不再被认为是一件极客的事情。

这正是优秀技术应有的样子。最好的改进是那些变得无形的改进。

我遗漏了什么?

这些是我印象最深的 Linux 头疼问题,但我肯定还忘记了一些。

如果你使用 Linux 已经很久了,我很想听听你的故事。

过去曾经是持续不断的战斗,而今天已经完全不是问题的事情,对你来说是什么?

推荐阅读: