0. Select a base distribution, as close to the intended repurposing as
possible in content, kernel, and look-feel. The objective is to create a
fully documented remastering script/procedure which is reproducable-to-order.
An official Knoppix distro is a good starting point from many perspectives,
but these are chock-a-block full of good stuff. Some of which will have to
be set aside to make room for your intended add-ons.
(Or -- try to find an already minimalized Knoppix clone (such as DSL) -- and
add your stuff back into it.)
The minimalization of Knoppix into a useful base subset is a core function
of the Zoppix distribution. Zoppix sets out to create small, extensible
ZYGOTEs which serve as the building blocks for collections of cloop images.
(A zygote is a biological term, refering to the fertilized egg
cell, prior to mitosis (cell division). As such, it represents a unitary
optimzation of realized acheivement and organic potential. Thus Zyqote
Systems, and its distinctive logo.)
The initial version of Kzoppix (0.06) recognized this need for extensibility.
With the advent of the UNIONFS, a lot of this becomes much easier.
1. Assemble the components of the customization. These are likely to fall
into one of several broad catagories and will tell you a lot about your own
motivation for embarking down this road:
* hardware integration
* environmental comfort
* your own programs
* other task=relevant programs
* your base data set
* backup and security tools
* innovations
* ego-enhancement/branding*1*
2. Find your place in the Cosmic Scheme of Things. The Knoppix
bootstrap adds a few additional lashes to the normal initialization routine.
The creation of a Zoppix clone begins with a quick flyover of the territory,
looking at the from-the-disk experience from a user's perspective, but with
a system designer's eye:
-3 DISCovery # the user views the mounted CDROM/iso content
-2 ISOBOOT # splash, boot menu selection
-1 INITRD # hardware detection, mounting of CDROM imgs
1-5 "real" init runlevels # typically 1,3,4(5) {single,multi,windows}
The "disc-overy" stage is easily overlooked, but almost everyone goes
through it, before actually booting the disq*2* -- from experienced Knoppix users
to casual users peering at the disc behind the bars of their Windows.
To casual inspection, much of the Knoppix disq is opaque, hidden in one or
two huge files (e.g. /CDisk/KNOPPIX/KNOPPIX*) so whatever space can be
spared on the disk to help ease the user into the disq is of significance.
Typically this might include //CDisk/{AUTORUN*, *.ICO, INDEX.HTM} for
Windows users.
The isoboot layer is the first thing the user sees (the boot splash) once
they boot the disq, and often the first (and potentially only) thing they want
personalize.
The initrd stage is the heart of the Knoppix system -- its phenominal
hardware detection and handoff. Without a real good reason, and some sound
knowledge of what you are doing, the casual customizer is best leaving this
one alone without good reason (e.g. special kernel/hardware/init
requirements). The desire to globally replace 'Knoppix' with your logo from
the first multicolor mention onward, is =not= a good reason. Debugging this
section is error-prone and inherently time-consuming and frustratogenic.
Zyqote Systems undertook this challenge back in version 3.x, when not doing
so was an impediment to customization -- even pre-inventing [anticipating]
the wheel which was to be the UnionFS ... but since it has become easier
to merge multiple cloop images, custom cloning is a lot easier, and so is
resisting the temptation to mess w/ initrd. Most Zopppix efforts along these
lines are now related to improving integrity of the initrd, and easing the
process of externalizing minor boot customization/prototyping to either the two
proceeding layers or the runlevels which follow it.
The runlevel stages are more familiar to the traditional linux
booting process. Knoppix started out with a single KNOPPIX.cloop which
contained the code for both going multi-user and bringing up a window
manager. With additional "KNOBS" [KNOPPIX2.cloop, etc] available, Zoppix
focusses on how best to deploy these, especially with regard to:
* runlevel customization
* environment fitting
* content inclusion
Schematic strategy of this stage is deferred.
2. Set aside lots of diskspace for development, and then populate it with
your chosen distribution. Scripting the migration process is key to
developing an extensible OS on what is essentially an archival medium.
* * *
This page is part history, part journal, and part blueprint. It is being
maintained in close-to pure txt format as possible, as we anticipate it will
change as the Zoppix project progresses.
Updated: 2007-01-12
--------
*1* A word on the last item first. Feeling good about your understanding of
a complex system and projecting that confidence is not necessarily a bad
thing; nor is eking out a corporate persona to help you survive in a world
of too many corporate shells and all too few real people. Ego is part of
what gets human beings out of bed in the morning, and so is a survival plus
as long as it maintains minimal autodissignification and is at least one of
{other-aware,other-tolerant,other-compatable,other-enhancing}. Ego can
paradoxically catalyze altruistic actions -- with care. Someone else's
branding: a splash screen, logo, or credit line may be that person's only
reward for their contribution to the groupmind.
Tread lightly, in direct proportion to the length of the tail of the tiger
you are hoping to ride.
Linux is a pinacle achievent of Earthlings' groupmind integration. Be awed
and humbled by it; then be inspired.
At least that works for me. And is fairly solid advice.
The more clocks you take apart, the more likely you are to break something.
For most of us the number of clocks we get to take apart before breaking one
is... one.
Then again, if you can't stand to reheat omlettes, stay out of the
refrigerator.
*2* I've decided to use the word "disq" [sic] to refer to the physical,
removable boot CDROM/DVD which holds the immutable (though customizable)
system, to avoid confusion with hard disks etc.