为什么我选择使用 OpenBSD?

为什么我选择使用 OpenBSD?
2020年12月01日 15:05 CSDN

作者|Solène Rapenne,已获作者翻译授权

译者 | 弯月,责编 | 张文

图 | CSDN 下载自视觉中国

出品 | CSDN(ID:CSDNnews)

以下为译文:

我想通过本文分享我对OpenBSD的看法,以及对最近出现的一些不利于非Linux支持的开源代码实践的简单看法。

隐私

OpenBSD中没有遥测。这对保护隐私很有好处,没有需要关闭的报告信息功能。

默认的系统设置禁用麦克风,而且不经用户同意不能访问网络摄像头,因为默认情况下,网络摄像头是root用户的设备。

安全的Firefox/chromium

尽管有时占据市场主导地位的Web浏览器中带有的安全功能可能很繁琐,但与其他系统相比,这种做法非常重要。Web浏览器理应只能从用户定义的几个目录中检索文件,例如,默认的~/Downloads 或 /tmp/,以及为保证浏览器正常工作的其他几个目录。

这意味着~/.ssh、 ~/Documents以及其他所有目录都不应该被Web浏览器中的漏洞所利用。

Linux可以通过AppArmor实现这种行为,但这个功能不是开箱即用的,并且需要用户进行大量调整才能获得一个能用的Firefox。我曾经尝试过,确实有效,但是需要对Firefox的需求和AppArmor配置文件语法有很好的了解才能使其正常工作。

PF防火墙

我可以利用这个防火墙,快速检查台式机或服务器的规则,并了解它们的工作原理。

此外,我还使用了很多带宽管理功能来限制某些程序可以使用的带宽(如果程序对带宽并没有提供任何速率限制的话)。我觉得这一点很重要。Linux用户可以使用trickle软件来限制带宽。

稳定性

除了使用一些时髦的硬件外,OpenBSD还提供了稳定性和可靠性。我的桌面系统可以正常运行两周,每天只需要挂起并唤醒几次即可。我的服务器24小时运转,全年无休,且没有任何故障。

我的工作站很少能够连续运行两周以上,因为我使用的是最新版本,所以需要不断升级。

维护成本低廉

保持OpenBSD的最新版本机会不费吹灰之力。我每天运行两次syspatch和 pkg_add-u,就可以让系统保持最新。然后在每六个月发布一次新版本时,略微做些调整。

基本上,我只需每六个月升级一次,除了升级指南中说明的一些特定说明(例如,数据库服务器的重大升级):

# sysupgrade

[..wait..]

# pkg_add -u

# reboot

文档准确

设置全盘加密的OpenBSD系统非常容易。

使用NAT创建路由器也有手把手的文档。

每个二进制文件或配置文件都有各自的最新手册。

常见问题解答、网站和指南可以解决你所有的需求。这些资源包含的信息非常多,有时可能找到所需的信息并不容易,但是这些信息一定存在。

如果不得不离开互联网一段时间,那么我肯定选择OpenBSD系统。该系统自带的文档可以帮助我实现所需的功能。

如果要在OpenBSD上配置具有流量控制的路由器,以及在Linux上配置没有互联网的路由器,我肯定百分百希望阅读PF手册。

贡献代码很容易

这是最近的一个热门话题。我非常喜欢OpenBSD管理贡献代码的方式。我可以在系统的任何地方下载源代码,然后对其进行修改,生成差异文件,并将其发送到邮件列表中。所有这些操作都可以通过控制台使用我熟悉的工具(git / cvs)和电子邮件完成。

对于新手来说,刚开始准备贡献代码的时候可能会遇到一些困难:你可能觉得人们对你不是特别友善。实际情况并非如此。如果你发送一份差异,而且还收到了有关代码的批评(评论),则意味着有些人愿意花时间教你如何改进自己的代码。我知道有些人确实会觉得这些指摘很粗鲁,但其实是为了你好。

今年,我为OpenIndiana和NixOS项目做出了微薄的贡献,我也借此机会对比了他们对于贡献代码的处理方式。这些项目都使用github。工作流程很有趣,但是理解和掌握这些流程则非常困难。

首先,你必须创建一个github账号,创建项目,创建一个分支,然后修改代码,在本地提交代码,推送代码,最后再通过github发送合并请求。而且这只是其中一部分工作。我第一次在NixOS上尝试贡献代码时,折腾了6个月拉取请求才完成。如果有良好的文档和培训,这些困难都可以克服,而且我觉得这种方法具有一些优点,例如易于连续集成提交的代码,易于检查代码,但这对于新手来说确实是一道门槛。

高质量的软件包

我的观点可能有些偏颇,但是我确实认为OpenBSD软件包的质量非常高。大多数软件包在默认设置下都能正常使用。

需要特定说明的软件包都包含一个README文件,说明如何设置服务或可能出现的问题。

即使缺乏贡献者和时间,我们缺少一些软件包(除了一些软件包过于依赖Linux而不易于移植),但主要软件包都是最新的,而且运行良好。

下面,我想利用这次机会,抱怨一下开源代码发展趋势中浮现的几个苗头。

仅通过flatpak /docker / snap分发的程序确实对Linux很友好,但对于非Linux系统充满了敌意。它们常常利用只有Linux才有的功能,并根据Linux发行方式而构建系统。

nodeJS程序:这些程序由数百个甚至数千个即使在Linux上也很脆弱的库组成。在OpenBSD上运行这些程序非常痛苦。有些节点库嵌入了rust程序,而有些会下载和使用静态二进制文件而且还没有后备解决方案,或者甚至尝试编译源代码,而不是在安装时在系统中使用该库/二进制文件。

使用git进行构建的程序:我们的构建过程尽力保持整洁,这个专用的构建用户没有网络访问权限,而且不会运行这些git命令。让构建系统在构建过程中运行git来下载源代码是毫无道理的?

我明白以上三点都是为了减轻开发人员的负担。但是,在编写和发布软件的时候,是不是应该考虑一下非Linux系统用户的感受?如果你想改善支持的话,就应该大胆地社交媒体上询问一下,是否有人愿意在不同的平台上构建你的软件。我们非常喜欢为BSD着想的开发人员,他们不会拒绝为OpenBSD提供特定的补丁程序。

我希望看到的改善

以下是我个人的观点,并不代表OpenBSD团队成员的观点。我希望OpenBSD在以下方面有所改善。

为独立的输入/输出设备提供Sndiod支持(我有一个USB麦克风和一个USB DAC,但我无法在音频会议中使用它们)。注:在本文发布后,我收到了一个补丁(https://marc.info/?l=openbsd-tech&m=160562971904202&w=2)。

 更好的ARM支持

 Wifi 速度

更好的性能(每个版本都在逐步改善)

FFS的可靠性改进(我经常丢失并找到文件)

加快pkg_add -u的速度

硬件视频解码/编码支持

更好的FUSE支持和对CIF/SMB的支持

扩大贡献者规模

我了解我们需要做的工作,而且我无法胜任这些改善工作。这些不是抱怨,而是希望。

不幸的是,每个人都知道只有辛勤工作才能提升OpenBSD的功能,向开发人员提交愿望清单于事无补。

鉴于与其他专业的OS相比,OpenBSD的团队规模如此之小,我真的觉得他们可以出色而高效地完成工作。

原文:https://dataswamp.org/~solene/2020-11-16-why-i-use-openbsd.html

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部