What's Under the Hood?
Bob Young, of Red Hat,
compares binary software distributions to cars
that have the "hood welded shut".
Access to source code "opens the hood",
but it is far from a complete solution.
Without comprehensive documentation,
source code access can lead prospective maintainers
(however qualified, otherwise)
into wasted effort, frustration, and error.
To work productively,
car mechanics need a fair amount of documentation:
catalogs of replacement and add-on parts, etc.
A mechanic at a car dealership will have all of these,
possibly in online form.
Back at the factory,
car designers and engineers will have access
to the complete manufacturing specifications
for every part in every model of the car, year by year.
In commercial aviation,
similar systems are used
to track the complete configuration
of each airplane in a fleet.
If a gasket is replaced,
the appropriate database record is updated.
Consequently, an airline mechanic never has to wonder
about the precise configuration of a given subsystem
on the plane in question.
Problems are also tracked globally,
generating replacement bulletins for problematic components.
Thus, mechanics are automatically informed
when a given part needs
to be checked, adjusted, repaired, or replaced.
As complicated as cars and airplanes are, however,
they are far simpler than operating systems.
Thus, computer operating systems could benefit even more
from this kind of support.
If every part of the operating software
on a running system were cataloged and documented,
a maintainer (e.g., administrator or developer)
would never have to guess at a file's format or purpose.
Like airplane parts and subsystems,
and software packages (e.g., bintools, Sendmail)
can be described and tracked.
Although parts and files may be modified,
they seldom disappear or change in function.
Similarly, subsystems and packages tend to be
fairly consistent in content and structure
from release to release.
Thus, little human annotation
(i.e., non-automated documentation)
is needed for "maintenance".
Online catalogs of "replacement parts",
complete with descriptions and dependency information,
could allow maintainers
to perform fast and safe (sub)system upgrades.
With appropriate safeguards,
automated systems could perform recommended upgrades,
keeping systems up to date with important patches.
Not every administrator will want automated upgrades,
but most would be happy
to have current, browsable system documentation.
If all possible add-on packages were also documented
(including dependencies and caveats),
many installation hassles and risks would be reduced.
-- Main.RichMorin - 16 Jun 2003