DIY: Do It Yourself. That's how Linux got started. A group of volunteers, inspired and led by Linus Torvalds, created the greatest DIY operating system the world has ever seen. You, too, can create your own Linux distribution. Here's how.
(click image for larger view)
The Simple Remaster script in Puppy Linux lets you take an existing installation and respin the results out to an ISO file.
View the image gallery.
It sounds daunting, and there's a lot that's definitely not for beginners. But in terms of what you can learn along the way and what you end up with, it's on a par with building your own PC from scratch. Granted, as with building a PC from scratch, there are still plenty of reasons to buy something off the shelf -- or to grab an existing distribution and simply use that. That said, there are a few solid rationales for rolling your own distro:
For education. Sometimes the best way to get to know something is just to stick your hands under the hood and get 'em dirty -- with a little guidance, of course. There's no guarantee that you'll get to know everything, but you will gain a fearlessness about the process of learning and a sense of where to go to get answers about something (and how to get those answers) that you may not get by simply installing a populist's distribution and getting quotidian work done.
For specific problem-solving or filling a gap. If there's some oddball hardware configuration that you want to work with, for instance, you can create a customization of a given distribution to work well with that hardware. This might be something as simple as adding kernel-level support for a given device, or something more elaborate. Or maybe you want to create a distribution that fills a very specific need. (A while back, I wrote about Hikarunix, a sadly-now-discontinued distribution devoted to Go players; it doesn't get more specialized than that.)
For fun. I call this the "why not?" rule. Linux exists to be tinkered with, so tinker with it, and have a blast. Obviously you won't want to trust any production data to a system you're doing such work with, but that's no reason you can't have fun with it. And if something gets messed up, you can always wipe the slate clean and start over. (After all, you're not doing any of this in a production environment, right?)
A few things are worth keeping in mind before you dive in and start rolling.
Learn a little something about Linux first. Before you attempt to create your own custom distro, make yourself at least moderately familiar with Linux if you haven't done so already. In short: use it at least a little bit. If you don't know the basics, there's little point in trying to create a custom distro.
Have patience and pay attention. Any project of this scope, even when automated to some degree, is likely to be long and frustrating. Don't expect to get it all done in a day, and be prepared to take notes as to what everything does and why.
Tweak at your own risk. Be mindful that any modifications you make could have unexpected repercussions. For instance, if you decide to disable kernel support for PC Card devices (perhaps because you're not using your custom build on a notebook and don't want to include those modules), you'll want to document that in the event anyone who uses a notebook and depends on such devices won't be stuck if they use your custom build. Even if you don't plan on distributing the resulting build, it's still a good idea to document any major functional changes. You'd be amazed at what you can forget further on down the line.