What Is Ubuntu Core?
Ubuntu Core is a huge shift in how we think about the architecture of the Linux operating system. This has to be the most aggressive and meaningful shift in operating system technology I have seen in my 21 years of being an IT professional.
How Is Ubuntu Core Different From Other Ubuntu Releases?
There are a lot of things that make this version of Ubuntu different than previous or parallels releases.
- Snapd - Ubuntu 20 relies on this containerized approach to add software and functionality to the system rather than a package manager like
apt-get
,deb
ordpkg
- this is by and large the biggest deal for this new release, in my opinion. - Smart Start - This is Canonical’s “DevOps for IoT applications” platform. This is a paid service that enables manufacturers to deliver IoT solutions to market faster
- Full Disk Encryption - This actually existed on other Ubuntu versions, but they updated it for Ubuntu Core
- Secure Boot - This feature ensures that only known and signed software will execute on the OS at startup
There are a cacophony of other features and changes, which you can read about here from Canonical.
Snapd - Containerize All The Apps!
Snapd is a novel way to distribute applications. Snaps, as they are called, are small containers that have everything needed to run a certain app. This includes the app itself, any dependencies that it needs to run (say the app needs a specific version of libc, it will be included in the snap). Snapd is nothing new, it showed up on the scene last year, but Ubuntu has decided to make it a first class method of delivering, developing and running apps on Ubuntu Core rather than using something like apt
or ‘dpkg`.
In the traditional package manager approach, you would execute something like this: apt-get install ansible
to install something like, say, Ansible. Running that command would install Ansible, as well as all the dependencies that come with it. This is a great way to install software that requires certain other packages to run, but if you need 2 different versions of, say, libc
or python
- it is a huge pain to maintain separate versions of those packages or libraries. This sucked in a big way for running slightly older software that one would need for developing or hosting applications.
With Snap - you just pull down and run the application in its own container, everything that the app needs to run is baked into the container so you don’t have to troubleshoot issues with the package manager installed dependencies. You might be thinking “This sounds a lot like Docker…" and you would be correct to think that they are very similar, with one notable exception: Snapd is baked into the center of Ubuntu Core, and is designed to be more “user interactable” than Docker or other similar containerization engines are.
Who Is Ubuntu Core For?
Ubuntu Core is aimed at the growing community of homelabs, and people developing and deploying applications on low cost hardware like Raspberry Pi’s. The modular approach that makes Ubuntu Core so unique is geared toward use cases where modularity is the driving factor.
Where Can I Download Ubuntu Core?
You can read Canonical’s instructions for installing Ubuntu Core here. NOTE: You will need to sign up for an Ubuntu SSO account.