开发者SolèneRapenne是一名OpenBSD维护者,也喜欢使用Linux,尤其是NixOS发行版——他认为这是一个与众不同、不同于其他Linux发行版的系统。Solène在她的电脑里配置了两块SSD,分别用来安装两个系统,这样她就可以根据自己正在做的任务或者想使用的系统,从一个切换到另一个。Solène的主要操作系统是OpenBSD,他将所有数据存储在该系统上。然而,由于NixOS和OpenBSD之间缺乏可互操作、易于使用的文件系统,如果不使用提供通用协议的网络存储,很难在两者之间共享数据。最近他发表了一篇关于OpenBSD和NixOS的比较文章。比较维度包括:性能、硬件支持、软件生态、网络堆栈、维护、文档和项目贡献等。系统。OpenBSD也是开发OpenSSH或tmux的地方。它是一个BSD系统,有自己的内核和驱动程序——与Linux无关,但支持运行大多数知名的可以在Linux上运行的开源程序,通常以软件包的形式(如GIMP、Libreoffice、Firefox、Chromium等)。整个OpenBSD系统(内核、驱动程序、用户空间和包)由大约150人的团队管理(不包括发送更新且没有提交权限的人员)。NixOS将很快成为具有20年历史的基于nix包管理器的Linux发行版。它提供了一种新的系统管理方法,基于可重现的构建和声明性配置,用户基本上在配置文件中定义您的计算机应该如何配置(包、服务、名称、用户等)和“构建”系统本身配置,如果用户在另一台计算机上共享此配置文件,他们应该能够复制完全相同的系统。在NixOS中,包没有安装在标准的文件层次结构中,每个包文件都存储在一个专门的目录中,用户配置文件由符号链接和许多环境变量组成,以允许程序查找库或依赖项。性能OpenBSD缺乏用于编码/解码视频的硬件加速,因此在处理视频时它可能会很慢。除了视频处理,OpenBSD在使用交互式桌面和I/O时也很慢。单看性能对比,NixOS的优势与其使用Linux内核息息相关。毕竟,Linux内核拥有大量的全职开发人员和开源贡献者来优化其性能。虽然OpenBSD比Linux慢,但它足以完成大多数需要完成的任务。硬件支持在硬件支持方面,OpenBSD不如NixOS和Linux内核支持的设备丰富。在NixOS上,用户可以使用Thunderbolt接口,可以外接NVIDIA显卡,但是OpenBSD不支持这个接口,也没有NVIDIA显卡驱动(笔者认为这主要是NVIDIA没有提供文档所致).然而,OpenBSD几乎不需要配置就可以使用。只要硬件支持,它就会运行。此外,OpenBSD还可以运行在各种较旧架构的计算机上,例如i386、老式ApplePowerPC、RISC、ARM,而NixOS只专注于现代硬件,例如Amd64和Arm64。软件生态OpenBSD和NixOS都提供了大量的软件包,但相对而言NixOS的选择更多。当然,这并不是说OpenBSD做得不好,因为OpenBSD的大部分包都是正常可用的,而且通常会提供最新版本。作者还表示,他曾多次找到一个在OpenBSD上运行良好但在NixOS上运行不佳的软件包。他还认为OpenBSD包的质量略高于NixOS,前者的错误较少(NixOS包有时有错误,可能与其不寻常的文件结构有关),有时会打补丁以提供更好的默认配置(例如禁用在某些GUI应用程序中默认打开的网络访问)。OpenBSD和NixOS都每六个月发布一次新版本,但OpenBSD只为其最新版本提供安全修复,而NixOS则为用户提供更多的更新包。笔者认为在OpenBSD和NixOS上更新包都很容易,但相对来说,用户在OpenBSD上找到当前使用的版本还是比较容易的。他说这可能是因为他对nixshell了解不够,但事实是,他很难确定他是否真的在使用更新的程序。根据网络堆栈作者的说法,OpenBSD在网络堆栈方面做得很好。它的防火墙包过滤器易于使用、配置简单且高效。OpenBSD提供了路由表/域等机制,用于将一个网络接口分配给整个分离的网络,让程序/用户可靠地暴露给特定的接口,但他还没有找到如何在Linux上实现这些功能。此外,OpenBSD在其基本系统中附带了管理网络所需的所有守护进程(dhcp、slaacd、rpki、电子邮件、http、NAT、ftp、tftp...)与Linux相比,OpenBSD处理网络吞吐量的性能可能低于-par,但对于普通用户或服务器来说应该不是问题,具体取决于所使用的网卡及其驱动程序支持。作者说他不喜欢在Linux上搞网络,因为它太复杂了,当他拔下笔记本电脑上的rj45电缆时,他不知道如何聚合wifi和以太网接口以透明地从一个切换到另一个其他接口。但是这些操作在OpenBSD上很容易做到(作者不喜欢在移动笔记本电脑时丢失所有TCP连接)。系统维护OpenBSD每六个月发布一个新版本。升级系统非常方便。大多数极端情况都记录在升级指南中。作者说,当他需要更新OpenBSD系统时,他不会担心出问题。至于NixOS,他也很容易更新,并且保持系统清洁,他升级从来没有遇到过任何问题,如果出现问题可以回滚到以前的版本。因此,虽然这两个系统采用不同的方法,但都运行良好。根据文档作者的说法,虽然NixOS的文档非常丰富,但往往无法提供有用的信息。NixOS文档有一个名为“configuration.nix”的手册页,它提供了所有系统参数选项,但它是由NixOS代码生成的,通常除了描述API外缺乏解释。NixOS网站上也有一些指南和手册,但它们要么是多余的,要么没有真正描述如何解决实际问题。NixOS文档至于OpenBSD,它的网站为一些用例提供了简单的“常见问题解答”,然后在精心编写的手册页中详细介绍了所有系统及其内部结构。用户一开始可能会觉得不友好或复杂,但一旦尝到了OpenBSD手册页的甜头,再看其他文档时很容易失望。如果用户必须为某些依赖于基本系统组件(而不是软件包)的任务设置OpenBSD系统,用户可以仅使用手册页离线完成。作者提到OpenBSD不是一个可以在各种论坛或githubgists上找到文档的系统,而在NixOS上他经常有这种感觉。OpenBSDFAQOpenBSDManPagesContributionsNixOS使用现代贡献系统,该系统依赖于GitHub和机器人来自动执行许多贡献检查,帮助贡献者快速检查他们的工作,而不会“浪费”时间来阅读每个代码提交.在OpenBSD中,开发人员之间关于更改代码的讨论是在邮件列表上进行的,仅在人类之间进行。所以这种方法的可扩展性不够好,但是人与人之间的接触会给出比机器人更好的解释。当然,前提是这些任务有趣,有小伙伴愿意为之付出时间和精力,所以就会出现永远得不到反馈的情况。结论作者的评价是他不能指出一个系统比另一个更好,也不能说一个系统在某项任务上绝对更好。他对OpenBSD的热爱来自于它的小社区——人们喜欢做不同的事情。他知道OpenBSD的工作原理,并且可以在出现问题时轻松调试。由于系统一直保持相对简单,因此在支持硬件的情况下运行良好。他还喜欢NixOS,因为它是一个冒险的系统,提供作者认为是计算的未来的新体验(事务性更新、可重复性),但它也使理解和调试更改变得困难。非常复杂。本文转自OSCHINA文章标题:评论:OpenBSDvsNixOS本文地址:https://www.oschina.net/news/193048/openbsd-vs-nixos
