自 2019 年发布以来,树莓派官方操作系统 Raspberry Pi OS 一直是以 Debian ‘buster’ 为基础,而 Debian ‘bullseye’ 发布之后(Debian 以皮克斯的「玩具总动员」电影中的角色命名他们的版本—— Bullseye 是 玩具总动员2 中伍迪的马),树莓派官方也将操作系统同步升级了。
Debian ‘bullseye’ 对用户可见的重大更改相对较少——文件系统和打印有一些底层更改,但大部分更改是对现有应用程序和功能的补丁和升级。然而,除了 Debian 本身的变化之外,Raspberry Pi OS 的 bullseye 版本在桌面环境和对树莓派硬件的支持方面有许多重大变化。
GTK+3
所有桌面组件和应用程序现在都使用 GTK+ 用户界面工具包的第 3 版。GTK+ 是一个软件层,应用程序可以使用它来绘制标准用户界面组件(称为“小部件”),例如按钮、菜单等,从而使所有应用程序具有一致的外观和感觉。到目前为止,大多数桌面都使用了 GTK+ 工具包的第 2 版,但是越来越多的 Debian 应用程序正在使用 GTK+3,因此为了尝试保持一致,我们已将所有软件和桌面本身升级到较新的版本。
GTK+3 已经存在好几年了,人们偶尔会问为什么我们之前没有转向它。简单的答案是,使用 GTK+2 比使用 GTK+3 更容易做很多事情,尤其是在定制小部件的外观时——GTK+3 删除了我们依赖的几个有用的功能。最终有必要为其中的许多问题找到变通办法——希望没有人会注意到它们,并且一切仍会像以前一样工作!
您会注意到小部件的一些变化——最明显的是选项卡式界面的新外观。
其他一些控件的外观略有不同,但我们已努力确保一切看起来仍然很熟悉,并且基本没有变化。GTK+3 只是为我们未来的开发提供了一个更现代的基础,并使我们与其他 Linux 桌面环境保持一致。
窗口管理器
迁移到 GTK+3 所引起的变化之一是我们使用了一个新的窗口管理器,称为 mutter,而不是以前版本中使用的 openbox 窗口管理器。
窗口管理器负责在每个应用程序窗口周围绘制标题栏和窗口框架。mutter 是所谓的合成窗口管理器,这意味着它不是将窗口框架直接单独绘制到屏幕上的现有窗口上,而是将所有窗口绘制到屏幕外的内存缓冲区,在那里为整个窗口创建完整的图像屏幕。然后将其发送到要显示的硬件。
因为它可以控制整个屏幕,所以合成窗口管理器可以创建一些传统窗口管理器不可能(或至少不容易)的漂亮视觉效果:例如,它可以使窗口的角变圆,或显示窗口边框阴影。(虽然我们在 openbox 中确实有圆角,但这是通过为每个窗口绘制多个不同大小的框架而以一种相当低效的方式完成的 – 它有效,但它确实不优雅!)
GTK+3 依靠合成窗口管理器来圆化工具提示的角;在 GTK+2 中,这是通过一种类似于我们用来在 openbox 中创建圆形窗口框架的 hack 来完成的,但是这在 GTK+3 中已被删除,而是要求窗口管理器执行此操作。
Mutter 提供了很好的窗口打开和关闭动画,并在每个窗口边框后面提供了阴影;这些变化是微妙的,但它们确实让桌面感觉更现代。
Mutter 的一个缺点是,由于需要将整个屏幕绘制到内存才能显示,因此对 RAM 的要求相当高,并且只能在 2GB 或更大的 Raspberry Pi 上正常运行。因此,在小于 2GB 的 Raspberry Pi 上,仍使用较旧的 openbox 窗口管理器。(不幸的是,这确实意味着,在这些系统上,工具提示现在将具有方角。
Mutter 的另一个优点是它是迈向 Linux 桌面环境未来的必要步骤。Linux 中的桌面一直基于 X Window System,通常简称为 X。它提供了窗口环境的基本服务——绘制窗口、移动它们、管理鼠标指针等等。但 X 现在是一项非常古老的技术——它于 1984 年首次发布——虽然它已经服务了近 40 年,但一些桌面环境现在正在使用替代品。其中最流行的是一个叫做 Wayland 的系统,它最近成为了 Ubuntu 使用的窗口系统。
从将 Raspberry Pi OS 切换到 Wayland,我们还有很长的路要走,但它的一个要求是兼容 Wayland 的合成窗口管理器,而使用 mutter 是这条道路上的第一步。
通知系统
许多其他操作系统现在所做的一件事是提供一个集成的通知系统,从而以一致和统一的方式向用户显示有关系统或应用程序的消息。在此版本中,我们为任务栏添加了一个通用通知管理器,任务栏及其任何插件都可以使用它,也可以通过其他应用程序访问它。
通知显示在屏幕右上角的窗口中,并按时间顺序显示,最近的通知显示在顶部。通知将在 15 秒后自动超时并隐藏,或者可以通过单击窗口立即清除。
通知超时可以在面板首选项对话框的外观选项卡上配置,通过右键单击任务栏访问。如果超时设置为零,则通知将一直显示,直到您单击它们。在此对话框中,您还可以完全关闭通知——尽管我们不建议这样做!
目前,当 USB 设备被移除、电源电压过低以及固件检测到各种错误情况(例如内存分配问题和无效配置选项)时,都会生成通知。其中一些已经在以前的版本中引起了用户的注意,但现在以更加一致和用户友好的方式发生,为系统的未来扩展提供了更多空间。
更新插件
另一个利用通知系统的新功能是一种了解和安装系统和应用程序更新的简单方法。
到目前为止,这需要在终端窗口中使用 apt,但现在它已更新为具有更用户友好的图形界面,作为屏幕顶部任务栏中的新插件提供。
每次启动 Raspberry Pi 时,插件都会检查是否有可用更新。(如果您一次让 Raspberry Pi 通电数天或数周,请不要担心 – 它每 24 小时进行一次额外检查。)如果有更新可用,则显示更新图标 – 下图中圆圈内的箭头– 显示在任务栏上,并显示通知消息。
单击此按钮会弹出一个菜单,您可以通过该菜单打开一个列出更新的窗口(以防您在安装之前想知道它们是什么……)或直接安装它们。
一个对话框将向您显示更新的安装进度,但它们将在后台继续运行,您可以在安装时继续执行任何操作。
每天都会在操作系统中发现并修复安全威胁和漏洞,让您的计算机保持最新状态变得前所未有的重要——希望现在在 Raspberry Pi 上像在任何其他计算机上一样容易。
文件管理器
此版本的文件管理器中的视图选项已略有简化。在以前的版本中,您可以选择四种模式之一——缩略图、图标、小图标和列表。这有点混乱——缩略图模式和图标模式之间的差异有些令人困惑,因为它们涉及不同的图标大小以及是否显示缩略图,而小图标模式更像是对早期版本的回归Windows 比什么都实用。
对于此版本,现在只有两种模式 – 图标或列表。显示图标缩略图(如果适用)的选项现在位于“视图”菜单中。任一模式下图标的大小都可以通过放大/缩小来控制,也可以在“视图”菜单中进行控制。
这整理了显示选项,并希望在不删除任何有用功能的情况下这样做。
KMS 视频驱动
KMS(内核模式设置)驱动程序是以前版本中的一个实验性选项,现在是此版本中的标准视频驱动程序。
KMS 是 Linux 标准机制,用于控制与显示器的连接。以前的视频驱动程序是树莓派专用的,内置于树莓派计算机独有的自定义固件中;它也是闭源的。这使我们能够对我们的硬件进行许多优化,但这也意味着任何想要直接访问显示器的应用程序都需要专门为树莓派编写。通过迁移到 KMS,任何使用标准 Linux 显示 API 编写的应用程序都应该无需修改即可在树莓派上运行。
这种方法的另一个优点是树莓派的显示驱动程序现在都是 Linux 内核的一部分,因此可以由第三方编写或修改;以前这些代码都在闭源固件中。这将使自定义显示器等项目的制造商更容易添加对树莓派的支持。
新的摄像头驱动
树莓派用于访问摄像头模块的驱动程序现在已替换为标准 Linux API libcamera。与视频驱动程序的变化一样,这意味着更少的闭源专有代码,并使第三方更容易开发新的相机硬件和软件。
对于过去编写过基于相机的应用程序的任何人来说,这是一个非常重要的变化,而且太大而无法在此涵盖。很快就会有一篇专门介绍新相机驱动程序的博客文章,请时刻关注!
书架
Custom PC 杂志最近可以作为 PDF 文件免费下载以及购买印刷版,现在可以在 Bookshelf 应用程序中使用。
其他变化
像这样的重大升级一样,大多数应用程序都已升级到最新版本;特别是 Chromium 网络浏览器现在的版本是 92,并且已经过优化以使用树莓派硬件来加速视频播放。
如何升级?
对于重大升级,我们建议您下载新映像,重新安装所有应用程序,并进行数据迁移。Debian 主要版本升级包含很多更改,并且很容易在系统某处进行的一些小调整与您所做的某些更改不兼容,最终可能会导致系统损坏和树莓派无法启动。创建新 SD 卡的最简单方法是使用此处提供的 Raspberry Pi Imager 工具,或者您可以从此处下载新图像并使用 Etcher 等工具将其闪存到新 SD 卡。