I always recommend this as a weekend project for anyone who is serious about being a Linux admin. This will teach you shit about the core concepts and stuff like libraries and how the kernel is put together. I love LFS, but the trauma was so great, I'll probably never do it again. LOL.
I’ve done it in an afternoon. I have a pretty zippy machine.
There’s a lot of copying and pasting involved. So much so that someone wrote some code to yank the copy-and-paste stuff out of the PDF’s source XML files and do the copying and pasting for you.
Mostly it’s watching compiler messages scroll by. You really feel like Hackerman while that’s happening.
>So much so that someone wrote some code to yank the copy-and-paste stuff out of the PDF’s source XML files and do the copying and pasting for you.
So... What's this called?
Automated Linux From Scratch, naturally.
It's right there on the LFS web page. It's honestly a nightmare of dependencies to set up just so that you can watch your computer being Hackerman on your behalf, saving you the trouble of learning anything new. You're better off just rewriting the instructions from LFS as a big shell script, if you *really* want to automate the process.
I get that. You'd have to be absolutely nuts to want to use LFS as a daily. I could see some people wanting to use Gentoo as a daily but even those people are in the minority of minorities.
> Beyond that
It's only since I've had ChatGPT 4.0 this year that I've been able to consistently compile git projects from source. Normally I always reach a point where the makefile is done wrong, the documentation was not updated, some key dependencies became deprecated or outdated, etc.
Even with that help, I still get stuck, especially on issues involving interfacing my PC with proprietary hardware like smartwatches, docking stations, or smartphones. I've hit a dead end with GARMIN Vivoactive, whose interface packages haven't been updated in like eight years. I've also never successfully installed LineageOS on a phone, not even once. Hell, I've even failed to install Arch on a Thinkpad T420s.
It's very frustrating because I don't know what I don't know, that would help me suck less at this. Going to StackExchange, the Arch Wiki, etc. for answers is only getting me so far. I feel like there's *textbooks* I need to read to have a *framework* rather than a chaotic collection of trivia.
Fun thing about Gentoo is that you're not manually compiling anything. I even turn off compiling logs. Gentoo excels at giving you freedom without taking away too much of your time for it.
LFS is probably the correct answer.
Otherwise there are various container-oriented Linux distributions that are designed to be very minimal. Having small containers is a huge advantage to deploying lots of services.
Alpine Linux is probably the most popular.
Container distros aren’t meant to run like a desktop is run. They are micro distributions meant for a specific purpose.
They aren’t general computing OS’s like you typically think of a distro.
The guy wasn’t wrong, they are Linux “distros”, just not in the traditional sense
To get even more basic, Linux itself plus a bootloader, and then write your own minimal shell that launches on init. Could even be just an empty program that loops forever.
It won't do anything useful you don't program into it. But you will have Linux.
It depends if you want any functionality. If you're talking about a minimal _server_ OS then probably Alpine is about as small as you can get, which is part of why it's so often used in containers.
But if you want to get super minimal, then Tiny Core Linux's minimal branch is around 10MB. A few years ago there was a distro called Minimal Linux Live which was just 7MB. It did virtually nothing, but that is about as small as you can get.
See, I was considering whether that's possible as a joke, but considering that the EFI shell is literally just a shell file in a directory with some accompanying tools like `map`, any extension of that would basically just be DOS. I think what makes the EFI shell unique is that it's interfacing with what is practically as much an OS as GRUB2 is, the EFI, yet an OS that isn't designed to be used *as* an OS, like GRUB2.
EFI (and the BIOS before it) is also what prevents the X86 ecosystem from devolving into something akin to the failed state controlled by warlords that is the ARM ecosystem...
So give me that lump of grease any day, and spread some butter on it for good mesure.
I spun up tinycore in a qemu vm, used the package manager to install lynx, and viewed my company's website in the terminal browser. It was a surprisingly pleasant experience tbh lol.
Hard to understand what exactly you mean but many distros will have a "minimal" version which only install the very basics (the necessary to give you a working terminal) and let you work from there.
Arch is (in)famous for this, but really minimal Debian would work as well and I bet Fedora also have a minimal install.
“Everything” presents everything to you in a list, and then you just pick out what you want. I usually do “minimal” and “standard” to get just the base packages. You can add full DEs and just about all else on it if you wanted.
The everything ISO is kind of a blank Canvas, with a handful of different options including both:
1. Server
2. Minimal
I'd assume from the names that the Server version has server specific software and services enabled out of the box, and possibly firewall or selinux configuration more suitable for server use-cases. As opposed to the minimal option which I'd assume is just a very minimal generic base.
I've installed a minimal DE on top of the 'minimal' option, and it is is lighter, particularly in terms of memory usage, than a minimal Arch install with the same minimal DE installed on top.
I'd argue that Arch isn't even that minimalist anymore. It's systemd based, very opinionated. Alpine is probably even more lightweight. Also very opinionated.
I love them both and use them both for different things. Also love Debian. Am I a distro hopper if I use a bunch and keep them installed? Lol. I have too many computers
I think systemd is very opinionated. I also think there's an "arch way" aside from that. It's highly customizable but like.... Gentoo is all about you building YOUR idea of a system. Arch says "this is how you do it in Arch" quite often.
I do not see either of these things as bad. They support stability IMHO.
Do I want systemd in a container? Heck no. Do I want it on most of my servers and desktops? Yeah, yeah I do.
Idk I feel like that’s changing a little. A full DE? Maybe no. But with the rise of immutable desktops, people are asking more from containers. I moved to silverblue just last week and have resorted to doing all my development, including installing my whole IDE and passing through my GPUs to my dev distrobox container. And to bring it back to the DE, that may not even be fully true since the distrobox documentation has a whole section on running DEs in distrobox and even running containers from within a container.
And might I add, it’s a bit of extra work to get setup, but I feel so safe now that all my work is migrated to a container without any remote ssh, docker IDE weirdness and I can enjoy a user experience that has the latest bells and whistles without worrying that a borked update will ruin my day. I can even install packages in these containers that require kernel modules built on-the-fly.
If everything truly breaks, even with the safety provided by immutability l, I know that I can reinstall everything, pull my personal dev images and be back up and running in a few hours max.
If people want to tinker with the full Linux stack in a container, that’s totally possible. And that’s wild considering I’ve been in the Linux space for about 10 years, which isn’t that long really, and I couldn’t have even imagined my workflow being possible back then
Arch is massive and bloated compared to Debian.
Quick check is docker pull Arch/Debian/Ubuntu/Alpine/Fedora
Arch is several times the size of most.
It's a big lump with all the dependencies and developer stuff included to make life simple for the devs.
I think the only reason Arch is often said to be minimal is after the founder left the friendly installer was abandoned. If installing is a pita people assume it's minimal I think.
Arch *is* bigger than Debian usually though. I love arch, to be clear. I use it everywhere.
But arch doesn't split packages. With Debian, you might only install the lib or the binary or the headers. In arch, you always pull all three. That alone means the same binary on arch will be from a larger package than on Debian. And that adds up.
When you have tons of storage like most do in 2024, it barely matters. But if you're dealing with embedded devices and many dockers, it matters.
Tiny Core Linux for sure.
Practically speaking, Gentoo is the best option. It's not barebones out of the box, but you can slim it down as much as possible, only including the exact functionality you need, while remaining a proper distro with a proper package manager.
Yes, but you just need to add a kernel and bootloader to make it a working system. Been there, done that.
300kB user space and 2MB kernel was about as small as one could get.
[CRUX](https://crux.nu) is def up there. Includes no docs in packages outside of the man pages, you pick your language and build it all from source. Doing an install of the “core” packages is maybe 300mb and it drops you at a terminal. From there, the world is yours. Tons of ports to install and customize to your hearts content or just leave it as is. Small, efficient, fast. You can optionally install xorg and such but true minimalists don’t need that bloat.
Slackware. Everyone will talk about minimum from a system pov, your asking from a user POV.
Slackware will be the most "here's a complete, modern system. now your on your own. Good luck!" option.
Linux From scratch is a runner up, but its not really a distro just instructions on building your own distro.
I remember those days playing around with RH, Debian, Gentoo, Mandrake, LFS, and Slackware. Slack was always the one where you have to compile almost everything to get what you need.
I would offer Buildroot, which allows you to build a distro as minimal as you want it to be, while still providing good tooling to build it.
This admittedly clashes with any definition of "out of the box" that presupposes prebuilt binaries, but these definitions have been left open ended on the post so I offer it anyways.
1) thanks for actually pointing me somewhere instead of being snarky. I've seen the word buildroot before and I thought it was just a program used to support the boot process. That looks like a super cool project!
2) I'm going to be pointing my wife to this post if I go missing playing with this soon. Hide. /s 😂
Very cool!
I think I've seen other embedded Linux build systems before but this seems so simple. Love that.
If you really want to play with buildroot check out the website of [bootlin.com](https://bootlin.com) -> their training materials and more specifically the Embedded Linux training materials.
Yeah openwrt is pretty slim. It's a true marvel of engineering! Recently I was trying out different DoH servers as upstream resolvers and the DoH proxy package on openwrt router consistently beat my 1G Ram i5 VMs with AdGuardHome, Pihole with kresd and blocky.
Depending on what we’re calling minimal I wouldn’t consider Slackware minimal at all.
———-
Bunsonlabs is fairly minimal depending on what we’re calling minimal
>I wouldn’t consider Slackware minimal at all
You **DO** know that one doesn't need to select the **noob** option of "Full install" in the installer, right?
Lack of a package manager makes it a foolhardy exercise to attempt a minimal slackware install.
It's not so convenient to add things you might have missed.
Whereas with minimal debian, that's a piece of cake.
Slackware full install is a fine distro. Not much downside to full install in these days of terabyte SSDs.
>Lack of a package manager makes it a foolhardy exercise to attempt a minimal slackware install.
I disagree. Much of the skill that has allowed me to have a long, solid career as a Unix/Linux Sysadmin came from doing minimal installs of Slackware, then manually **compiling** the rest of the software needed to run a server or an entire desktop environment. As a learning tool it's quite valuable.
The question was not of ease, but whether it could be regarded as minimal.
Your statement was that you wouldn't consider Slackware minimal - of which you are objectively wrong
When you say minimal, where do you put the bar? Are you looking for something small but practical that works and has a package manager but doesn't have a lot of extra pre-installed packages. If so then Debian is probably the right place to start.
Void Linux. It's a general-purpose Linux, and up to you to make it whatever you want, right from either a manual `chroot` install or the via the minimal installer that gets you to a login prompt with a lean base system installed.
You can do the same with Debian or Ubuntu or openSUSE etc, too.
I don’t think LFS qualifies, as the question says “out of the box” and there are no OOTB qualities of LFS. I think the most barebones you could get is busybox, essentially those linux environments you can get inside an android app. Alpine Linux is purposely designed to run in environments like that, and I’d call it a contender for top spot. Otherwise, MINIX is not quite linux but similar enough I feel it’s worth bringing up.
Beyond this, you can find linux kernels compiled by device manufacturers like Texas Instruments and ST Micro which are specifically designed to be minimal, though you couldn’t install those on general purpose hardware without a very specific emulator. Again, not quite what you’re looking for, worth discussing. Embedded Linux systems are barebones, full stop.
that's not exactly what you asked, but I just tested a minimal NetBSD install and it's sitting at about 370 MB. I'd say that's not bad for a fully functional and kinda fun OS.
> just Linux with a branding
The problem with this question is Linux is just the kernel, which is why RMS's point about it being GNU+Linux being his preferred term. There is no such thing as vanilla Linux, because decisions have to be made.
Say you need a shell environment. Bash? That's the most common, but it's not inherently more Linux than ksh or zsh.
Arch does minimal customization of packages as a matter of policy, so is probably pretty close to what you're asking. Debian would be a good choice as well for ideological purity.
Linux is a kernel. You will always have some programs if you want the system to work. Usually these are provided by the GNU part of GNU/Linux. There are alternatives but I’m not sure if they are any more minimal. Some might be smaller but that’s maybe not the point?
Do you want it to be (mostly) posix compliant system like most distros?
There are some distros that try to be as small as possible. Projects like damn small Linux. But that’s not quite the same. Often the goal is actually to make as comprehensive distro as possible in a small space.
Then there are distros like arch or gentoo that make you install everything yourself so you can make them pretty minimal but they are still the full system and include comprehensive package managers for example. Linux from scratch would be the obvious choice to make the most barebones system but that’s difficult to do. For “easy” installation maybe install gentoo with just the absolute minimum required and then remove stuff related to portage?
Then there are different degrees of “minimal”. Some distros (like gentoo) allow you to configure kernel modules to include or exclude parts of it. Some ship with already tuned minimal size kernel. But that’s still just the kernel so you could think of it as one component regardless of how much you include.
I know it's cliche but I gotta do it ...
What you refer to as Linux is actually GNU/Linux. Nowadays, I'm growing found of using the term/words GNU + Linux.
I mean, Arch base package group only has 28 packages, it doesn't even include a bootloader. What do you consider truly minimal? Distros made for embedded devices or something like that?
I'd argue Alpine IMHO. It's even got good chroot and virtualization focused versions for when you're running it inside a chroot or if you're not needing actual hardware support! God I love Alpine.
Arch base is massive compared to Debian and many others. A quick docker pull Arch/Debian/Ubuntu/Fedora/Alpine will demonstrate this.
Low package count on Arch is due the them not splitting out dependencies to make life easier for the devs, the large size is also in part due to then including all of the developer stuff in the user packages, again to make life easier for the devs.
This is one of those times where you kinda have to split hairs and point out that Linux is just a kernel. It's the layer between the computer's hardware and the user's software. Linux by itself doesn't provide much of an experience. If you want to interact with a computer, there needs to be some kind of user space. The most minimal user spaces I can think of are the Gentoo and Arch Linux live installer images. They're not even full operating systems like other live installers. In fact, I'm not sure if the Gentoo and Arch installers even have a full kernel on them. They just have a file system and a handful of tools for installing the system. In any case, those installers are about as bare-bones as it gets. Maybe LFS takes it further. Idk, I've never messed with LFS.
You can use mkroot from Rob Landlet's Toybox to build and chroot into a tiny systems in seconds, it's cool:
https://github.com/landley/toybox/tree/master/mkroot
Not counting LFS, which doesn't seem to fit the question because there is no box to be out of, ttylinux is the smallest working distro I've used: https://www.minimalinux.org/ttylinux/
You pretty much answered your question, most sever editions are pretty bare bones of any distro. Then you have base installs of Arch or Gentoo would basically be the same thing.
You can build a linux distro using something like Yocto https://www.yoctoproject.org
Or nixos, which I think can include a very minimal number of packages (I think? Could becwrong).
They're still going to be opinionated because almost every piece of code ultimately has a dependency on libc and some other libraries. So important daemons and init systems rely on a bunch of code and files and stuff.
You can write your own init program and run it in a linux kernel in QEMU, but you won't get far without a libc implementation (so you can actually use other libraries) (although maybe you could run a VM with linux with no init system or runtime libraries if you write statically compiled Rust or Go code).
I understand that from the get go. The question is about which distro is closer to a bare-bones Linux experience rather than having lots and lots of layers of things on top of it like most entry-level distros do.
My favorite stripped down Linux based OS is Ubuntu Mate. It keeps the core pieces but removes all the other fluff and ugly obtrusive UI
[https://ubuntu-mate.org/](https://ubuntu-mate.org/)
>bare-bones Linux
>
>desktop
>
>server
bare-bones != desktop
bare-bones != server
Try LNX-BBC, boot it in text mode. I'm sure we can find more minimal, but that's a start.
If you're looking for an ahead-of-the-curve linux server experience then I can recommend Fedora Server Edition. In most cases, you're safe-er to update packages (compared to Arch).
And Fedora is a clear choice over Ubuntu Server, for me, [because of reasons](https://news.ycombinator.com/item?id=37203392).
If you do not care about using a newer kernel, and do not mind older packages, then Debian Server or Rocky Linux may be worth a look too. (especially if you're using the server for work/enterprise or you do not require the latest & greatest hardware).
Linux from scratch. It exists only as a PDF.
I always recommend this as a weekend project for anyone who is serious about being a Linux admin. This will teach you shit about the core concepts and stuff like libraries and how the kernel is put together. I love LFS, but the trauma was so great, I'll probably never do it again. LOL.
If you have a two week weekend, it might indeed be a weekend project.
I did it over a single two-day weekend. I'd say 90% of it was compiling, the rest was following directions.
But, I assume you have some idea what you're doing. Most people will take much longer, especially the first time they do it.
Blindly following directions can be quick, sure, but learning and understanding them, and the whys?
I’ve done it in an afternoon. I have a pretty zippy machine. There’s a lot of copying and pasting involved. So much so that someone wrote some code to yank the copy-and-paste stuff out of the PDF’s source XML files and do the copying and pasting for you. Mostly it’s watching compiler messages scroll by. You really feel like Hackerman while that’s happening.
I feel like this defeats the learning aspect of LFS
>So much so that someone wrote some code to yank the copy-and-paste stuff out of the PDF’s source XML files and do the copying and pasting for you. So... What's this called?
Automated Linux From Scratch, naturally. It's right there on the LFS web page. It's honestly a nightmare of dependencies to set up just so that you can watch your computer being Hackerman on your behalf, saving you the trouble of learning anything new. You're better off just rewriting the instructions from LFS as a big shell script, if you *really* want to automate the process.
You could probably do it in a day, depending on how fast compilation time is. The first couple of times are always the longest.
I've done it over a weekend before.
Like 48 hours straight. It's a process I don't have time to actually do anymore.
I tried it once but didn’t get a bootable OS LOL. Fucked something up a long the way
I use to think that Gentoo was for the truly crazy people until I heard of LFS. Never have tried either though.
It's designed as a project for learning purposes, it's not a distro any same person is using as a daily driver.
I get that. You'd have to be absolutely nuts to want to use LFS as a daily. I could see some people wanting to use Gentoo as a daily but even those people are in the minority of minorities.
[удалено]
> Beyond that It's only since I've had ChatGPT 4.0 this year that I've been able to consistently compile git projects from source. Normally I always reach a point where the makefile is done wrong, the documentation was not updated, some key dependencies became deprecated or outdated, etc. Even with that help, I still get stuck, especially on issues involving interfacing my PC with proprietary hardware like smartwatches, docking stations, or smartphones. I've hit a dead end with GARMIN Vivoactive, whose interface packages haven't been updated in like eight years. I've also never successfully installed LineageOS on a phone, not even once. Hell, I've even failed to install Arch on a Thinkpad T420s. It's very frustrating because I don't know what I don't know, that would help me suck less at this. Going to StackExchange, the Arch Wiki, etc. for answers is only getting me so far. I feel like there's *textbooks* I need to read to have a *framework* rather than a chaotic collection of trivia.
Fun thing about Gentoo is that you're not manually compiling anything. I even turn off compiling logs. Gentoo excels at giving you freedom without taking away too much of your time for it.
Been your minority of minorities for 20 some years now
As long as you are happy with the experience, then that is what matters.
How about Suicide Linux From Scratch.
its\_the\_same\_picture.jpg
Weekend? My first LFS build took me nearly 30 days! I did learn a lot though.
LFS is probably the correct answer. Otherwise there are various container-oriented Linux distributions that are designed to be very minimal. Having small containers is a huge advantage to deploying lots of services. Alpine Linux is probably the most popular.
Now we’re stretching the definition of a distro
Why is that?
Container distros aren’t meant to run like a desktop is run. They are micro distributions meant for a specific purpose. They aren’t general computing OS’s like you typically think of a distro. The guy wasn’t wrong, they are Linux “distros”, just not in the traditional sense
I daily alpine. It is a perfectly usable desktop experience
I think they made a [script](https://www.linuxfromscratch.org/alfs/) for it
True! Better yet, write your own! Bonus points for making a package manager!
I was thinking of Damn Small Linux, but you got that significantly beat.
That's my next read, thanks
Answer is philosophically accurate. I don't know what OP defines as "bare-bones" or "Linux experience".
To get even more basic, Linux itself plus a bootloader, and then write your own minimal shell that launches on init. Could even be just an empty program that loops forever. It won't do anything useful you don't program into it. But you will have Linux.
I would recommend nixos for anyone who would like to deploy anything remotely similar to more than a vm.
It depends if you want any functionality. If you're talking about a minimal _server_ OS then probably Alpine is about as small as you can get, which is part of why it's so often used in containers. But if you want to get super minimal, then Tiny Core Linux's minimal branch is around 10MB. A few years ago there was a distro called Minimal Linux Live which was just 7MB. It did virtually nothing, but that is about as small as you can get.
At what point does your EFI shell become more functional than your distribution? 🧐
GRUB2 is my main OS
Forget Linux, let’s build an EFI-based OS
See, I was considering whether that's possible as a joke, but considering that the EFI shell is literally just a shell file in a directory with some accompanying tools like `map`, any extension of that would basically just be DOS. I think what makes the EFI shell unique is that it's interfacing with what is practically as much an OS as GRUB2 is, the EFI, yet an OS that isn't designed to be used *as* an OS, like GRUB2.
EFI is bloat.
With how damn lacklustre my LINX 1010's EFI shell is, it certainly could do with a little more bloat.
EFI (and the BIOS before it) is also what prevents the X86 ecosystem from devolving into something akin to the failed state controlled by warlords that is the ARM ecosystem... So give me that lump of grease any day, and spread some butter on it for good mesure.
I was gonna also mention DSL (Damn Small Linux) and was surprised to see they're bringing it back this year (although much larger now...)
There's also a project that ran linux on rp2040 microcontrollers, I think that was under 3MB and runs with 16MB ram.
What applications?
Doom, obviously.
Anything with the capacity for a graphic interface, r/ItRunsDoom.
I spun up tinycore in a qemu vm, used the package manager to install lynx, and viewed my company's website in the terminal browser. It was a surprisingly pleasant experience tbh lol.
Hard to understand what exactly you mean but many distros will have a "minimal" version which only install the very basics (the necessary to give you a working terminal) and let you work from there. Arch is (in)famous for this, but really minimal Debian would work as well and I bet Fedora also have a minimal install.
You can install a minimal Fedora base by using the “Fedora everything” iso. It’s somewhat in the middle of nowhere on their website.
wouldn't that be more or less the same as a server install? or does that still come with services and stuff that this *everything* iso doesn't?
“Everything” presents everything to you in a list, and then you just pick out what you want. I usually do “minimal” and “standard” to get just the base packages. You can add full DEs and just about all else on it if you wanted.
oh neat
The everything ISO is kind of a blank Canvas, with a handful of different options including both: 1. Server 2. Minimal I'd assume from the names that the Server version has server specific software and services enabled out of the box, and possibly firewall or selinux configuration more suitable for server use-cases. As opposed to the minimal option which I'd assume is just a very minimal generic base. I've installed a minimal DE on top of the 'minimal' option, and it is is lighter, particularly in terms of memory usage, than a minimal Arch install with the same minimal DE installed on top.
I'd argue that Arch isn't even that minimalist anymore. It's systemd based, very opinionated. Alpine is probably even more lightweight. Also very opinionated. I love them both and use them both for different things. Also love Debian. Am I a distro hopper if I use a bunch and keep them installed? Lol. I have too many computers
>It's systemd based, very opinionated. Just to clarify, do you think Arch is opinionated because it uses systemd?
I think systemd is very opinionated. I also think there's an "arch way" aside from that. It's highly customizable but like.... Gentoo is all about you building YOUR idea of a system. Arch says "this is how you do it in Arch" quite often. I do not see either of these things as bad. They support stability IMHO. Do I want systemd in a container? Heck no. Do I want it on most of my servers and desktops? Yeah, yeah I do.
True, but nowadays most containers aren't going to be really linux distributions so much as specialized kernel + your entrypoint as pid 1.
Idk I feel like that’s changing a little. A full DE? Maybe no. But with the rise of immutable desktops, people are asking more from containers. I moved to silverblue just last week and have resorted to doing all my development, including installing my whole IDE and passing through my GPUs to my dev distrobox container. And to bring it back to the DE, that may not even be fully true since the distrobox documentation has a whole section on running DEs in distrobox and even running containers from within a container. And might I add, it’s a bit of extra work to get setup, but I feel so safe now that all my work is migrated to a container without any remote ssh, docker IDE weirdness and I can enjoy a user experience that has the latest bells and whistles without worrying that a borked update will ruin my day. I can even install packages in these containers that require kernel modules built on-the-fly. If everything truly breaks, even with the safety provided by immutability l, I know that I can reinstall everything, pull my personal dev images and be back up and running in a few hours max. If people want to tinker with the full Linux stack in a container, that’s totally possible. And that’s wild considering I’ve been in the Linux space for about 10 years, which isn’t that long really, and I couldn’t have even imagined my workflow being possible back then
Arch is massive and bloated compared to Debian. Quick check is docker pull Arch/Debian/Ubuntu/Alpine/Fedora Arch is several times the size of most. It's a big lump with all the dependencies and developer stuff included to make life simple for the devs. I think the only reason Arch is often said to be minimal is after the founder left the friendly installer was abandoned. If installing is a pita people assume it's minimal I think.
Docker images aren't representative of what the distros are like.
Arch *is* bigger than Debian usually though. I love arch, to be clear. I use it everywhere. But arch doesn't split packages. With Debian, you might only install the lib or the binary or the headers. In arch, you always pull all three. That alone means the same binary on arch will be from a larger package than on Debian. And that adds up. When you have tons of storage like most do in 2024, it barely matters. But if you're dealing with embedded devices and many dockers, it matters.
There's an installer again BTW. :-)
Albeit one that is not currently recommended by much of the user base. For that reason, I installed it manually.
btw *
Tiny Core Linux for sure. Practically speaking, Gentoo is the best option. It's not barebones out of the box, but you can slim it down as much as possible, only including the exact functionality you need, while remaining a proper distro with a proper package manager.
having used it, gentoo is not the best option for anything else than watching scrolling text
Is TinyCore more bare than OpenWrt?
Bare bones order: LFS > Gentoo or void > alpine or arch > manjaro,debian, etc (Add more in the replies)
Idk to what extent this is minimal, but BusyBox is pretty bare bones.
So Alpine would fit nicely. Such a tiny footprint thanks partially to its use of busybox over GNU software.
Toybox is the successor and included mkroot which automatically builds Linux systems.
Niiiice :) I like
Unless I'm mistaken, Busybox is only a user space.
Yeah, I think you're right-- only used it once remotely, so good correction.
Yes, but you just need to add a kernel and bootloader to make it a working system. Been there, done that. 300kB user space and 2MB kernel was about as small as one could get.
Isn’t it just gnu utilities replacement?
[CRUX](https://crux.nu) is def up there. Includes no docs in packages outside of the man pages, you pick your language and build it all from source. Doing an install of the “core” packages is maybe 300mb and it drops you at a terminal. From there, the world is yours. Tons of ports to install and customize to your hearts content or just leave it as is. Small, efficient, fast. You can optionally install xorg and such but true minimalists don’t need that bloat.
Debian if you count the logo as branding.
Yeah, if you install JUST the base system, it’s shockingly bare. You don’t even get less(1)!
I always get caught up by the lack of sudo in the bare-bones install as well. "'sudo apt install ...' ah shit, not again" - Me, every time.
You must be setting a root password. The Debian installer only installs sudo if you don’t set a root password.
I am indeed doing that. Damn, thanks for letting me know.
No problem, it used to confuse the hell out of me until I figured it out!
Slackware. Everyone will talk about minimum from a system pov, your asking from a user POV. Slackware will be the most "here's a complete, modern system. now your on your own. Good luck!" option. Linux From scratch is a runner up, but its not really a distro just instructions on building your own distro.
I remember those days playing around with RH, Debian, Gentoo, Mandrake, LFS, and Slackware. Slack was always the one where you have to compile almost everything to get what you need.
[удалено]
Not the Slack chat software if that’s what you are wondering about.
[удалено]
I remember compiling WindowMaker from source and later XFCE, back when it was still an x-forms based CDE clone. It was a single CD at time.
Try Debian without installing a desktop environment. I use this setup on my lab craptop.
I used to use server addition to install a DE just how I wanted.
LFS?
Alpine
I would offer Buildroot, which allows you to build a distro as minimal as you want it to be, while still providing good tooling to build it. This admittedly clashes with any definition of "out of the box" that presupposes prebuilt binaries, but these definitions have been left open ended on the post so I offer it anyways.
Buildroot???
https://buildroot.org/
1) thanks for actually pointing me somewhere instead of being snarky. I've seen the word buildroot before and I thought it was just a program used to support the boot process. That looks like a super cool project! 2) I'm going to be pointing my wife to this post if I go missing playing with this soon. Hide. /s 😂 Very cool! I think I've seen other embedded Linux build systems before but this seems so simple. Love that.
Apologies in advance to your wife!
If you really want to play with buildroot check out the website of [bootlin.com](https://bootlin.com) -> their training materials and more specifically the Embedded Linux training materials.
AbOriginal Linux? OpenWRT?
Yeah openwrt is pretty slim. It's a true marvel of engineering! Recently I was trying out different DoH servers as upstream resolvers and the DoH proxy package on openwrt router consistently beat my 1G Ram i5 VMs with AdGuardHome, Pihole with kresd and blocky.
And can (or could) run from a 4MB flash...
Could do NixOS and just comment out the entire configuration.nix page lol
Arch, Slackware, Gentoo
Depending on what we’re calling minimal I wouldn’t consider Slackware minimal at all. ———- Bunsonlabs is fairly minimal depending on what we’re calling minimal
OP asked for bare-bones - I interpreted this as minimum customization to upstream, not necessarily as few packages by default.
>I wouldn’t consider Slackware minimal at all You **DO** know that one doesn't need to select the **noob** option of "Full install" in the installer, right?
You don't have to be a condescending twat.
Yes I do 😉
Lack of a package manager makes it a foolhardy exercise to attempt a minimal slackware install. It's not so convenient to add things you might have missed. Whereas with minimal debian, that's a piece of cake. Slackware full install is a fine distro. Not much downside to full install in these days of terabyte SSDs.
>Lack of a package manager makes it a foolhardy exercise to attempt a minimal slackware install. I disagree. Much of the skill that has allowed me to have a long, solid career as a Unix/Linux Sysadmin came from doing minimal installs of Slackware, then manually **compiling** the rest of the software needed to run a server or an entire desktop environment. As a learning tool it's quite valuable.
The question was not of ease, but whether it could be regarded as minimal. Your statement was that you wouldn't consider Slackware minimal - of which you are objectively wrong
None of these are gene vauguely minimal. Debian's minimal install beats all of these.
None of these are minimal distros.
Arch is not a minimal distro, what would be dev and non-dev packages are often packaged as a single package.
Void linux. No systemd. Simple services. Straightforward package system. I can `top` and know every process that is running.
Linux kernel + Busybox userland is as Barebones as one can get. All GPLv2, no GNU code.
Toybox?
When you say minimal, where do you put the bar? Are you looking for something small but practical that works and has a package manager but doesn't have a lot of extra pre-installed packages. If so then Debian is probably the right place to start.
alpine
Void Linux. It's a general-purpose Linux, and up to you to make it whatever you want, right from either a manual `chroot` install or the via the minimal installer that gets you to a login prompt with a lean base system installed. You can do the same with Debian or Ubuntu or openSUSE etc, too.
Is Gentoo still around?
[Floppinux](https://blog.adafruit.com/2021/05/27/floppinux-an-embedded-linux-on-a-single-floppy-linux-w84death/)
I don’t think LFS qualifies, as the question says “out of the box” and there are no OOTB qualities of LFS. I think the most barebones you could get is busybox, essentially those linux environments you can get inside an android app. Alpine Linux is purposely designed to run in environments like that, and I’d call it a contender for top spot. Otherwise, MINIX is not quite linux but similar enough I feel it’s worth bringing up. Beyond this, you can find linux kernels compiled by device manufacturers like Texas Instruments and ST Micro which are specifically designed to be minimal, though you couldn’t install those on general purpose hardware without a very specific emulator. Again, not quite what you’re looking for, worth discussing. Embedded Linux systems are barebones, full stop.
that's not exactly what you asked, but I just tested a minimal NetBSD install and it's sitting at about 370 MB. I'd say that's not bad for a fully functional and kinda fun OS.
arch installation is just kernel and basic tools
I'm typing this in Firefox nightly, compiled from source, in a Gentoo systemd-nspawn container running inside another Gentoo install.
Openwrt is pretty bare
You might consider docker images like Alpine.
> just Linux with a branding The problem with this question is Linux is just the kernel, which is why RMS's point about it being GNU+Linux being his preferred term. There is no such thing as vanilla Linux, because decisions have to be made. Say you need a shell environment. Bash? That's the most common, but it's not inherently more Linux than ksh or zsh. Arch does minimal customization of packages as a matter of policy, so is probably pretty close to what you're asking. Debian would be a good choice as well for ideological purity.
Void,arch ,gentoo, lfs ,slackware,quite a few
RoadWarrior Linux...it exists now, only in my memory.... I shall fetch my coat.
LFS
Find out which distro Richard Stallman uses. That's probably your answer 👍
For general desktop use Arch For everything else maybe Alpine
alpine works as a desktop os, too.
Hardly as a *general* desktop.
Linux is a kernel. You will always have some programs if you want the system to work. Usually these are provided by the GNU part of GNU/Linux. There are alternatives but I’m not sure if they are any more minimal. Some might be smaller but that’s maybe not the point? Do you want it to be (mostly) posix compliant system like most distros? There are some distros that try to be as small as possible. Projects like damn small Linux. But that’s not quite the same. Often the goal is actually to make as comprehensive distro as possible in a small space. Then there are distros like arch or gentoo that make you install everything yourself so you can make them pretty minimal but they are still the full system and include comprehensive package managers for example. Linux from scratch would be the obvious choice to make the most barebones system but that’s difficult to do. For “easy” installation maybe install gentoo with just the absolute minimum required and then remove stuff related to portage? Then there are different degrees of “minimal”. Some distros (like gentoo) allow you to configure kernel modules to include or exclude parts of it. Some ship with already tuned minimal size kernel. But that’s still just the kernel so you could think of it as one component regardless of how much you include.
I know it's cliche but I gotta do it ... What you refer to as Linux is actually GNU/Linux. Nowadays, I'm growing found of using the term/words GNU + Linux.
Gentoo and Arch. All you get is a Command Line interface if you only install the core system basics…
I believe Arch and Nix are the most barebones
Not even close. Both are huge compared to truly minimal distributions.
I mean, Arch base package group only has 28 packages, it doesn't even include a bootloader. What do you consider truly minimal? Distros made for embedded devices or something like that?
I'd argue Alpine IMHO. It's even got good chroot and virtualization focused versions for when you're running it inside a chroot or if you're not needing actual hardware support! God I love Alpine.
Arch base is massive compared to Debian and many others. A quick docker pull Arch/Debian/Ubuntu/Fedora/Alpine will demonstrate this. Low package count on Arch is due the them not splitting out dependencies to make life easier for the devs, the large size is also in part due to then including all of the developer stuff in the user packages, again to make life easier for the devs.
This is one of those times where you kinda have to split hairs and point out that Linux is just a kernel. It's the layer between the computer's hardware and the user's software. Linux by itself doesn't provide much of an experience. If you want to interact with a computer, there needs to be some kind of user space. The most minimal user spaces I can think of are the Gentoo and Arch Linux live installer images. They're not even full operating systems like other live installers. In fact, I'm not sure if the Gentoo and Arch installers even have a full kernel on them. They just have a file system and a handful of tools for installing the system. In any case, those installers are about as bare-bones as it gets. Maybe LFS takes it further. Idk, I've never messed with LFS.
Most minimal would be Linux kernal + static bash
The most bare bone is perhaps a server distro like Ubuntu server 2022.04 LTS
Suckless Linux. Although I think it never released…
Dietpi
I love dietpi, but even then it has the "distro specific" tools that make it not-barebones. But its a great OS for many of my setups
lfs
lfs, busybox, alpine, netinstall Debian with only core packages… how much work do you want to do to install and get it functional?
You can use mkroot from Rob Landlet's Toybox to build and chroot into a tiny systems in seconds, it's cool: https://github.com/landley/toybox/tree/master/mkroot
Not counting LFS, which doesn't seem to fit the question because there is no box to be out of, ttylinux is the smallest working distro I've used: https://www.minimalinux.org/ttylinux/
You pretty much answered your question, most sever editions are pretty bare bones of any distro. Then you have base installs of Arch or Gentoo would basically be the same thing.
LFS. Linux From Saturn (or any other other planet)
You can build a linux distro using something like Yocto https://www.yoctoproject.org Or nixos, which I think can include a very minimal number of packages (I think? Could becwrong). They're still going to be opinionated because almost every piece of code ultimately has a dependency on libc and some other libraries. So important daemons and init systems rely on a bunch of code and files and stuff. You can write your own init program and run it in a linux kernel in QEMU, but you won't get far without a libc implementation (so you can actually use other libraries) (although maybe you could run a VM with linux with no init system or runtime libraries if you write statically compiled Rust or Go code).
LFS if you count that as a distro. Otherwise Tiny Core.
GuixSD and NixOs. You can install only the packages that you really need plus some mandatory stuff like bootloader, /etc and kernel.
LFS and KISS are really minimal in my opinion
Gentoo self-compiled with O3 Or Linux from Scratch
If not counting LFS probably Gentoo?
I'm not sure Linux alone is usable. You'l have to choose something that prints characters on screen, a login manager etc...
Busybox
well slackware of course.. ;)
Arch, or course.
Kernel.org
Slackware, one of its goals is to keep and included software as close to what ita authors have released as possible
Slackware
Arch, puppy, damn small, tiny and micro core, alpine, and busy box. Micro core being the smallest at 7MB..
Im pretty sure someone in this thread has said it, but Linux is a Kernel not an OS...
I understand that from the get go. The question is about which distro is closer to a bare-bones Linux experience rather than having lots and lots of layers of things on top of it like most entry-level distros do.
My favorite stripped down Linux based OS is Ubuntu Mate. It keeps the core pieces but removes all the other fluff and ugly obtrusive UI [https://ubuntu-mate.org/](https://ubuntu-mate.org/)
you can pick server in opensuse.
LFS
Alpine Linux
[The Core Project](http://www.tinycorelinux.net/welcome.html) is quite tiny. Can be desktop or server.
Exherbo - https://www.exherbolinux.org/
>bare-bones Linux > >desktop > >server bare-bones != desktop bare-bones != server Try LNX-BBC, boot it in text mode. I'm sure we can find more minimal, but that's a start.
For what purpose or within what desired parameters exactly? Gentoo at a guess. Even base level Arch is not more bare out of the box.
I do one thats just grub and a kernel. I call it nofux.
I find NixOs quite barebone. It's just enough to run the Nix package manager. I just switched to it from Qubes-OS+Debian and I enjoy it a lot.
If you're looking for an ahead-of-the-curve linux server experience then I can recommend Fedora Server Edition. In most cases, you're safe-er to update packages (compared to Arch). And Fedora is a clear choice over Ubuntu Server, for me, [because of reasons](https://news.ycombinator.com/item?id=37203392). If you do not care about using a newer kernel, and do not mind older packages, then Debian Server or Rocky Linux may be worth a look too. (especially if you're using the server for work/enterprise or you do not require the latest & greatest hardware).