I recently joined this Linux group and have been meeting some new people. One of the people that I’ve been talking to said that he’d like to create his own Linux distro, but clearly that’s a challenging prospect if you haven’t done it before (heck, I haven’t, or at least not yet).
What I suggested was to look into something like Linux From Scratch, which, if you’re unfamiliar with it, can be found here: Welcome to Linux from Scratch! This friend of mine, like me, is into exploring technology and building new things, but as any of you coders know, there are always points where you get stuck.
Their site explains a few of the reasons why you might want to build a Linux distro from scratch, which are good to know before undertaking such an endeavor:
Many wonder why they should go through the hassle of building a Linux system from scratch when they could just download an existing Linux distribution. However, there are several benefits of building LFS. Consider the following:
LFS teaches people how a Linux system works internally
Building LFS teaches you about all that makes Linux tick, how things work together and depend on each other. And most importantly, how to customize it to your own tastes and needs.
Building LFS produces a very compact Linux system
When you install a regular distribution, you often end up installing a lot of programs that you would probably never use. They’re just sitting there taking up (precious) disk space. It’s not hard to get an LFS system installed under 100 MB. Does that still sound like a lot? A few of us have been working on creating a very small embedded LFS system. We installed a system that was just enough to run the Apache web server; total disk space usage was approximately 8 MB. With further stripping, that can be brought down to 5 MB or less. Try that with a regular distribution.
LFS is extremely flexible
Building LFS could be compared to a finished house. LFS will give you the skeleton of a house, but it’s up to you to install plumbing, electrical outlets, kitchen, bath, wallpaper, etc. You have the ability to turn it into whatever type of system you need it to be, customized completely for you.
I think that, especially with regard to the third point, this makes sense. That’s one of the reasons that people like distros such as Arch and Gentoo; they’re lightweight and customizable.
Even so, if you’re rather new to Linux (as I am, having only used it for about a year), undertaking a project like building your own distro from scratch sounds extremely ambitious.
Might I suggest trying something like Arch, or even Gentoo, before you attempt LFS? Arch Linux, as I mentioned on a few earlier posts, has a very detailed installation guide, which helps you along in the process: Installation guide – ArchWiki (I’ll let you know if I ever finish it.)
The issues I had with Arch were similar to ones that I’ve had while coding; a semicolon was in the wrong place, or I had a space where there shouldn’t be one. Considering this, I’d like to give it another go! As for Gentoo, I’m not quite there yet – maybe after using other Linux distros for a few more years, I’ll reach that level. (I can already hear my IRC friends laughing.)
One last idea I had for my friend (or anyone else who’s interested in creating a distro), would be to start with Slax. While less complex than compiling from source as you would with Gentoo, Slax is a live operating system that can get you used to the idea of “building” a distro: Slax Linux
As with Tails or Whonix, you can install Slax as an ISO file from a CD or DVD. You can also install it on a USB drive. The difference, or so it seems, between Slax and some of the distros mentioned above are that there are some shortcuts and boot parameters a.k.a. “cheat codes” (in their words) to help you get started.
The reason that I thought to mention it here is that Slax, like these other distros, is very customizable, but probably less frustrating for a beginner. In fact, it may have its own future posts if it’s lucky.
Shall I add this to the stack of projects I’m already working on? Maybe I will, but I think there are some other priorities I have to take care of first. Feel free to offer suggestions, as always!