27.1 NetBSD 项目概述
NetBSD 是一个开源、可移植的类 Unix 操作系统,作为 BSD 家族的重要成员,它是最早从 4.4BSD Lite 衍生的操作系统之一,其首个版本 0.8 发布于 1993 年 4 月 20 日。NetBSD 的学术渊源可追溯至加州大学伯克利分校(UC Berkeley)的 Berkeley Software Distribution(BSD)项目,在操作系统可移植性研究领域具有重要地位。本章将系统介绍 NetBSD 的技术特性、生态系统及实践应用。
技术特性与生态系统
NetBSD 的口号 是“Of course it runs NetBSD”(意为“当然可以运行 NetBSD”),这一口号集中体现了其在跨平台兼容性方面的核心技术追求。
NetBSD 支持多个架构。其中,一级架构为官方完全支持的平台,二级架构为社区维护的平台。目前 NetBSD 支持 9 个一级架构、49 个二级架构,其架构支持广度在同类操作系统中处于领先地位。
NetBSD 主要面向技术爱好者和开发者,对于普通用户来说具有一定的学习曲线,开发者构成了该系统的核心用户群体。
NetBSD 开发的 pkgsrc 包管理器框架也支持 macOS、Linux 等多个操作系统。pkgsrc 通过可移植的构建脚本实现跨平台软件管理,体现了 NetBSD 在可移植性软件工程方面的设计理念。
NetBSD 提供 Linux 兼容层,可运行部分 Linux 二进制程序,主要支持命令行工具和基础图形应用。
在硬件驱动方面,NetBSD 自带 i915 显卡驱动和 AMD 相关驱动,并支持 UEFI 启动和 NVMe 存储设备。
NetBSD 对 NVIDIA 显卡的支持程度相当于 Linux 3.15 内核版本水平,约支持到 2016 年的 Pascal 架构(GeForce GTX 10 系列显卡)。相关信息可参考 nouveau / NetBSD 和 nouveau(4) - NetBSD Manual Pages(具体硬件支持列表)。
项目支持渠道
若读者想为 NetBSD 项目提供支持,最简单的方式是通过 GitHub Sponsors 进行捐赠。还能刷个 GitHub 徽章 Public Sponsor 出来
技巧
支付后支付方式将被绑定,如需解除绑定,可联系 GitHub 客服 提交工单,通常在一个工作日内即可处理。
此外,还可通过 Donate using Stripe 进行捐赠,该方式支持中国银联、Google Pay 等多种支付方式。
NetBSD 上的 ZFS
ZFS(Zettabyte File System,泽字节文件系统)作为一个功能强大的企业级文件系统,在 NetBSD 上也有相应的实现。以下为相关资源:
手册页 zfs(8) - NetBSD Manual Pages,提供 ZFS 文件系统的官方命令参考
Finish ZFS,ZFS 移植项目进展报告
Google 编程之夏 2007,记录 ZFS 引入计划的早期阶段
Google Summer of Code zfs-port project,ZFS 移植项目的官方技术报告
Root On ZFS,提供 ZFS 根分区安装指南
NetBSD zfs Wiki,NetBSD ZFS 维基,记录 NetBSD 从 FreeBSD 引入 ZFS 代码的过程,目前仍基于 illumos ZFS 实现(illumos 是 OpenSolaris 的后继开源项目,与 OpenZFS 存在功能差异),未集成 OpenZFS 新特性
在 NetBSD 源代码中,最早可见的 ZFS 提交为 Import Opensolaris source code used with zfs port. Zfs code si from date。从代码提交量分析,该 ZFS 移植项目长期缺乏维护和更新。
课后习题
查找 NetBSD 源码中 ZFS 的实现路径,对比分析其与 OpenZFS 新特性之间的代码差异,并在 QEMU 中尝试构建 Root On ZFS 安装。
选取 NetBSD 的 pkgsrc 包管理器框架,重构其最小实现原型。
修改 NetBSD 对 NVIDIA 显卡支持的策略,验证其与 Linux 3.15 内核版本的行为差异。
最后更新于