summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/article/openbsd.md75
1 files changed, 75 insertions, 0 deletions
diff --git a/content/article/openbsd.md b/content/article/openbsd.md
new file mode 100644
index 00000000..10b4f5a2
--- /dev/null
+++ b/content/article/openbsd.md
@@ -0,0 +1,75 @@
++++
+title = '初识 OpenBSD'
+subtitle = ''
+slug = ''
+tags = []
+categories = '软件杂谈'
+date = 2026-11-06T23:37:14+08:00
+draft = true
+toc = true
++++
+
+我在《[爱拯救之](/article/amour-en-sauve/)》一文中提到,博客现在运行在安装 [OpenBSD](https://www.openbsd.org/) 的操作系统上,而不是 Linux。我本想尝试更多的 BSD 系统,可我把 FreeBSD 的 `.iso` 挂载到 VPS 之后,在 VNC 里捣鼓了半天也没把系统安装好。最后还是换回 OpenBSD,在十分钟内就完成了安装。
+
+FreeBSD 你们要不要反思一下:为什么 OpenBSD 不到 800MB 的 `.iso` 里纯文本的安装界面会比你们的[图形界面](/essays/lost-in-gui)更好用?
+
+不多说了,还是先来关注 OpenBSD 吧。
+
+{{< quotecard >}}Linux people do what they do because they hate Microsoft. We do what we do because we love Unix.{{</ quotecard >}}
+
+{{< right "——Theo de Raadt" >}}
+
+<!--more-->
+
+## 什么是 OpenBSD?
+
+<img src="https://img.eltr.ac/geedeapro/article/openbsd/openssh-cowboy.png" alt="OpenBSD pufferfish being a cowboy" width=150 style="float: right; margin-left: 1rem; z-index: 10">
+
+众所周知,Linux 和 macOS 都是类 Unix 系统,而 Unix 原本是 AT&T(美国通话电话公司)推出的商业操作系统,在 20 世纪 70 年代授权给外部使用,催生了包括加州大学伯克利分校开发的 BSD(Berkeley Software Distribution)在内的多种*基于* Unix 的系统。[^1]
+
+<div style="clear: both"></div>
+
+是的,Linux 是 *Unix-like*,而 BSD 是 *Unix-based*。Linux 与 BSD 的另一个重大区别是授权协议,Linux 以 GPL 2.0 协议授权,而 BSD 则使用与 MIT 类似的 BSD 协议。稍后我会谈到,BSD 协议是怎么让来自 BSD 的软件润物细无声般地进入其他操作系统,甚至支撑起全球网络连接的。
+
+NetBSD 的创始人之一 Theo de Raadt 在与开发团队的分歧之后,创建了 OpenBSD——我不太喜欢《大教堂与集市》里说「分支不好」的观点,显然人们早就开始分支开源软件了,分歧是难免的,开发者在自己喜欢的团队中才能开发出好的软件,事实证明 OpenBSD 的确很成功(可能并非通俗意义上的成功)。
+
+OpenBSD 给自己的定位是:主动安全的类 Unix 操作系统。`ssh` 到一台 OpenBSD 机器上,就能看到这样的欢迎语:
+
+```text {hl_lines=[3]}
+OpenBSD 8.0 (GENERIC.MP) #84: Tue Oct 6 23:13:49 MDT 2026
+
+Welcome to OpenBSD: The proactively secure Unix-like operating system.
+
+Please use the sendbug(1) utility to report bugs in the system.
+Before reporting a bug, please try to reproduce it with the latest
+version of the code. With bug reports, please try to ensure that
+enough information to reproduce the problem is enclosed, and if a
+known fix for it exists, include that as well.
+```
+
+他们在官网上写的内容还要更笃定:致力于成为[行业第一安全的操作系统](https://www.openbsd.org/security.html)。为此他们采取了很多措施,也发明了不少安全技术和方法论,这些技术被大量商业公司采用。
+
+我不太擅长谈安全细节,所以就举一个例子:`W^X`——`W` 是写入(write),`X` 是执行(execute),中间的 `^` 是异或,意思是说一块内存区域要么可以写入,要么可以执行,不能既写入又执行。这样就极大削减了内存出现安全漏洞的概率。
+
+他们还有各种原则,比如系统里不必要的服务绝对不默认启用,不需要的端口默认不开放,`root` 默认无法用密码登录[^2],系统的默认状态就非常安全。他们还非常在乎代码的整洁、可读性和可维护性,认为更少的代码就意味着更不容易出现安全漏洞,也非常重视代码审计。我很欣赏他们的工程态度。
+
+到目前为止,OpenBSD 的默认配置只发现过**两次**远程安全漏洞,分别是 `CVE-2002-0639` 和 `CVE-2007-1365`,~~现在 Linux 一个月内就能超过这个数~~。
+
+除了机制的安全性,OpenBSD 也奉行极简。不仅源代码简单易读,基础系统也相当小——安装镜像小,内存占用小,CPU 要求小,自带的服务很少,自带的软件包也很少…… 我安装了 OpenBSD 之后才发现,原来系统的进程列表和软件包列表,是人类能够读完的。知道运行在自己系统里的大部分软件都是做什么的,真的令人安心。这也使得 OpenBSD 对老设备非常友好。
+
+另外,尽管源于美国公司,OpenBSD 基金会位于加拿大,不受美国法律制约。有意思的是,OpenBSD 在自己的 [Cryptography](https://www.openbsd.org/crypto.html) 页面里写到:他们发布加密算法和密码学软件,因为加拿大法律允许出口加密算法——很多国家是禁止的。
+
+## 好的软件很少源自商业世界
+
+- OpenSSH
+- LibreSSL
+- tmux
+- openrsync
+
+## BSD 协议
+
+## Footnotes
+
+[^1]: 参见:[Berkeley Software Distribution - Wikipedia](https://en.wikipedia.org/wiki/Berkeley_Software_Distribution)
+
+[^2]: 不少 VPS 提供商对 OpenBSD 的支持不太好,因为不能在面板里添加 SSH 公钥和非 `root` 用户,装好之后根本登录不了,必须自己手动通过 VNC 安装。还好 OpenBSD 的安装程序很容易上手