This week has undoubtedly been filled with noteworthy events for the entire Open Source community. Following NVIDIA’s surprise release of the source code for their Linux GPU driver a few days ago, Microsoft has released CBL-Mariner version 2.0 of their internally developed Linux operating system.
But before we go any farther, we need to clarify something – Microsoft CBL-Mariner is not a standard Linux distribution for your daily work.
You won’t find graphical environments like GNOME, KDE, or others here. Nor will you find the familiar package managers such as APT, DNF, or Pacman, although Microsoft CBL-Mariner Linux uses the RPM format for software distribution.
Moreover, this is also not a Linux distro you can expect to use for your server needs.
Instead, Microsoft CBL-Mariner is a free and open-source Linux distribution for Microsoftโs cloud infrastructure and edge products and services. The distro’s primary goal is to be used on the Microsoft Azure cloud platform for the Azure Kubernetes Services offers.
Furthermore, the CBL-Mainer is utilized in Azure IoT Edge to execute Linux workloads on Windows IoT and a backend distribution to host the Weston compositor for WSLg.
So with that clarification made, letโs see what the newly released Microsoft CBL-Mariner 2.0 offers.
Microsoft CBL-Mariner 2.0 Highlights
CBL-Mariner 2.0 contains only the essential components and is tailored for low memory and disk space use and fast download speeds.
We start with the fact that Microsoft CBL-Mariner Linux 2.0 is a massive improvement on the previous version, CBL-Mariner 1.0. For example, in the last release, the total number of packages was around 3300. However, we currently have a base of about 7000 packages total in the distro across all repositories.
This gives us a pretty clear indication of Microsoft engineers’ amount of work in developing the distribution. Furthermore, many of the 1.0 release’s packages have been upgraded to current versions and are now included in CBL-Mariner 2.0.
Those curious can take a look at the entire distribution package at packages.microsoft.com.
CBL-Mariner 2.0 also marks the RPM Database’s switch from Berkeley DB to SQLite, providing a more robust database and newer SQLite features. According to the distro’s developers, this is considered a breaking update due to the change in the rpmdb backend. So, please do not try to upgrade an existing instance from 1.0 to 2.0.
Under the hood, CBL-Mariner uses the most recent Microsoft LSG 5.15 kernel. On top of that, the distro adds full-featured eBPF support, enabling increased observability, debugging for Kubernetes setups, and additional capabilities.
Furthermore, the distro includes enhanced SELinux compatibility, enabling more robust MAC security in controlled environments.
The distribution has not undergone much change in terms of installation from the previous 1.0 version. Below you can see the installer of CBL-Mariner 2.0 Linux in action.
As previously stated, much of the software that comes with CBL-Mariner 2.0 has been updated.
- Systemd 250.3
- Glibc 2.35
- Moby-containerd 1.6.1
- OpenJDK 11
- NodeJS 16.14.2
- Python 3.9.10
- Ruby 3.1.2
- Golang 1.17.8
- Rust 1.59.0
For detailed information about all changes, you can refer to the official announcement or visit the project’s GitHub.
For those who want to try out CBL-Mariner 2.0, a 1.1 GB installation ISO image file (Mariner-2.0-x86_64.iso) is available. The announcement contains a link to the installation ISO file.