基本上每隔两年,Debian Linux都会进行一次重大的版本更新。
自2019年以来,树莓派的操作系统Raspberry Pi OS一直都是基于Debian10「Buster」开发的。
最新的Debian 11.0版本已经于8月14日正式发布,10月9日又发布了第二个版本11.1,本次大版本的命名为「Bullseye」。
Debian的版本命名规则都来源于玩具总动员,臭小子Buster和红心Bullseye都是里面角色。
树莓派的操作系统随着Debian也一起迎来了更新。
虽然说Debian Bullseye对用户可见的改进来说相对较少,大多数都是一些修补上的工作,还有将现有的应用程序和功能进行了升级。
但在Debian本身的更改之上,Raspberry PI OS的Bullseye版本在桌面环境和对Raspberry PI硬件的支持方面有一些重大变化。
首先是所有的桌面组件和应用都切换为GTK+3。
GTK+是一个软件层,应用程序可以用它来绘制标准的用户界面组件Widget,如按钮、菜单等,以便所有应用程序都有一致的外观和视觉感受。
到目前为止,仍然有大多数桌面应用还在使用GTK+工具包的第2版,但越来越多的Debian应用程序已经开始切换到GTK+3,因此为了保持一致,树莓派操作系统已经将所有软件和桌面程序升级到新版本GTK+3。
GTK+3实际上已经平稳运行了好几年了,经常有用户对树莓派为什么以前不切换到GTK+3,官方给出的答案是:使用GTK+2比使用GTK+3做很多事情要容易得多,尤其是在定制小部件外观时,GTK+3删除了一些之前依赖的几个特性。但现在已经没必要再找回原来的特性,还是努力再写一份吧。
更换以后可以发现树莓派的Widget发生了一些变化,对于可视化用户来说是比较直观的。
其他一些控件的外观略有不同,但开发人员也在试图确保所有东西看起来都很熟悉,基本没有变化就是最好的改变。GTK+3能够为树莓派未来的发展提供了更现代的图形基础,并使树莓派系统与其他linux桌面环境保持一致。
技术栈切换到GTK+3带来的另一个变化就是树莓派系统采用了一个名为mutter 的窗口管理器(window manager),而不再使用openbox窗口管理。窗口管理器的主要功能是负责在每个应用程序窗口周围绘制标题栏(title bar)和窗口框架(window framework)。
mutter是一个复合(compositing)窗口管理器,也就是它将所有窗口拉到屏幕上的内存缓冲区,可以为整个屏幕创建一个完整的图像,而不是单独将窗口框架直接拉到屏幕上的现有窗口上,然后将数据发送到要显示的硬件。
由于它可以控制整个屏幕,因此组合窗口管理器可以创建一些与传统窗口管理器不可能或至少不容易实现的视觉效果:例如,它可以在窗口的拐角处旋转,或在每个窗口后面显示阴影边界。
虽然在openbox中也有圆角,但那是以一种相当低效的实现方式完成的,为每个窗口绘制多个不同大小的框架虽然有用,但代码并不优雅!
mutter还提供优秀的窗口打开和关闭动画,并在每个窗口边框后面提供阴影,虽然变化不大,但他们确实让桌面看起来更现代化了。
但mutter也有缺点,由于它在显示之前需要将整个屏幕绘制到内存里,在RAM内存方面的要求非常苛刻,只能在Raspberry PI 2GB以上的设备上运行。因此,如果树莓派的内存不够2GB的话,那就会仍然使用较旧的OpenBox窗口管理器。
另一个更新的部分是通知系统(Notification),开发人员在Taskbar中添加了一个常见的通知管理器,插件和其他应用程序都可以访问通知系统。
通知显示在屏幕的右上角,并按时间顺序展示,最新的通知显示在屏幕顶部。并且会在15秒后或者通过单击窗口立即隐藏通知。
通知的超时时间也是可以设置的,或者干脆取消掉通知系统,但树莓派官方表示并不建议这样做。
目前的话,当移除USB设备、电源电压过低以及固件检测到各种错误情况(如内存分配问题和无效配置选项)时会生成通知。虽然其中一些功能在以前的系统版本中已经会通知到用户,但新版本能够以一种更一致和用户友好的方式进行。
另一个基于通知系统的改进就是系统和应用的更新问题。以往更新需要在命令行中使用apt,在新版本系统中,树莓派开发了一个对用户更友好的图形界面,可以在屏幕顶部任务栏中的提供可用的新插件。
每次启动树莓派时,都会检查是否有任何更新,如果是24小时插电的,则每24小时额外检查一次更新。如果有更新可用,就会显示更新图标和通知消息。
还贴心地安排了一个进度条来显示安装进度。
系统内大多数应用程序都升级到了最新版本,例如Chromium Web浏览器现在是92版,并且已经过优化,可以使用Raspberry PI硬件加速视频播放。在时区数据库中也添加了更多的城市。
文件管理的试图选项也得到了略微的简化。在之前的版本中,用户可以选择四种模式之一来浏览文件:缩略图、图标、小图标和列表。但这四种分类的命名容易让用户迷惑,尤其是缩略图和小图标之间的界限并不清楚,更多的都是借鉴于早期Windows系统的命名方式。
新版本中,树莓派只采用了两种模式,图标和列表,图标的大小可以通过缩进来解决。
KMS 视频驱动也得到了更新,在之前的版本中一直是一个实验的功能,在新系统中成为标准的视频驱动程序。KMS是一种用于控制与显示器连接的Linux标准机制。
以前的视频驱动程序是为Raspberry PI专门开发的,在自定义固件中构建的,并且源代码也是闭源的。虽然能够让开发人员对硬件进行一些优化,但也意味着任何希望直接访问显示器的应用程序都必须专门为Raspberry PI编写一份。
通过采用KMS驱动,任何使用标准Linux显示API编写的应用程序无需任何修改即可在Raspberry PI上运行,而不必修改。
这种方法的另一个优点是,用于Raspberry PI的显示驱动程序现在都是Linux内核的一部分,因此可以由第三方编写或修改,即协议要求的开源,这也使得定制显示器等产品的制造商更容易增加对Raspberry PI的支持。
树莓派的摄像头模块驱动程序也已被标准Linux API libcamera取代。随着视频驱动程序的变化,这意味着闭源代码更少,使得第三方更容易开发新的摄像机硬件和软件。
如果你以前写过基于摄像头的应用程序的人来说,就可以发现这是一个重大的变化,很快应该就会有一个专门为新的摄像头驱动程序发布的博客帖子,里面应该会有更多好玩的内容。
至于如何安装新系统,官方的建议下载新映像后,重新安装任何应用程序,并将数据从当前系统内备份到其他位置。
由于Debian的版本更新包含了许多细节上更改,对于系统中某些地方所做的小修改来说,与用户所做的一些更改不兼容现象是非常常见的,极有可能会遇到系统崩溃或无法启动Raspberry PI的现象。
如果真的要升级系统,那最好也先备份一份,以防不测,毕竟数据无价!
领取专属 10元无门槛券
私享最新 技术干货