[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
The Core and the Kernel
> We can NOT have developers building new kernels that might make their
> stuff work but might break other things.
Right. The goal of being Core-compliant (not SEUL-compliant, mind you), is
to define a certain level of things that can be *assumed*. If a commercial
vendor were to build their application, say StarOffice, for Core version
1.3, then that vendor should have the *right* to assume version A of the
kernel (if that's an issue), version B of [g]libc, version C of this,
version D of that.
Now, a given Core version will likely be three things: a document describing
what is to be in the Core, a document describing what can be *assumed* of
the core, and a reference implementation. Very similar to what 86open will
be doing. They will produce a standard, and a reference implementation.
Linux will use the reference implementation, most commercial Unices will
simply be compliant. However, I must stress the point that being compliant
and being reference-based *must* be equivalent, from the point of view of
someone reading the second doc mentioned above.
Back to the kernel for a little while: I don't think we should ship one
kernel and require that everyone use it. I think we should describe a
*minimum* kernel, and a *minimum* set of extra patches (if we decide to do
so) or equivalent functionality if said patches are later incorporated.
That allows distributions to incorporate new kernels if they so choose.
OK, given that, here's my proposal for the naming scheme:
1) the Core documents (internal and external specs) will be versioned like
any other program, i.e. 1.0, 1.1, 1.1.1, 1.1.2, 1.2, etc.
2) the Core *reference implementation* will be versioned based on the
version of the Core documents, and an extra number for the implementation
number. Identical concept to what RedHat does with 2.0.32-2 stuff. The
version number defines what *external* functionality is provided, and it
can be assumed that anything with the same version number but higher rev
number is two things:
a) identical or "better" external interface/specs
b) a better implementation of those specs (i.e. better guts)
This means that for a given Core version, new reference implementations can
be created as needed, while maintaining the same version number. If 2.0.34
comes out, you simply up the rev number. This method also means that
"updates" can be released as patches to a given Core version-rev, without
breaking anything. This IMO is a very good thing.
Comments?
Erik Walthinsen <omega@seul.org> - SEUL Project system architect
__
/ \ SEUL: Simple End-User Linux -
| | M E G A Creating a Linux distribution
_\ /_ for the home or office user