我的 FreeBSD 故事
作者:𝚟𝚎𝚛𝚖𝚊𝚍𝚎𝚗
2018/09
由于 Roman Zolotarev 邀请我为他的 Tell Your BSD Story(讲述你的 BSD 故事) 页面撰写一篇文章,我实在无法拒绝。该页面原本位于 https://www.bsdjobs.com/people/hi.html,但很遗憾,Roman 后来放弃了 bsdjobs.com 这个域名。我本想尽量简短,但看来还是不够直白 :🙂:
最近也被添加到了页面 cybersynapse.ro。
我记得的第一批设备/电脑/游戏机(不是同时拥有的)是 Atari 2600 和 Pegasus 游戏机,后者是 Nintendo NES 的硬件克隆版。

那时我甚至不知道它是 Atari 2600,我只称它为 Video Computer System …… 当时我也完全不懂英语。花了大约二十年,我才偶然发现这个 Video Computer System 实际上是 Atari 2600 :🙂:
这台设备只用来玩电子游戏。
后来我拥有了 AMIGA 600 电脑(或者说是父母为我买的),这次它不仅可以玩游戏,还能干其他事。AMIGA 对我影响最大,因为这是我第一次学习 Amiga Workbench 操作系统的书籍,并在 Amiga Shell 终端学习命令。我特别喜欢桌面上 Ram Disk 图标/目录的概念,它能让我透明地将任何东西放入系统内存。如今的桌面系统中仍然没有这个概念,我仍然记得看到 Amiga Deathbed Vigil 电影时的那份落寞。

1998 年底,我拥有了第一台 PC,当然预装了 Windows,它既是游戏机,也是日常工具。有一次我深入研究 Windows 注册表(它的概念和实现让我感到厌恶)以及由 CMD.EXE 提供的有限命令行界面。我记得,这台机器的核心并不是 CPU 和主板,而是图形加速器——传奇的 3Dfx Voodoo 显卡。这个公司(3Dfx)的态度和理念,也像 AMIGA 一样,对我影响深远。
因此,我现在的笔记本外观也是这种风格 :🙂:

有些游戏甚至以支持 3Dfx Glide 驱动为唯一特点发行特别版,比如 Need for Speed II: Special Edition(极品飞车 II:特殊版)。

从 AMIGA 迁移到 PC 后,它再也没有“感觉对了”。游戏很酷,但 Windows 系统烂完了。随着时间推移,不同版本的 Windows 和硬件改进不断出现。当时 Windows XP 已经很沉重,更别提硬件要求更高的 Windows 2000。至于大家对 Windows ME 的所有抱怨,我并不完全理解。它的崩溃频率与 Windows 98 或 Windows 98 Second Edition 相当,也许只是我的硬件不同 :🙂:

那段时间,我没有保存任何“自己的”截图,因为在用 Partition Magic 移动/调整分区以从较空的 C: 盘获取更多空间时,我整个 40 GB(当时很大)数据盘都丢了。那天,我深刻领悟到:“有些人会备份数据,有些人将会备份数据”。自那以后,我再也没有丢过数据,因为我拥有多份备份,但就像 Netheril 帝国(《龙与地下城》中已毁灭的古老帝国)的覆灭一样,丢失的数据永远消失了。
我一直在尝试各种替代方案,这也促使我在 2003 年尝试 Linux。在阅读了各种发行版的理念后,我决定用 Slackware Linux 跑 KDE 3。当时我的朋友使用 Aurox Linux(波兰少数几个 Linux 发行版之一),并建议我也这样做——特别是在解决潜在问题时,因为他已经熟悉这个系统,而且他最近刚放弃了 Windows。但 Slackware 听起来更合适,所以我选择了这条路径。一开始,我在用 Windows XP 和 Slackware Linux 双系统,因为我在 Windows 世界里一切都运作正常,而在 Linux 世界里常常感到无助,所以如果需要玩游戏或解决 Linux 问题,我就会重启回 Windows。我还记得当时对双剪贴板(PRIMARY 和 SECONDARY)的概念感到非常陌生。我很惊讶,为什么 Linux 这个“更优秀”的系统(至少宣传如此)需要一个系统托盘程序来管理剪贴板。在 Windows 上很直观,[CTRL]+[C] 复制,[CTRL]+[V] 粘贴就完成了,但在 Linux(现在我知道这是 X11 的特性)中,有两个剪贴板,需要由 KDE 3 的这个小托盘程序同步。我也难以接受,如果关闭了进行复制操作的应用程序,最后一次 [CTRL]+[C] 的内容就会“丢失”。我在 Slackware 上稍微安定了一段时间,但不久就不适应了。我真的不喜欢手动管理软件包依赖,而且 KDE 3 非常丑陋,尽管尝试了各种可能的方案,我仍无法将它调成好看的界面。
在使用 Slackware 半年以后,我再次查看 Linux 发行版,并决定尝试 Gentoo Linux。我完全赞同下面的形象,它形象地展示了首次安装 Gentoo Linux 的体验 :🙂:

