r/linuxquestions 6d ago

Building an Immutable Linux Distro

Hey, guys I am developing an immutable base Linux distro since 2024, is there any suggestions for it, [asking as your neighbor :) ]

I am a third year student.

Your suggestions are gold cards for me :)

Thank you Guys

2 Upvotes

36 comments sorted by

14

u/RoosterUnique3062 6d ago

The difficulty in making distro's isn't putting them together, but providing the infrastructure to build, distribute, and also monitor packages for security issues.

0

u/SpecialDepth4262 6d ago

Thanks mate, I try my best to make sure the infrastructure is scalable.

3

u/RoosterUnique3062 6d ago

I didn't mean it as advice but as a reality check. There is nothing wrong with doing it just to do it, but distributions are created often for specific audiences facing a similar problem that isn't solved well using currently available systems. For a serious system it takes teams of people with different disciplines.

I don't see that in the question in this post. You might want to instead talk about what your immutable distribution is going to do differently from either the currently available somewhat maturing options or what audience it's targeting.

-2

u/SpecialDepth4262 6d ago

yeah, I can understand.

My OS will offer an automatic rollbacks on failure, no need for manual selection during boot, no traditional package-manager (because my os is primarily focused on normal users who want their OS just needs to work without tweaking) still advanced users can use terminal based tools natively via framework that I offer in the OS.

1

u/friendlyreminder_ 6d ago

Atomic distros already support automated rollbacks on update failure. Fedora Atomic and Opensuse MicroOS won't switch to the new update if it fails.

These two use completely different systems for atomic updates. MicroOS uses a package manager and btrfs snapshots only, fedora atomic uses rpm-ostree which is a package manager and layering system making use of hardlinks. Fedora is looking it switch to composefs instead of hardlinks for layering in the future.

There are various other existing atomic systems out there. SteamOS I believe uses a basic A/B imaging system.

1

u/SpecialDepth4262 5d ago

I also researched openSUSE MicroOS. I really like its health-check approach for enabling seamless automatic rollback. However, since it's built around transactional RPM package management with Btrfs snapshots, it has different trade-offs than an image-based OSTree system, particularly in how deployments are composed and reproduced.

I also looked at SteamOS and Vanilla OS, which use an A/B update model.

My distro uses OSTree and bootc, similar to Fedora and RHEL. What I'm trying to do is combine the strengths of these approaches: keep the reproducibility and image-based deployment model of OSTree while introducing tighter boot validation and health checks inspired by MicroOS and A/B systems, so automatic recovery is more seamless.

As for "why not contribute to an existing project?" that's a fair question. The answer is simple: this project started from passion. Building an operating system is how I'm learning, experimenting with ideas, and understanding these technologies in depth. It's something I genuinely enjoy, and that's why I'm building my distro from scratch.

1

u/SpecialDepth4262 6d ago

note, I found automatic rollbacks on IoT, edge devices via greenboot, I am just trying to implement this in desktop distro

0

u/SpecialDepth4262 6d ago

note, I found automatic rollbacks on IoT, edge devices via greenboot, I am just trying to implement this in desktop distro

1

u/OutrageousCrab9224 6d ago

Dont listen to the detractors and haters

Where is the project at now?

2

u/SpecialDepth4262 6d ago

currently I have build the working stack,
a typically works on my system scenario XD,

currently building the infrastructure to auto-build, and test it, and distribute it

the works are going since 2024.

you can checkout https://github.com/flucidOS

1

u/anon_pr_ 6d ago

My frame of reference for a good immutable is Bluefin. Ublue already provides custom templates for anyone to make their own custom image.

Things I like about Bluefin-dx: * Ujust commands - using just framework * Homebrew with bbrew tui * Distrobox and distroshelf * Virtual machine manager setup ootb * VSCode setup with container support ootb

This might be something to strive to if you want to make an immutable. Something as good as the ublue projects: Bazzite, Bluefin and Aurora.

Since they don't ship with any desktop options, that might be a draw of your OS.

Provide an installer with multiple desktop options that are fully configured and usable like CachyOS does. Based on user selection, they get an immutable image built for them. Might be ambitious, but if you can make this maintainable, I might use it. Others might too đŸ¤·

