FreeBSD开发者正在评估将Rust引入基础系统的可能性和好处。

最近有个新动向可能会改变FreeBSD的发展方向,Alan Somers是新的FreeBSD FUSE驱动程序实现的幕后推手,他开始讨论在操作系统的基本系统中引入Rust编程语言的问题。

Somers还因为为重要的FreeBSD库编写Rust包装器而受到赞誉,他与项目提交者进行了全面的对话,评估了将Rust整合到FreeBSD基本系统中的成本和收益。

在讨论中确定的主要成本是可能导致构建时间翻倍。Alan Somers 建议在“buildworld”进程之后引入一个额外的步骤,用于需要外部工具链的任务。这一战略举措旨在减轻对构建时间的影响,同时解锁Rust整合可能带来的许多好处。

在这些讨论中突出的一个重要好处是简化和增强实用程序的开发。Rust进入FreeBSD基础系统将为开发人员开辟新的可能性和效率,使得创建某些工具更加简单,甚至在某些情况下可能变得可行。为了进一步阐明,已经列出了一个实用程序列表,其中大多数当前使用C++和C编写,这表明它们可以在Rust中进行重写。

相关:

征服 Rust 编程世界的终极指南  https://www.linuxmi.com/rust-programming-guide.html

FreeBSD 13.0-RC3 发布 https://www.linuxmi.com/freebsd-13-0-rc3-wireguard.html

如果Rust支持出现在基础系统中,团队打算在Rust中重写的实用程序列表:

  • ctl-exporter:将FreeBSD系统统计数据导出给监控工具。
  • fusefs tests:用于FUSE(用户空间文件系统)虚拟文件系统实现的单元测试。
  • devd:基于硬件存在和配置动态管理设备节点。
  • zfsd:ZFS文件系统的主要守护程序,处理元数据管理和I/O操作等任务。
  • nscd:名称服务缓存守护程序,为更快的访问缓存DNS和NIS(网络信息服务)查找。在用户空间运行的802.11ac和Lightning堆栈的组件:用于使用802.11ac和Lightning协议管理无线网络接口的驱动程序和实用程序。
  • freebsd-kpi-r14-0:FreeBSD版本14.0的内核编程接口(KPI)头文件,使用户空间程序能够与内核交互。

如果Rust支持引入到基础系统中,可以将Rust语言的端口列表转移到基础系统中:

  • gstat-rs:为Prometheus监控公开硬件传感器数据(温度、风扇速度等)。
  • geom-exporter:从FreeBSD磁盘几何模块中抓取性能指标,为Prometheus。
  • nfs-exporter:与Prometheus共享NFS服务器统计信息,用于监控NAS性能。
  • virtiofsd-rs:使用Rust实现virtio-fs文件系统,实现对虚拟磁盘的直接访问。
  • jail-exporter:为Prometheus导出有关FreeBSD jails(隔离的用户环境)的度量。

已经有几个用Rust编写的jail环境管理系统:

  • pjdfstest:这是一个专为测试FreeBSD jails而设计的测试框架。它允许开发人员和系统管理员编写自动化测试,测试jail的启动、配置和行为。
  • pf-rs:如前所述,pf-rs是一个下一代数据包过滤防火墙,可以与jail一起使用。它提供了高级功能,并且可以与Rust工具集成,使其成为管理jail防火墙的强大选项。
  • benchpmc:这个工具专注于测试jails的性能。它允许您比较不同jail配置和设置的性能,帮助您优化特定工作负载的jail设置。

随着FreeBSD开发人员权衡构建时间增加与简化实用程序开发的潜在好处,将Rust整合到基础系统中的潜在好处将使FreeBSD在未来变得更加强大。

邮件列表的讨论中了解更多信息。

发表回复