Microsoft Linux is not what you thought (or hoped) it would be

Microsoft Linux has arrived, but it's not what you imagined. Jack Wallen shares his take on this new arrival called CBL-Mariner and even shows you how to build it.

Microsoft logo and Linux penguin logo

Illustration: Lisa Hornung/TechRepublic

When I woke this morning, I admit I checked outside to see if pigs were flying, or if it was raining a plague of locusts. Neither of those things was happening, and yet the impossible still happened. Said impossible? It was finally revealed that Microsoft does, in fact, have its own flavor of Linux.

SEE: Kubernetes: A cheat sheet (free PDF) (TechRepublic)

Before you get too excited about this, we're not talking about an operating system that would eventually supplant Windows as the de facto standard desktop platform. I won't lie... that's exactly what I was hoping for. Or at the least, I was hoping Microsoft would realize the Linux kernel might be a better option to serve as the foundation of Windows.

Nope. Wrong again.

Instead, what Microsoft has released is called CBL-Mariner. If you've been paying enough attention to what's going on around the IT landscape, you can probably make a pretty solid guess as to what purpose CBL-Mariner serves. 

It's a cloud/edge-specific distribution designed to provide "a consistent platform for these devices and services and will enhance Microsoft's ability to stay current on Linux updates." 

CBL-Mariner is Microsoft cashing in on Linux at exactly the right time. Linux is at the heart of nearly every major technology on the forefront of IT. Edge, containers, Internet of Things, Kubernetes... it's all Linux, all the time. And CBL-Mariner has been engineered with the idea that a small set of core packages can address the "universal needs of first-party and edge services." And if CBL-Mariner's core set of packages doesn't meet your needs, the developers have made it easy to layer on top of the default services.

CBL-Mariner is a lightweight Linux distribution that can be used for just about anything you need (so long as it isn't a desktop). There's a catch: Unlike most lightweight, container-based Linux distributions, there isn't an ISO for you to download and install; instead, you build CBL-Mariner on top of Ubuntu. Oddly enough, the GitHub instructions call for using Ubuntu 18.04 instead of the current LTS 20.04. It can be installed on 20.04, but instead of installing python-minimal, you install python2-minimal. Even so, the installation of CBL-Mariner is not for the faint of heart, so you really need to be dedicated to either wanting to see what it's all about or believe that Microsoft can build a better container host for Linux. You'll need to give yourself 30-60 minutes to build the platform. Here's what you need to do. 

How to get Microsoft's CBL-Mariner Linux up and running

First, get a version of the Ubuntu Linux desktop up and running. Log in and open a terminal window. There you'll run all of the following commands:

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt -y install make tar wget curl rpm qemu-utils golang-1.15-go genisoimage python-minimal bison gawk
sudo apt -y install pigz
sudo ln -vsf /usr/lib/go-1.15/bin/go /usr/bin/go
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

At this point, log out and log back in. Go back to the terminal and continue with the CLI magic:

git clone https://github.com/microsoft/CBL-Mariner.git
pushd CBL-Mariner/toolkit
git checkout 1.0-stable
sudo make package-toolkit REBUILD_TOOLS=y
popd
git clone https://github.com/microsoft/CBL-MarinerDemo.git
pushd CBL-MarinerDemo
cp ../CBL-Mariner/out/toolkit-*.tar.gz ./
tar -xzvf toolkit-*.tar.gz
cd ~/CBL-MarinerDemo/toolkitt
sudo make image CONFIG_FILE=../imageconfigs/demo_vhd.json

That final command will take considerable time, but you'll wind up with the VDH file (located in ~/CBL-MarinerDemo/out/images/demo_vhd/) you can then use to create a virtual machine with the likes of VirtualBox. Once you boot the VM, you'll find yourself in CBL. Log in with the credentials root/p@ssw0rd. 

And that is what it takes to get Microsoft's CBL-Mariner Linux up and running so you can start kicking the tires.

My take on CBL-Mariner

I applaud Microsoft for realizing that to keep moving forward in the enterprise backend the company had no choice but to create a version of Linux for containers, IoT, edge, etc. There was no way Microsoft could compete in that space with Linux.

But here's the thing: At the moment, it seems CBL-Mariner is only intended to be used internally. As the GitHub page states: CBL-Mariner is an internal Linux distribution for Microsoft's cloud infrastructure and edge products and services.

SEE: From start to finish: How to deploy an LDAP server (TechRepublic Premium)

That doesn't mean Microsoft won't eventually make this core distribution more easily available to the masses. And that's key. If CBL-Mariner is to take off, beyond Microsoft internal, they're going to have to make it available as an ISO image and not require users to build it manually. Although it didn't take me much effort to build the VHD file for VirtualBox, those without even a modicum of Linux skill might have trouble. I will say, however, whatever trouble you might have in building CBL-Linux, it's worth the effort. This container-based distribution is quite good and would serve many an enterprise business well. 

In the end, if you don't mind taking the time to build a lightweight Linux distribution manually, CBL-Mariner is a project you should definitely pay attention to. Even at this early stage, CBL-Mariner is fast, stable and secure. 

Also see

By Jack Wallen

Jack Wallen is an award-winning writer for TechRepublic, The New Stack, and Linux New Media. He's covered a variety of topics for over twenty years and is an avid promoter of open source. For more news about Jack Wallen, visit his website jackwallen....