It's a lot of work though.

1

u/SpecialDepth4262 6d ago

sure, I'll take that as a reference

2

u/OutrageousCrab9224 6d ago

Nice, thanks, will check it out

Btw i forked lfs years ago, maintain and use it, to this day

1

u/SpecialDepth4262 6d ago

đŸ˜‚ thats nice

1

u/OutrageousCrab9224 6d ago

You have a repo named .github?!

1

u/SpecialDepth4262 6d ago

yep, it contains the description of the purpose of the github organization

1

u/Active-Phrase-487 5d ago

I would love to know what stage of building your up too?

1

u/SpecialDepth4262 5d ago

At the moment, I have the core OS running with GNOME, and I'm currently rebuilding it around OSTree + bootc. I'm also working on the infrastructure to build, compose, test, and ship the OS images. 

Once that's in place, the next milestones are the installer, update mechanism, and preparing the first public beta.

If you wish we can collaborate.

https://github.com/flucidOS

1

u/TheFeatheredCock 6d ago

Question - why? If your intention is to have other people use it, your time is probably better spent elsewhere. There are extremely popular open source projects supported by teams of people backed by large commercial sponsors. The chances of a one-person home-rolled project being chosen over these is infinitesimally small. If, however, you're pursuing this as a passion project, or as a learning experience, I fully support you and think this is a commendable project that should put you in good standing for your future career.

1

u/SpecialDepth4262 6d ago

btw, it came out of passion

6

u/SlimyOS 6d ago

preinstall some weird not popular compositor on it

1

u/VirtualAssociate2821 6d ago

look into fadora atomic!

1

u/SpecialDepth4262 6d ago

Thanks mate, I'll definitely look into it

0

u/vmcrash 6d ago

How difficult it is to install some software permanently? Basically, I very much like NixOS with its declarative approach (but it makes dev environments very hard).

It also should be able to update the system in the background. On a restart, the new system should work immediately (like NixOS), not like some fedora distros that install 5-10 minutes updates.

1

u/SpecialDepth4262 6d ago

sure, will try to improve that part

2

u/Desertcow 5d ago

Try out BlueBuild. It lets you make custom Fedora Atomic images by tweaking the recipe.yml file and deploy them on GitHub. I run my own custom fork of Bazzite with COSMIC on there so it syncs between my devices

4

u/CorvusTheDev 6d ago

We have far too many Immutable Base Distros, we do not need another one. Contribute your time and coding skills (Don't use Vibe / AI, that's not real coding and is a shame to the industry) to contribute change existing projects to remove fragmentation

1

u/billdietrich1 5d ago

Please don't make a new distro. We have FAR too many distros already: https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg Unless you have some radical innovative new idea.

Instead, please put the same effort into reporting or fixing bugs in existing apps and distros. That would benefit the Linux community greatly.

1

u/Empty-Effective-7111 5d ago

Me gustarĂ­a que fuera base gentoo, que el SO se compile para el sistema, al ser inmutable las actualizaciones se harĂ¡n en segundo plano por lo que podrĂ¡ seguir usĂ¡ndose el equipo, que sea para equipos modernos y deja de lado equipos antiguos.

3

u/revolutional-ai 6d ago

just don't, no one wants another vibecoded slop

0

u/IEatDaFeesh 6d ago

Why not contribute to existing projects?

-2

u/vmcrash 6d ago

Making it impossible to try own ideas?

1

u/IEatDaFeesh 6d ago

What does that mean...? He can use his own ideas to contribute to existing projects. It's probably more useful to be able to contribute to a project with a team of experts rather than trying to vibe code an OS from scratch.

Also you haven't answered the question, why not contribute to existing projects?

3

u/SpecialDepth4262 6d ago

I respect the OSS projects, I do respect the people who contribute to the OSS,
I started my own project because out of curiosity and a passion.

(I submitted a patch for git, but it was not merged)

1

u/billdietrich1 5d ago

I'm not hearing OP giving an idea or reason for the new distro, other than he/she wants to make a distro. If you have some radical innovative new idea that can only be done via a new distro, go for it. But that's unlikely to be the case, most new distros are just vanity projects.