Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
Is this just for fun or are you not happy with any of the distros out there? Do you have a particular philosophy in mind? – Job Aug 27 '11 at 23:57
Really just want to know the process of making one. – Samuli Lehtonen Aug 27 '11 at 23:59
@Samuli have a look at linux from scratch – Mahmoud Hossam Aug 28 '11 at 0:12
or Pocket Linux – Philomath Aug 28 '11 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. – mattnz Aug 28 '11 at 5:26
up vote 14 down vote accepted

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.

share|improve this answer
Or succinctly, a distribution is an integration project not a programming project. – Steve-o Aug 28 '11 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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.