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?

  • 2
    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, 2011 at 23:57
  • Really just want to know the process of making one. Aug 27, 2011 at 23:59
  • 4
    @Samuli have a look at linux from scratch Aug 28, 2011 at 0:12
  • 2
    or Pocket Linux
    – Philomath
    Aug 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.
    – mattnz
    Aug 28, 2011 at 5:26

2 Answers 2


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.

  • 5
    Or succinctly, a distribution is an integration project not a programming project.
    – Steve-o
    Aug 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.

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