FreeBSD 15移除32位支持并重新设计系统构建方式

التعليقات · 23 الآراء

FreeBSD 15.0本周发布,作为Unix世界中Linux的主要替代品。该版本大幅削减32位平台支持,不再支持x86-32、POWER和ARM-v6,仅保留armv7作为唯一的32位平台。主要变化包括首次采用实验性pkgbase系统构建,将核心操作系统分解为多

  FreeBSD 15.0-RELEASE于本周发布,这是Unix世界中Linux之外的主要替代方案的最新版本。除了众多错误修复和组件升级外,此版本的主要变化包括减少了操作系统支持的平台数量,以及重新设计了系统构建和组件软件打包方式。

  FreeBSD 15大幅减少了对32位平台的支持。与2023年的FreeBSD 14相比,不再为x86-32、POWER或ARM-v6提供构建版本。正如发布说明所述:"历史悠久的32位硬件平台i386、armv6和32位powerpc已经退役。32位应用程序支持通过其相应64位平台的32位兼容模式得以延续。armv7平台仍是最后一个受支持的32位平台。我们感谢它们的服务。"

  现在FreeBSD支持五种CPU架构——两个一级平台x86-64和AArch64,以及三个二级平台armv7及更高版本、powerpc64le和riscv64。

  可以说,现在是时候了。AMD的第一批64位芯片在22年前开始出货。英特尔在1978年推出了最初的x86芯片8086。如今,64位技术的存在时间几乎和整个英特尔80x86平台在64位版本首次出现时的历史一样长。相比之下,几个月前,Debian 13也放弃了x86-32版本——这比Canonical发布首个仅支持x86-64的发行版Ubuntu 19.10晚了六年。

  另一个重大变化是这是在新pkgbase系统下构建的第一个版本,尽管目前仍是实验性的和可选的。如果选择pkgbase安装,那么核心操作系统本身将从多个独立的软件包安装,这意味着整个系统可以使用包管理器进行更新。

  在Linux世界中,这是常规做法,但Linux是一个非常不同的系统。Linux发行版的所有组件都由不同的团队开发和维护。内核是一个独立项目,与初始化系统分离,两者都与核心命令行操作系统分离(在大多数发行版中,大部分来自GNU项目),而这些又完全独立于打包系统、桌面环境和shell等。这就是Linux以发行版形式存在的原因。发行商从各种组件中选择,将所有不同的部分组装成他们喜欢的东西。这有点像从一百个不同的套件中组装一个独特的模型。

  FreeBSD,像其他BSD和大多数其他操作系统一样,构造方式非常不同。核心操作系统是一个完整的集成整体。其所有组件都从由单一团队管理的单一代码库构建。安装BSD的经典方式是安装几个发行集,包括作为单一单元的基础操作系统镜像。这为你提供了一个完整的工作操作系统,然后你可以使用包管理器在其上添加所需的任何软件。这工作得很好,但缺点是它强制你分两次独立的操作来更新操作系统,使用一个工具更新核心操作系统,使用不同的工具更新已安装的应用程序。正如我们最近在尝试将NetBSD 10.0更新到10.1时发现的那样,如果你不按照精确正确的顺序更新内核、用户空间和应用程序,结果是不匹配的部分无法协同工作——操作系统损坏。(我们后来了解到——太晚了——正确的方法显然是从安装媒体启动并使用它进行就地升级。)

  BSD基础系统加应用程序模型有效,但确实有缺点。一个例子是很难从基础镜像中删除组件,这使得很难为最小安装减少操作系统——比如嵌入式系统或轻量级虚拟机。(例如,GNU groff排版工具是基础镜像的一部分,2025年很少有人需要它。)从包构建整个系统有助于实现这一点。

  FreeBSD有一个用于自动化包构建的工具,称为Poudriere构建系统,但这无法构建基础操作系统。与pkgbase系统一起使用时,它将更加强大。FreeBSD 15仍有安装单体基础系统的选项,还有pkgbasify命令将该布局转换为更新的组件化布局。

  这一变化在某些地方引起争议。多产的BSD博主Vermaden在发现删除所有包的命令——pkg delete -af(在早期版本中是安全的)——摧毁了整个操作系统后,写了一篇长文章,并为此提交了错误报告。FOSS部门最近与一位OpenBSD开发者交谈,他认为这种变化是鲁莽的,与既定的BSD实践根本相悖。

  即使有这样的观点,较旧的FreeBSD构建模型与Linux发行版的组装和维护方式也大不相同。如今,大多数Unix技术人员首先熟悉Linux,其他一切都相距甚远。

  计划是到2027年12月预定的FreeBSD 16,重构将完成,旧的发行集将被删除,当前的freebsd-update命令及其相关基础设施可以关闭。

  另一个重大变化是可重现构建,这是项目在10月底达到的里程碑。这一变化是确保确定性编译的多项目倡议的一部分:能够证明某组源文件和编译指令保证产生相同的二进制文件,作为对受损代码的对策。一个便利的副作用是构建整个操作系统,包括安装媒体镜像,不再需要root访问权限。

  当然还有其他新功能。许多驱动程序和子系统已更新,此版本具有更好的电源管理,包括挂起和恢复。无线网络得到改进,支持更多Wi-Fi芯片组和更快的无线标准,以及更新的图形驱动程序。硬件说明文档有详细的列表,包括在哪些设备上支持哪些标准。发布公告强调了包含OpenZFS 2.4.0-rc4、OpenSSL 3.5.4和OpenSSH 10.0 p2,并注意到包含一些新的量子抗性加密系统。新的inotify子系统与Linux等效系统兼容,允许操作系统监视文件夹的任何更改。这对于恶意软件扫描器和文件系统索引器等工具非常有用。

  我们在VirtualBox虚拟机中安装了15.0版本。由于我们几年前从FreeBSD 13.1开始学习使用它,现在我们更了解它的期望。我们为虚拟机配置了UEFI而不是默认的BIOS,因为这与FreeBSD默认的ZFS-on-GPT磁盘设置配合更好。

  我们手动添加了桌面安装程序脚本,就像在以前的版本中一样,然后运行它。它检测到正在VirtualBox内运行,并提供自动安装客户机扩展,这很令人印象深刻。它提供12种环境以及自定义选项。

  我们惊喜地看到列表中有CDE,所以尝试了一下。它安装了版本2.5.2,而不是最新的2.5.3——这是可以理解的,因为它只在一周前发布——但我们找不到启动它的方法。然而,最初为FreeBSD本地开发的Lumina桌面工作完美。尽管自2021年1.6.1版本以来没有新版本,但与我们上次看到它相比,它有了显著改进。在FreeBSD 15上,Lumina现在包括文件管理器、文本编辑器、PDF查看器和你期望的大多数其他组件。总的来说,我们发现FreeBSD 15比以前的主要版本更易于使用且不那么复杂。

  在服务器上也应该更容易。FreeBSD 14.2中我们一年前写过的新OCI容器支持现在更加成熟。FreeBSD有自己版本的Podman,你可以在FreeBSD上运行Linux容器。这意味着你可以使用Docker命令和工具,这些对许多开发者来说比FreeBSD本地的Jail系统更熟悉。

  FreeBSD在服务器和公有云中有自己的位置,但作为桌面操作系统运行也越来越容易。它可以运行所有主要的Linux桌面,包括Wayland上的GNOME。这里没有systemd,永远不会有——也没有Flatpak或Snap。

  即使与Debian相比,它也是一个相当简朴的环境。没有Chrome的本地版本(尽管有Chromium的移植版本)和Electron应用程序,这意味着没有VSCode、Slack、Discord或任何东西。也没有Steam的本地版本,但有Linux版本的启动器。

  对于某些人来说,这些缺失将是决定性因素,但对其他人来说,它们可能听起来像是积极的优势。你确实可以获得Firefox——在撰写本文时,是最新版本145.0.2。对于Firefox无法正常工作的任何内容,你可以安装GNOME Web,这里仍称为Epiphany。FreeBSD 15包括这个基于WebKit的浏览器的47.7版本。

  这不是最轻量级的操作系统。尽管根分区只包含5.3GB的文件,但默认情况下,用户的主目录安装在单独的ZFS数据集中。在8GB虚拟机中,FreeBSD使用了相当大的1.8GB内存。根据我们的经验,双启动任何BSD都不是一项简单的任务,所以如果你想尝试,我们建议为其专门准备一个完整的驱动器。话虽如此,我们发现15版本比以往任何时候都更容易安装。对好奇者来说这是好消息,尽管对GhostBSD来说可能是坏消息——但它仍然有相当大的优势。你可能会发现你喜欢它。有些人确实如此。

  Q&A

  Q1:FreeBSD 15中的pkgbase系统是什么?有什么优势?

  A:pkgbase是FreeBSD 15引入的新系统构建方式,将核心操作系统分解为多个独立的软件包进行安装。主要优势包括:可以使用包管理器更新整个系统,便于删除不需要的基础组件以创建最小化安装,以及更好地支持嵌入式系统和轻量级虚拟机部署。

  Q2:FreeBSD 15取消了哪些32位平台支持?

  A:FreeBSD 15不再支持x86-32、POWER和ARM-v6这三个32位平台。不过,32位应用程序仍可通过相应64位平台的32位兼容模式运行。armv7是唯一保留的32位平台。目前FreeBSD支持五种CPU架构:x86-64、AArch64、armv7、powerpc64le和riscv64。

  Q3:FreeBSD 15相比Linux发行版有什么不同?

  A:FreeBSD采用集成式设计,核心操作系统是单一团队管理的完整整体,而Linux发行版由不同团队开发的独立组件组成。FreeBSD没有systemd、Flatpak或Snap,也缺少Chrome、VSCode等Electron应用程序,但提供了更简洁统一的环境。它可以运行Linux容器和主要的Linux桌面环境。

التعليقات
会员免费服务:时刻音乐 时刻云盘 时刻工具箱 时刻标签 GitHub加速 时刻工具