I have been working on a unique and fully open source Linux distribution called Invelinux.
The things that make it unique are as follows;
It is not a fork of a fork, it is independent and RAM-based. Which means the minimum RAM requirements are ideally very low, around 256 MiB.
It uses Toybox, a BSD-licensed alternative over Busybox for a more minimal userspace toolset. And it drops the GNU C library for the musl C library, which is more minimal and better optimized for static builds of packages.
Due to it being a RAM-based distribution, it can't save permanent data on RAM, but it can save that permanent data on a non-volatile storage like an external USB drive using the AMPS framework. When the OS boots up, AMPS searches for a partition named INVEL_AMPS in that drive and when it finds it, that partition is mounted and used for soon to be downloaded binaries and system configurations like /bin and /etc.
To edit those configurations, several custom TUI tools called invel-utils were made, so the user won't have to manually edit config files in /storage/AMPS/etc (this is also the directory where all of these configs are stored)
Systemd wasn't used at all, instead toybox's sysvinit style init was used with shell scripts to make configuring init scripts easy and clear.
Overall, I think this project has potential and I wanted to hear actual opinions about it instead of bias.
If you want to help by sending general feedback, just send it in our codeberg repository issues tab. It would mean a lot.
What do you think about the fact that Linux used to run in 4MB including an X server, browser, and text editor?
sumtas•55m ago
Yeah, reaching that level of minimalism would sacrifice a lot nowadays.
It is one of my first projects and there are still some things to optimize.
phendrenad2•50m ago
Not OP but I have an opinion.
That's an interesting historical fact, and one that we've locked ourselves out of. I looked into stripping Linux down to the bare minimum, and it's extremely difficult to untangle the codebase. There are inter-module dependencies that aren't specified anywhere, the build just mysteriously fails. The kernel config tool pretends to give you a lot of options, but in reality a lot of configurations will never actually compile, and a lot of things that appear to be removable actually leave huge chunks of code behind because they're used by other things.
And that's just the kernel. If you want X server, browser, text editor, you'll be surprised at what dependencies they require. If I recall correctly, Xorg requires MESA which requires... drumroll please... clang and llvm (about 1GB of code if you clone from github). It's madness.
sumtas•32m ago
You're definetly right, bloat has gotten out of control and some modern utilities makes simple tasks very complicated.
My original goal with this OS was to prove that minimal operating systems still have a chance of being usable and user friendly.
sumtas•1h ago
I have been working on a unique and fully open source Linux distribution called Invelinux.
The things that make it unique are as follows;
It is not a fork of a fork, it is independent and RAM-based. Which means the minimum RAM requirements are ideally very low, around 256 MiB. It uses Toybox, a BSD-licensed alternative over Busybox for a more minimal userspace toolset. And it drops the GNU C library for the musl C library, which is more minimal and better optimized for static builds of packages. Due to it being a RAM-based distribution, it can't save permanent data on RAM, but it can save that permanent data on a non-volatile storage like an external USB drive using the AMPS framework. When the OS boots up, AMPS searches for a partition named INVEL_AMPS in that drive and when it finds it, that partition is mounted and used for soon to be downloaded binaries and system configurations like /bin and /etc. To edit those configurations, several custom TUI tools called invel-utils were made, so the user won't have to manually edit config files in /storage/AMPS/etc (this is also the directory where all of these configs are stored) Systemd wasn't used at all, instead toybox's sysvinit style init was used with shell scripts to make configuring init scripts easy and clear.
Overall, I think this project has potential and I wanted to hear actual opinions about it instead of bias. If you want to help by sending general feedback, just send it in our codeberg repository issues tab. It would mean a lot.
Thanks.
Repository: https://codeberg.org/sumtas/invelinux Wiki/Handbook: https://sumtas.codeberg.page/wiki
- sumtas
inigyou•58m ago
sumtas•55m ago
phendrenad2•50m ago
That's an interesting historical fact, and one that we've locked ourselves out of. I looked into stripping Linux down to the bare minimum, and it's extremely difficult to untangle the codebase. There are inter-module dependencies that aren't specified anywhere, the build just mysteriously fails. The kernel config tool pretends to give you a lot of options, but in reality a lot of configurations will never actually compile, and a lot of things that appear to be removable actually leave huge chunks of code behind because they're used by other things.
And that's just the kernel. If you want X server, browser, text editor, you'll be surprised at what dependencies they require. If I recall correctly, Xorg requires MESA which requires... drumroll please... clang and llvm (about 1GB of code if you clone from github). It's madness.
sumtas•32m ago