Debian 11, dubbed 'bullseye' and the successor to 'buster', arrived in August and now the makers of the Raspberry Pi have finally updated Raspberry Pi (RPi) OS to this version.
The move to Debian 11 for Raspberry Pi OS took a little longer than expected and doesn't bring a huge amount of changes from the Debian side. However, there are several changes that come from the RPi side.
"Debian 'bullseye' has relatively few major changes which are visible to users -- there are some under-the-hood changes to file systems and printing, but most of the changes are patches and upgrades to existing applications and features," explains Raspberry Pi engineer, Simon Long.
"However, over and above the changes in Debian itself, the 'bullseye' version of Raspberry Pi OS has a number of significant changes to the desktop environment and to the support for Raspberry Pi hardware," Long added.
Debian releases are important community-driven events and affect Linux distributions like Canonical's Ubuntu as well as Raspberry Pi OS. Debian 11 is a long-term support release with two to six years of support and is the first release to provide a Linux kernel with support for Microsoft's exFAT filesystem.
The headline feature from Raspberry Pi OS is support for GTK+ version 3. GTK+ is a software layer that delivers graphical user interface components -- a.k.a. 'widgets' -- that help make RPi devices more useful as desktop computers.
"All of the desktop components and applications are now using version 3 of the GTK+ user interface toolkit," Long notes.
"Up until now, most of the desktop has used version 2 of the GTK+ toolkit, but increasing numbers of Debian applications are using GTK+3, so to try and keep things consistent, we've upgraded all our software and the desktop itself to the newer version."
GTK+3 lacks some features that RPi OS previously relied on, so the RPi OS team added workarounds to make them work like GTK+2, including a new look for tabbed interfaces.
With the shift to GTK+3, RPi OS has a new windows manager called mutter, which replaces the openbox windows manager from previous releases. Mutter draws the title bar and window frame around each app window and gives the desktop a more modern feel, but comes with some RAM-related drawbacks.
"Mutter is what is known as a compositing window manager, which means that rather than individually drawing the window frames straight onto the existing windows on screen, it draws all the windows to a memory buffer off screen, where it creates a complete image for the entire screen. This is then sent to the hardware to be displayed," explains Long.
"It is quite demanding in terms of RAM, and can only run properly on a Raspberry Pi with 2GB or more. As a result, on Raspberry Pis with less than 2GB, the older openbox window manager is still used instead."
GTK+3 moves RPi OS closer to other Linux desktop environments derived from the X Window System, which are gradually being updated with systems like Wayland in Ubuntu. Mutter moves RPi OS closer to Ubuntu in this respect.
"We are still quite a long way from switching Raspberry Pi OS to Wayland, but one of its requirements is a Wayland-compatible compositing window manager, and using mutter is the first step on this path," says Long.
Notifications are also updated in this release, with a notification manager added to the taskbar that can be accessed through other applications. The most recent notifications are displayed at the top and then vanish after a configurable period (15 seconds, for example); you can also have notifications persist until they are clicked away, or even switch them off completely.
There's also a new updater plugin for app updates, which removes the need to use the 'apt' command in a terminal window. In other words, RPi OS is now more graphical when it comes to library updates, which are displayed in a visual dialog box.
Elsewhere, there are updates to the file manager, which is now more consistent between thumbnail and icon modes. Also, the Linux KMS (kernel modesetting) driver is now the standard video driver, and there's a new driver to access camera modules -- a standard open-source Linux API called libcamera.