当然,我选择了最硬核的版本——自建 Stage 1(编译器和工具链),当时这是个坏主意,因为在缓慢的单核机器上编译几乎耗时无穷……但经过若干小时,我终于安装好了 Gentoo。接下来我必须决定使用哪个桌面环境。当时我读到很多关于 Fluxbox 的好评,所以我尝试了它。这是一次非常奇特的体验(从零在 GUI 中创建一切),但也很愉快。这让我回想起 AMIGA 的时光……但 Linux 经常让事情变得复杂。越深入 Gentoo Linux,我越发现很多 Gentoo 特性都是基于 FreeBSD 的解决方案。Gentoo Portage 就是 FreeBSD Ports 的仿制品。而那个“中央”的 ·/etc/rc.conf· 系统配置文件概念也是从 FreeBSD 借鉴而来。所以我开始收集关于 FreeBSD 的信息。那个时候的 FreeBSD 网站或 FreeBSD Ports 网站(至今)显得有些过时,但这并没有让我气馁。
大约在 2005 年,我在电脑上安装了 FreeBSD 5.4。起步维艰,就像之前使用 Gentoo 时一样,但同样像 Gentoo,FreeBSD 项目提供了大量优秀的文档。Gentoo 的文档主要集中在各种 Gentoo Wiki 网站上,而 FreeBSD 项目提供了“官方”文档,如 手册 和 FAQ。我还记得在现已不存在的 BSDForums.org 网站上提的第一个问题——例如其中一个最早的问题是如何在普通终端中滚动输出。现在我知道需要按 Scroll Lock 键,但对我来说那完全是新鲜事物。
BSDForums.org 当年的样子。
这是我从那个时期获得的最早截图,Gentoo 的安装界面看起来非常相似。
为什么选择 FreeBSD 而不是 OpenBSD 或 NetBSD?可能是因为 Gentoo 的许多概念都是基于 FreeBSD 的解决方案,这也引导我选择了 FreeBSD 而非其他 BSD 操作系统。目前我仍在使用 FreeBSD,但我一直关注 OpenBSD、HardenedBSD 和 DragonFly BSD 的解决方案及改进。
由于从 Linux 迁移到 FreeBSD 的路径非常简单——/home 下的所有配置文件都可以直接复制——迁移过程非常快速且容易。我再次使用了在 Gentoo 上的 Fluxbox 配置。现在在 FreeBSD 上,它甚至更让我回想起 AMIGA 的那些日子。一切都是经过深思熟虑的,每个功能都有其位置和意义。文档完备,而 FreeBSD 社区 更是无与伦比。
我甚至决定升级硬件,尝试一些更“特别”的配置。我入手了服务器主板 Gigabyte-GA-7DPXDW ,搭载了双 CPU 插槽——而由于 Athlon XP(桌面)处理器可以很容易地改装为 Athlon MP(服务器)处理器,我也获得了第二颗 CPU,以及 1 GB ECC 内存。

这套双 CPU 配置在当时不常见,但对我来说非常适合。我从 nvidia 的闭源驱动换成了开源的 nv 驱动,因为 nvidia 驱动会每隔几天就打断我的系统运行时间 :🙂:
我在这台桌面机器上累计达到了 30 天的正常运行时间,对于没有应急 UPS 的系统来说还不错 :🙂:

