为什么我选择使用 OpenBSD?

2020 年 12 月 1 日 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

本文为 CSDN 翻译,转载请注明来源出处。

更多精彩推荐


文本分类六十年
☞做数据中心,腾讯是认真的

☞首次公开!阿里巴巴云原生实时数仓核心技术揭秘

☞起底 Windows 35 年发展史

想在边缘运行计算机视觉程序?先来迎接挑战

中国区块链发展报告(2020)》导读:全球区块链政策及监管重点趋势

  
  
    
点分享
点点赞
点在看
登录查看更多
0

相关内容

是由 Mozilla 基金会从 Mozilla Application Suite 独立出来采用开放源代码与社群共通开发的网页浏览器。
专知会员服务
91+阅读 · 2020年12月26日
【2020新书】C++20快速语法参考,第4版,209页pdf
专知会员服务
71+阅读 · 2020年8月5日
【Contextual Embedding】什么时候上下文嵌入值得使用?
专知会员服务
15+阅读 · 2020年8月2日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
互联网为什么需要全局唯一ID?
互联网架构师
3+阅读 · 2019年8月30日
如何正确使用Jupyter Notebook
专知
8+阅读 · 2019年4月6日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
为什么分布式一定要有消息队列?
互联网架构师
4+阅读 · 2018年7月5日
使用 VPN 合法吗?
计算机与网络安全
4+阅读 · 2018年6月25日
Python Matplotlib 绘图使用指南 (附代码)
AI研习社
7+阅读 · 2018年5月21日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
Arxiv
1+阅读 · 2021年2月1日
Arxiv
0+阅读 · 2021年1月29日
Learning to See Through Obstructions
Arxiv
7+阅读 · 2020年4月2日
Risk-Aware Active Inverse Reinforcement Learning
Arxiv
7+阅读 · 2019年1月8日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
VIP会员
相关资讯
互联网为什么需要全局唯一ID?
互联网架构师
3+阅读 · 2019年8月30日
如何正确使用Jupyter Notebook
专知
8+阅读 · 2019年4月6日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
为什么分布式一定要有消息队列?
互联网架构师
4+阅读 · 2018年7月5日
使用 VPN 合法吗?
计算机与网络安全
4+阅读 · 2018年6月25日
Python Matplotlib 绘图使用指南 (附代码)
AI研习社
7+阅读 · 2018年5月21日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
为什么 Python 更适合做 AI/机器学习?
计算机与网络安全
10+阅读 · 2018年3月18日
Top
微信扫码咨询专知VIP会员