Look, I’m a Debian user for 15 years, I’ve worked in F/OSS for a long time, can take care of myself.
But I’m always on a lookout for distros that might be good fit for other people in my non-tech vicinity, like siblings, nieces, nephews… I’m imagining some distro which is easy for gaming but can also be used for normal school, work, etc. related stuff. And yeah, also not too painful to maintain.
(Well, less painful than Windows which honestly is not a high bar nowadays… but don’t listen to me, all tried in past years was to install Minecraft from the MS store… The wound is still healing.)
I have Steam Deck and I like how it works: gaming first, desktop easily accessible. But I only really use it for gaming.
So I learned about Bazzite, but from their description on their main site I’m not very wise:
The next generation of Linux gaming [Powered by Fedora and Universal Blue] Bazzite is a cloud native image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld.
Filtering out the buzzwords, “cloud native image” stands out to me, but that’s weird, doesn’t it mean that I’ll be running my system on someone else’s computer?
Funnily enough, I scrolled a bit and there’s a news section with a perfectly titled article: “WTF is Cloud Native and what is all this”.
But that just leads to some announcements of someone (apparently important in the community) talking about some superb community milestone and being funny about his dog. To be fair, despite the title, the announcement is not directed towards people like me, it’s more towards the community, who obviously already knows.
Amongst the cruft, the most “relevant” part seems to be this:
This is the simplest definition of cloud native: One common way to linux, based around container technology. Server on any cloud provider, bare metal, a desktop, an HTPC, a handheld, and your gaming rig. It’s all the same thing, Linux.
But wait, all I want to run is a “normal” PC with a Linux distro. I don’t necessarily need it to be a “traditional” distro but what I don’t want is to have it running, or heavily integrated in some proprietary-ish cloud.
So how does this work? Am I missing something?
(Or are my red flags real: that all of this is just to make a lot of promises and get some VC-funding?)
Ok so…
I have bazzite on a steam deck.
It works extremely well!
But… say I want to set up… Unity, or Godot, or Bevy, or something that doesn’t have a flatpak or appimage.
If I am understanding this right…
The actual base OS is basically a custom version of an immutable/atomic Fedora 41 variant, and I should not fuck with that.
The system update terminal?
I should only run ublue ujust commands in it, not yum, not dnf, not rpm-ostree.
When I want to install something not flatpak or app imagified, things like all the requirements for compiling code …
For that, I should be using the ‘fedora’ container… as the current fedora container is actually what allows for that level of tinkering with… or if something only actually lists its sources and dependencies in debian based os’s, just set it up in a debian distrobox container… right?
Wrong?
Generally the industry shifted in a direction where it heavily relies on containers for running cloud applications. This solves many problems with traditional server systems where you’d be sticking to certain distro, so certain dependencies are in fixed versions, which brings some limitations. Container is an environment to run process in an isolated way so that it had its own root filesystem, its own view on what resources are available, sort of like it was separate machine, but it’s still running on the same machine natively using the same kernel as the host. You can then have multiple of such containers, all serving its narrow purpose and they all come with the complete fs and whatever distro release they are tested with. Nowadays cloud computing is all about containers and they come from images that are built in OCI format using Dockerfile syntax. After building an image, it is typically pushed into registry where it can be pulled from over network to be utilized across different nodes, which makes it pretty easy to scale and propagate changes in cloud environments.
Now what that means to Bazzite/Universal Blue is that it uses similar tech to deploy the system, though the target here is your local machine. Of course some of the characteristics aren’t relevant in this scenario, but it solves some of the same problem - build predictable and reproducible environment that can be thoroughly tested before publishing. The general idea is similar to how devops build cloud apps: there is CI pipeline that runs the build using giant Dockerfile (or Containerfile, same thing) inside of which they include everything that the system needs (running traditional package manager and act as it was normal Linux distro during the build), which then results as image that’s being pushed to registry. Bazzite users then install updates by pulling new version of the image and ‘rebasing’ to it. It is called rebasing here, because rpm-ostree lets users add additional layers with more packages on top of that.
EDIT: here’s the Containerfile I’ve been talking about: https://github.com/ublue-os/bazzite/blob/main/Containerfile Might give you some idea on how this works.
Everyone else seems to have addressed the cloud part, which I was a little skeptical about too. I understood it is a development aspect, not an end user aspect, so I decided to use it. I’ve been using it as my daily driver for about 6 months and have had no problems.
The atomic part was the biggest hurdle for me, since I wasn’t familiar with rpm-ostree, but I’m getting the hang of it. It’s had the added benefit of keeping me from breaking things through stupid mistakes since I can just roll back my changes.
The buzz word is not aimed at the regular gaming nerd. It is aimed at gaming nerds who are also developers. Universal blue, the project behind Bazzite, Bluefin, and Aurora, aims to market to developers to use their systems first, on the basis of the tech backend. So then they make the cool FOSS things that the nerd public can use. Cloud native just means that something is engineered and made to make use of the container based devops pipeline.
For example, an atomic immutable OS that is meant to be developed and distributed via the container infrastructure (this is what Universal Blue is). So, instead of working on making an OS the regular way, collecting packages and manually connecting and tidying up absolutely every puzzle piece so it fits together, then pushing it through the installer packaging wizard, etc. This OSs are made by taking an already existing distribution, in this case Fedora atomic distros (but this is by no means mandatory), then customizing some things. Like installing libraries, applications, firmware, kernels and drivers. Then putting it all into a container image, like you would do with a docker or a podman server image. This way, on the user side, they don’t need to install the OS, instead they already have the minimal atomic system handling framework and just copy and boot into that OS image. This automates a lot of the efforts required for bundling and distributing an OS, and it makes new spins on existing distros really fast and efficient to make. It also means that users don’t need to be tech savvy about stuff like directory hierarchies or package management, and updates, installs, upgrades can all be automated to the point of the user barely even noticing them.
On a similar note, these distros, as development workstations, are usually pre-configured to make use of a container based dev pipeline. Everything is flatpacks and development is handled all via docker, pods, etc. Keeping the system clean from the usual development clutter that sediments over time on a traditional development cycle. As a happy coincidence, this makes the dreaded “works on my machine” issue less prevalent, making support of software a tad easier.
The buzz word is not aimed at the regular gaming nerd. It is aimed at gaming nerds who are also developers.
I’m a gaming nerd and a developer and I did not get it.
Lot of explanations in this thread seem to be: “we just use cloud spec for testing and deployment”. That’s absolutely fine.
But context matters a lot. If I open a main page of the project, I don’t have my developer’s hat on. I will assume that the main page is intended to describe the core value of the project. What the heck does “cloud native” mean? To a gamer? Pretty much nothing. (At best they will think you want to run their games like Google Sheets, I guess). To a SW engineer with 8 years of experience in distro QE? Pretty much nothing. It’s the kind of lingo you hear on meeting with C-suites. (Before you go back to your office, sit down with your PO and tech lead and try to decrypt/guess what they want us to do.) I mean, seriously, who talks like that? I’m pretty sure it’s neither SW engineers nor gamers.
Don’t get me wrong, I appreciate your explanation, it’s really well written. Given what I’ve learned from this thread, Bazzite seems like worth trying out.
Just the marketing seems weird. I mean, the whole reason I even found the page is because I’m someone who cares about whose SW I’m using and how it’s ran and maintained. And I do understand tech. Tossing around meaningless terms at me is not going to make me feel a lot of trust…
I’m sorry, but it is a software engineering term. Maybe not from the area you are familiar with, but cloud native was the raging buzzword…about 10 years ago on the server side. Now it’s just a standard way to develop software and it’s part of the common parlance. It is the philosophical background, if you will, of snaps, flatpaks, kubernetes, docker, pods. I mean, the entire business model of AWS and dozens of cloud providers, data centers, mass hosting solutions, saas, etc. is based on the cloud native idea. You use the term and everyone in the room knows exactly which principles and development pipeline you’ll use.
Just like all language, it is just a shortcut to convey a complex meaning. Like, I don’t know what distro QE stands for. But that’s not my area of expertise. I bet there’s a good reason it is abbreviated and that you use it on your résumé. It might convey something to a recruiter or not, about what your general expertise and skills could be. Same here, it’s just a term that describes the important and distinctive part of the project. Because for everything else there’s nothing out of the ordinary on bazzite, not even the gaming stuff. The makers don’t even like to call it a distro because they use other people’s distros. What’s unique is the delivery pipeline and the config, and that sounds even worse, marketing wise. I’ll share you some interviews later.
This is an interview with Jorge, who was around here on the thread earlier answering questions.
And here’s an interview on the fedora podcast with bazzite makers.
Thank you for the post, especially the interview links; I’ll check them out.
I’m sorry, but it is a software engineering term. Maybe not from the area you are familiar with, but cloud native was the raging buzzword…about 10 years ago
I guess my point would be the same, but conclusion is the opposite. Yes, I’ve heard “cloud native” tons of times, but that is the problem with buzzwords: because they are overused (and often used a lot by people who don’t really know what they are talking about), for many people like me, they lose meaning in that period. It’s like “AI” nowadays, or “NFT” few years ago. The term loses its specificity (if it ever had one), and collects all the “bad smell” from people overusing – not just the term but sometimes also the methodology behind.
Honestly, for me rpm-ostree and Flatpak would be excellent terms to convey the architecture of Bazzite. I did have to go to here and to Wikipedia to learn that.
Why even use the word “cloud” then? Seems completely unrelated to how the word is used in popular parlance, and unnecessarily confusing.
Because the Linux Foundation says so. I would guess it’s because most of the relevant tech started as cloud products or services and got generalised, such as Kubernetes (the big one in CNCF).
The naming wasn’t up to Bazzite or uBlue to decide, that’s for sure, and the term “cloud native” has won the mindshare of developers.
The irony hits hard when you’re logging into an on-prem Kubernetes cluster in your company’s wholly owned data centre. At that point, “cloud” isn’t even someone else’s computer (as the FSF would say).
Hey there, I’m the founder of Bazzite. Just wanted to confirm that we have no interest in VC funding. It says it’s cloud native because it’s cloud native, not because we’re marketing to people with too much money and a lack of sense.
Oh man, I freaking love you. Thank you so much for Bazzite! I’ve been rocking it for a year and I haven’t had a single issue with it. I absolutely love it.
The one thing I think you guys could improve is the Waydroid parts. BlendOS and others have a more streamlined process which is very fool proof. Click yes, next, next, next… done. Usable Android apps. It would be awesome if you could add something like that.
Thanks! Our entire ujust/first run process is very much a work in progress and we’re trying to improve it asap.
If you ever need inspiration for what a great first run UX/UI could look like, I recommend you look at Crystal Linux’ Jade-gui (it’s what BlendOS uses), and Vanillas OS Installer, both similar, both stellarly crafted 1st run experiences.
Hey there, I’m the founder of Bazzite.
Hey man, so great you are here! What an opportunity that you came here to provide clarity. Thanks for being here!
Just wanted to confirm that we have no interest in VC funding. we’re [not] marketing to people with too much money and a lack of sense
That’s super great to hear. Refreshing in fact.
Putting a whole distro together is a monumental task. Why have you gone to all the effort to do so? What does Bazzite bring to the table that can’t be found by using any other distribution? For everyone who is currently using, say, fedora, why should they all switch to Bazzite today? (I am currently running fedora and I am thinking about a change, can you give me a reason to jump?)
I did a couple interviews on this just recently, you can see them here:
https://www.youtube.com/watch?v=xhwNgfE5BwU
https://www.youtube.com/watch?v=SnQze1dMf2U&t=41m42s
If you have any further questions after these, let me know and I’ll be happy to expand on it further!
It sounds like the OS is using an image like how a docker container would use an image, is that an accurate comparison?
What exactly does “cloud native” mean? I’ve used Silverblue and I get the immutability etc, but what is the definition of "cloud native?
I’m guessing it’s like the definition used by the Cloud Native Computing Foundation since some Bazzite members apparently worked there.