So, during the couple of days I've been thinking what it takes to make your own linux distribution. Where should I actually start? I'd like to have some very basic tips for this. I consider myself a decent programmer, mainly in c++ and objective c. And what limits there are in making a distro?
-
2Is this just for fun or are you not happy with any of the distros out there? Do you have a particular philosophy in mind?– JobAug 27, 2011 at 23:57
-
Really just want to know the process of making one.– Samuli LehtonenAug 27, 2011 at 23:59
-
4@Samuli have a look at linux from scratch– Mahmoud HossamAug 28, 2011 at 0:12
-
2or Pocket Linux– PhilomathAug 28, 2011 at 2:44
-
Have you also considered what it takes to support the distribution? WHats you plans for release cycles, stability vs latest feature set. Have you considered how to market your distro, who you target audience is? It's easy to put together a flavour of linux, or any other open source package, but to make a distribution is a lot more than the installable CD image.– mattnzAug 28, 2011 at 5:26
2 Answers
99.5% of what's in a Linux distribution is aggregation of existing packages. Unless you have some ideas for a new way to do installations or package management or intend to rewrite everything from awk
to zcat
from scratch, there really isn't a lot of programming involved.
-
5Or succinctly, a distribution is an integration project not a programming project.– Steve-oAug 28, 2011 at 3:25
Depends on why you're doing it.
If you're into the learning experience, check out Linux From Scratch.
If you need to deliver a functioning product, and a customized Linux distro is part of the solution, you are better off basing your Linux on a suitable mainstream distro (say, Debian, SuSE, RedHat / CentOS, Fedora, etc.), learning to use their packaging system, and setting up your own repositories.
In either case, this is not so much a programming task as a packaging and system administration task - a distribution is mainly an aggregation of existing software, selected to work together, with all dependencies automatically managed (this is what package managers do), and usually precompiled into suitable binaries (though some distros, e.g. Gentoo, download sources and compile on the target system).
Also, if you're looking for a practical solution, there are literally hundreds of Linux distributions, and some of them are extremely customizable. Chances are whatever you need has already been done.