这是我最后一次在 FreeBSD 上(至少在我的机器上)使用 ECC 内存,当时 FreeBSD 上还没有 ZFS:🙂: 光阴荏苒,我开始感受到对更快硬件的需求。同时,我也对 Intel 显卡产生了兴趣,于是换上了新主板和当时最快的 Intel X3000 GMA 显卡——虽然听起来很愚蠢——使用 Asus P5B-V……这是个烂的主意,因为 FreeBSD 的图形栈尚不支持这款 Intel 显卡。最初我使用软件 VESA 驱动,但问题不在于驱动性能(我当时还有四核 Intel Q6600 CPU),而是在屏幕分辨率上。当时我有 1280 x 1024 的显示器,但只能使用 1024 x 768,体验极差。我决定暂时尝试其他方案,等待 FreeBSD 对 Intel X3000 的支持到来。我需要尽快解决,因为当时我还需要撰写我的 硕士论文。
那是 2007 年中期。我想尝试 Linux 发行版光谱的另一端——Ubuntu。我不能再更“桌面化”了 :🙂: 它当然顺利安装了 GNOME 2 桌面环境,但不幸的是 pulseaudio 已经存在。当时我喜欢长时间开机(不花电费),有几件事让我非常烦恼。例如前面提到的 pulseaudio——使用一两天后声音就会冻结(即使我没有播放音乐或视频),且一直保持冻结状态。可以重启 pulseaudio 或重新加载 ALSA 模块,但状态仍然保持 SUSFU(Situation Unchanged Still Fucked Up, 情况没有改变还是一团糟),必须重启才行。由于我要写 硕士论文,没时间重装其他系统,因为 pulseaudio 在其他 Linux 发行版上可能同样会出问题,而 FreeBSD 还不支持 Intel X3000 GMA。总体来说 GNOME 2 体验还行,但我非常怀念所有自定义设置、快捷键以及自定义行为。我在 Ubuntu 上忍受了两个月,直到完成了我的关于 操作系统虚拟化 的 硕士论文(PDF 为波兰语,可用翻译工具阅读) :🙂:
那时的 Ubuntu 长这样。
我也曾短暂遨游过 Mac 世界,当时有机会使用了一年的 MacBook Pro 和 Mac OS X Leopard。这让我真正感受了 Mac 的生态系统和硬件(以及理念),因此不会像很多反苹果的人那样重复陈词滥调。但在工作中切回 FreeBSD 系统后,感觉更自然。我在 Mac 上大量使用 Terminal.app,但 FreeBSD 的 xterm(1) 更符合我的习惯。
有趣的是,多年来我设计了 Mac 风格的 Fluxbox 主题,直到真正使用 Mac 时,我仍然喜欢 Leopard 时代的 Mac OS X 外观。
我还曾尝试过 Solaris(后来是 OpenSolaris)。必须承认,当时 Solaris 的所谓 Java Desktop 基于 GNOME 2,外观确实很棒,仅次于 Mac OS X。
我非常喜欢 Solaris 的概念和解决方案,例如 Zones、ZFS、Crossbow、Comstar 或 IPS(当时 FreeBSD 还没有 PNGng)。但桌面软件始终是问题所在。虽然我在 FreeBSD Ports 中几乎找到了和 Linux 一样多的应用,但在 Solaris 世界中总是缺少一些应用。
这段 Solaris 体验也影响了我的灵感,所以我的 Fluxbox 主题也改成了 Solaris 风格 :🙂:
在 Ubuntu 体验失败之后,我换了另一块主板,因为 FreeBSD 当时仍不支持 Intel GMA X3000,再次回到 FreeBSD 世界。摆脱 pulseaudio 的困扰后,我终于松了口气。同时,我看到很多关于 Openbox 的好评,决定尝试它来代替 Fluxbox。刚开始编辑 XML 配置文件时感觉很奇怪,但熟悉后将 rc.xml 和 menu.xml 文件整理好就不成问题了。从那以后,我在不同机器上使用 FreeBSD,包括物理服务器、虚拟机和笔记本。我学到,在 FreeBSD 生态中,硬件支持是最重要的因素。
我至今仍在使用 Openbox 和 FreeBSD,我的桌面如今如下所示:
经过 15 年使用各种 Windows、UNIX(macOS/AIX/HP-UX/Solaris/OpenSolaris/Illumos/FreeBSD/OpenBSD/NetBSD)及类 UNIX(Linux)系统,我始终得出结论:FreeBSD 是“出错最少”的系统。而且每次发布更新,它表现得越来越好。某一天我会详细写为什么 FreeBSD 是如此出色的操作系统……如果我还没写的话 :🙂:
更新 1
正如 Roman Zolotarev 所做,他将我的故事添加到他的 Tell Your BSD Story 页面。该页面原本在 https://www.bsdjobs.com/people/,但 Roman 后来似乎放弃了 bsdjobs.com 域名。
感谢 Roman!
最后更新于
这有帮助吗?






