this post was submitted on 08 Jan 2025
73 points (88.4% liked)

Linux

49018 readers
1233 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?)

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 5 days ago* (last edited 5 days ago)

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?

[–] [email protected] 6 points 6 days ago* (last edited 6 days ago)

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.

[–] [email protected] 11 points 1 week ago

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.

[–] [email protected] 28 points 1 week ago* (last edited 1 week ago) (1 children)

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.

[–] [email protected] 1 points 6 days ago (1 children)

Why even use the word "cloud" then? Seems completely unrelated to how the word is used in popular parlance, and unnecessarily confusing.

[–] [email protected] 6 points 6 days ago

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).

load more comments
view more: next ›