With the 10th anniversary of the Pi there are a number of hardware related articles.

Raspbian was initially a port of Debian for the ARM6 processor used on the original Pi.
This was optimised to support the unique boot mechanism of the Pi hardware and to suit the limited processor power and RAM of the Pi.


The first SD card image based on Raspbian was released in July 2012

New Raspbian, Debian and Arch Linux images were released a year later in June 2013

This was updated in Sept 2013, including Java and required a 4GB SD Card.

Sept 2014 saw the addition of an accelerated web browser.

Dec 2014 saw significant changes to the GUI interface (Simon Long's first).

May 2015 introduced dhcpcd and a New Wifi Interface.
This was highly controversial, and a cause of much confusion, largely due to lack of documentation and consideration for users who did not use the GUI, but ultimately resolved with documentation.


Jessie was released in Sept 2015

The default behaviour of the new Jessie image is to boot straight to the desktop GUI, not to the Linux command line.
A number of applications were added including LibreOffice and Claws Mail.

Python can now access GPIOs as a standard user.

Jessie caused some installation problems for users as the download exceeded 4GB in size.

One change under the hood was the inevitable change to systemd.

An update in Dec 2015 included GPIO Zero which vastly simplify access to GPIO pins.

Update May 2016
Added limited Bluetooth support.
The SD Card Copier application will copy Raspbian from one card to another.

Includes the pigpio library from abyz.co.uk – this provides a unified way of accessing the Pi’s GPIO pins from Python, C and other languages. It removes the need to use sudo in programs which want to access the GPIOs, and as a result Scratch now runs sudo-less for everyone.

Sep 2016 Introduced PIXEL (since retired) - a set of cosmetic changes which seem to have provoked lots of discussion.

RealVNC have ported their VNC server and viewer applications to Pi, and they are now integrated with the system.

Includes an initial release of Chromium for the Pi. This uses the Pi’s hardware to accelerate playback of streaming video content on Pi 2 and Pi 3.


Stretch was released in Aug 2017

The differences between Jessie and Stretch are mostly under-the-hood optimisations.

Bluetooth audio

In Jessie PulseAudio was used to provide support for audio over Bluetooth. In Stretch the bluez-alsa package is used to make Bluetooth audio work with ALSA itself. PulseAudio is therefore no longer installed by default.

Raspbian update: supporting different screen sizes The Appearance Settings application has a new Defaults tab with 3 options which adjust font size, icon size, and various other settings to values which ought to work well on screens with a high or low resolution

Raspbian update: first-boot setup wizard and more

Setup wizard

Whenever a new Raspbian image is booted for the first time a simple setup wizard runs automatically to walk you through the basic setup operations.

Recommended software

A program to install optional programs or uninstall some of the preinstalled programs.

New PDF viewer

Replacing Xpdf with qpdfView, which is a much-improved PDF viewer. It has a more modern user interface, it renders pages faster, and it preloads and caches future pages while you’re reading.

An update for Raspbian

VLC Media Player

Raspbian includes a fully hardware-accelerated version of VLC. It plays most audio file formats; it uses software codecs for many video formats, and it uses VideoCore’s video engine to accelerate playback of H.264, MPEG-2 and VC-1 video.

Thonny 3

Version 3 offers a lot of useful new debugging features

Desktop configuration

Most of the desktop components have now been modified so that they correctly read the global configuration files, and for future releases, we are going to try to just modify the global versions of these files and not touch the local ones. If we update the configuration, you will see a message informing you that this has happened, but your local files will be left unchanged.
To make sure you get the latest configuration, launch Appearance Settings and choose one of the buttons on the “Defaults” tab

Multiple images

All future releases will now have 2 separate images.
The default Raspbian release is now a minimal install — it gives you the desktop, the Chromium browser, the VLC media player, Python, and some accessory programs.
Running alongside this is the Raspbian Full image, which also includes all our recommended programs: LibreOffice, Scratch, SonicPi, Thonny, Mathematica, and various others.


Buster was released in Jun 2019

There are no huge differences between Debian Stretch and Debian Buster.

Thonny Python is now the default Python editor, and IDLE is no longer included.

If the GL driver is in use, there’s a new Screen Configuration tool – this enables you to set up the arrangement of multiple monitors on a Raspberry Pi 4. It can also be used to set custom monitor resolutions, which can be used to simulate the effect of pixel doubling.

The /boot FAT partition is increased from 56MB to 256MB to support newer models.

There were updates in Feb 2020 and May 2020.

The latter the changed the name of the 32-bit version of Raspberry Pi OS (from Raspbian)

4th Dec 2020

From this release Raspberry Pi OS uses the PulseAudio sound server.
Options were added to the Raspberry Pi Configuration tool for the status LED on the new Raspberry Pi 400 and to control the new Raspberry Pi Case Fan.


Raspberry Pi OS Bullseye was released in Nov 2021

This version seems to have been designed for users who use the GUI Desktop on a Pi4/Pi400 with little consideration for those running older models, headless or at CLI (and even less testing of these scenarios).

Debian Bullseye has relatively few changes which are visible to users – most of the changes are patches and upgrades to existing applications and features.

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.

All of the desktop components and applications are now using version 3 of GTK+

Window manager

One of the changes which was prompted by the move to GTK+3 is that we are using a new window manager, called Mutter, instead of the Openbox window manager used in previous releases.

Mutter can only run properly on a Raspberry Pi with 2GB or more. On Raspberry Pis with less than 2GB the older Openbox window manager is still used.


One thing that many other operating systems now do is to provide an integrated notification system, whereby messages to the user about the system or applications all appear in a consistent and uniform manner. For this release, we have added a common notification manager to the taskbar, which can be used by the taskbar and any of its plugins, and can also be accessed via other applications.

Notifications are shown in windows at the top right corner of the screen, and are displayed in chronological order, with the most recent notifications being presented at the top. Notifications will automatically time out and be hidden after fifteen seconds, or can be cleared immediately by clicking on the windows.

Updater plugin

Another new feature, which makes use of the notification system, is an easy way to be informed about and to install system and application updates.

KMS video driver

The KMS (kernel modesetting) driver, which was an experimental option in previous releases, is now the standard video driver in this release.

Screen Configuration cannot select orientation to left or right. Those options are not available with the KMS driver at the moment.

There is no support for changing theme; the system is designed to work with the PiXflat theme.


If you have enabled the in-built VNC server, you should have Openbox rather than mutter. enabling VNC in Raspberry Pi Configuration (on the Interfaces tab) will disable mutter You can set a headless resolution with raspi-config for VNC.

New camera driver

The driver used by Raspberry Pi to access camera modules has now been replaced with libcamera, a standard Linux API. As with the video driver change, this means less closed-source proprietary code, and makes it easier for third parties to develop new camera hardware and software.

There are a number of new applications to use the new libcamera API, such as libcamera-vid libcamera-still etc.

They are not exactly the same as the raspivid raspicam but they shouldn’t be too difficult to work out. As for libraries, there are of course the libcamera API and you can use the libcamera-app sources to learn more.

  • Nice post, I just learned a few things from it! Mar 9, 2022 at 7:54
  • Ditto! It's a bottler, mate!
    – Seamus
    Mar 10, 2022 at 22:25


You must log in to answer this question.

Browse other questions tagged .