Update: My Very Own Linux
It has been a few months since I decided to create my own Linux distribution, and nary an update since then. So, I figured I’d create an update… to… update… you.
Anyway…
I’m actually still in the initial stages, in the overall context of the project. Basically, to create a Linux distribution (from scratch, as I am doing), it begins similar to a chicken-and-egg problem. You have to use an existing system to create building blocks, and use the building blocks to create a complete toolset. Then, you use the toolset in a limited environment, which makes zero assumptions (a “chroot” environment, for geeks out there), to begin construction of the target system.
While doing this is actually pretty straightforward, usually, the difficulty and complexity enters the stage when thoughts about the future begin to crop up. Issues such as future maintenance and automation complicate matters because while there might be a working toolset to construct a target system, no one wants to have to manually create the target system each time something changes. Also, if something changes within the toolset itself, the component will need to be rebuilt, or worse, the entire toolset will require rebuilding such that the whole thing remains cohesive.
This is similar to around the time when man first thought about hunting and killing for food. He realized he could fashion a tool to make a weapon. Next, he used the tool to create the weapon, which was then used to hunt and kill for food. As evolution continued, he created more efficient tools, to in turn create better weapons that would enable him to hunt and kill more exotic food. The same general principle exists when creating a Linux distribution — though, we’re not depending on the need to eat in our software toolchain, we are depending on the ability to make more software available, which will comprise a Linux distro. The tricky part is to know how to manufacture tools in such a way that when a component in the process breaks, it is trivial to fix it so much to the point that if a tool very deep in the toolset breaks there is less need to re-manufacture everything that was built with it. Henry Ford had a very good idea, with small replaceable parts.
At this point, I’m at the point that I have the toolchain built. Before I go much further, I need to figure out a sensible way to maintain this toolchain so that if/when something becomes stale or breaks, I will spend less time repairing the toolchain and more time tending to the actual Linux software in the distribution. Also, since the toolchain itself was build manually and painstakingly, I also need a system to churn out software using the toolset I have. Perhaps a framework/system could be used for both maintaining the toolset, and maintaining the distro?
I’m quite sure this is not entirely a brand new problem — major Linux distros would have had to flesh this out very early on. The trouble is, though, whatever they’re using to handle this type of framework, they’re not very up front in saying exactly what they use, what it does, or where it came from.
I know what I want my system to do. I have a general idea how it should fit all together. My dilemma is that I’m splitting my time between searching the Internet for any existing software to satisfy the need, and planning how I might create my own toolchain/distro maintenance framework/system. There are, actually, existing systems that do something along these lines, but they were designed for very specific purposes, and implemented with specific needs in mind, which resulted in assumptions that require specific platforms. Not very useful in my case, because I’m creating from scratch with no assumptions.
Eventually, I will have an automated system that will:
- institute modularity wherever practical
- automatically rebuild (with dependent software if necessary) anything that needs updating/fixing
- handle both the toolchain itself, and the target Linux software
You’re currently reading “Update: My Very Own Linux”, an entry on Paranoid Linux Ninja Geek
- Published:
- 08.25.09 / 3pm
- Category:
- critical thinking, linux, open source, tech
- Tags:
- Post Navigation:
- « Online Operating System Creation
The Current State of Email »





Comments are closed
Comments are currently closed on this entry.