带刺大黄鱼如何帮我反思软件?

带刺大黄鱼如何帮我反思软件?

💡 原文中文,约6300字,阅读约需15分钟。
📝

内容提要

作者介绍OpenBSD:主动安全的类Unix系统,默认配置极简且安全,历史上仅两次远程漏洞。其OpenSSH、LibreSSL、tmux等软件被广泛使用。作者赞赏BSD协议的宽松与政治中立,并反思自身软件需求,从Forgejo迁至cgit,强调选择并非怀旧,而是出于实际需要与对默默奉献开发者的敬意。

🔎

延伸解读

默认安全与极简设计的实际价值

OpenBSD 的默认配置几乎无需调整即可安全运行,例如不必要的服务不启用、root 无法 SSH 登录,这减少了管理员因疏忽而暴露攻击面的风险。文章提到其默认配置历史上仅发现两次远程漏洞,与 Linux 每月常见漏洞数量形成对比。同时,极简的系统让进程和软件包列表可被人类读完,作者因此感到安心。这种设计对老设备友好,也降低了运维复杂度,但前提是用户接受功能上的克制。

BSD 协议的政治中立与实用主义

作者虽然个人偏好 GPL 的 copyleft 保护,但更欣赏 BSD 协议“尽可能政治中立、以技术优劣决定方案”的态度。BSD 协议仅要求保留署名,不强制衍生作品采用相同协议,因此 OpenBSD 的软件如 OpenSSH、LibreSSL、tmux 能广泛进入其他系统。文章也指出,宽松协议并非没有代价:Asahi Linux 因有人借助 LLM 窃取工作成果而将 MIT 换成 GPL。这提醒读者,协议选择需权衡保护与传播。

从 Forgejo 迁至 cgit:需求审视而非怀旧

作者将 Git 服务从 Forgejo 换成 cgit,直接原因是 OpenBSD 上没有 Forgejo 的 port,但更深层的是意识到自己只需要通过 SSH 推送、用 cgit 生成 HTML 展示仓库,并不需要 Issue 追踪、CI/CD 等协作功能。文章强调这并非怀旧,而是重新审视实际需求的结果。对于运维复杂度低的服务,OpenBSD 自带的 httpd、acme-client、chroot 等工具已足够,Docker 和 Podman 并非必需。

❓

Q&A

OpenBSD 和其他类 Unix 系统(比如 Linux)主要有什么区别?

OpenBSD 是 Unix-based(基于 Unix),而 Linux 是 Unix-like;授权协议上,OpenBSD 使用宽松的 BSD 协议,Linux 使用 GPL 2.0。OpenBSD 定位为主动安全的类 Unix 操作系统,默认配置极简且安全,历史上仅发现过两次远程安全漏洞。

OpenBSD 在安全方面有哪些具体的设计和默认配置?

OpenBSD 采用 W^X 机制,要求内存区域要么可写要么可执行,不能同时可写可执行,以降低内存漏洞风险。默认不启用不必要的服务、不开放不需要的端口、root 默认无法 SSH 登录。系统还注重代码整洁、可读性和可维护性,重视代码审计。

OpenBSD 项目开发了哪些被广泛使用的软件?

OpenBSD 项目开发了 OpenSSH(用于 SSH 登录和 Git 远程连接)、LibreSSL(OpenSSL 的 Fork)、tmux(终端复用器)、openrsync(rsync 的替代)以及 pf(4) 包过滤器等。这些软件被集成到 Windows、macOS、其他 BSD 和许多 Linux 发行版中。

作者为什么从 Forgejo 迁移到 cgit?

直接原因是 OpenBSD 上没有 Forgejo 的 port,作者也不想自己编译。同时作者意识到自己只需要通过 SSH 连接远程 Git 仓库作为 remote,并用 cgit 扫描仓库生成 HTML 展示,大部分 Forgejo 功能(如协作、Actions、Webhook)并不需要。

作者对 GPL 和 BSD 协议的态度是什么?

作者个人更偏好 GPL 这类 copyleft 协议以保护自己的作品,但欣赏 BSD 协议代表的政治中立态度——不要求使用者持有相同政治观点,仅要求保留署名且不得用原作者名义宣传。作者也指出 GPL 存在法务复杂、兼容性差等问题,而 BSD 条款简短宽松。

OpenBSD 的极简设计对用户有什么实际好处?

OpenBSD 安装镜像小、内存占用小、CPU 要求低,自带服务和软件包很少,使得系统进程列表和软件包列表是人类能够读完的,用户能知道系统里大部分软件的作用,令人安心。这也让 OpenBSD 对老设备非常友好。

🏷️

标签

➡️

继续阅读