-----Original Message-----
From: Charles Steinkuehler <[EMAIL PROTECTED]>
To: Serge Caron <[EMAIL PROTECTED]>; [EMAIL PROTECTED]
<[EMAIL PROTECTED]>
Date: February 19, 2002 3:28 PM
Subject: Re: [Leaf-devel] Re: Standards and due process :-)


>It's the falling off and turning into Christopher Reeve part that I'm
>worried about :-)

I think you chose a perfect example. The courage of that man makes you
forget the horse altogether.

>This is perhaps the clearest example of what you're after you have provided
>to date...thinking about this more, I'm not even sure a "default store" of
>any sort is necessarily a great idea.  On one hand, the default package
>means there are no orphaned files, but the overlapping nature of the
>existing package list format leads to lots of problems in it's own right.
I
>need to think about this some more...
>


Now we're talking! If these were sets, the union of all the xyz.list files
is not equal to the universe of files available on the system (represented
by /) because some files are created by running programs, operators,
intruders :). So the set of orphaned files contains interresting stuff in
its own right. However, this is only the obvious part of the iceberg.

In the long term, I want to be able to run from "secure media". In the short
term, I use CD for write protected storage and floppy for write-enabled
storage (wich I write-protect between sessions :). Suppose a package
designer stores something in /etc/mypackage (which is either a file or
directory, your choice). This designer has many choices:
1- claim /etc/mypackage as part of this package
2- rely on an unwritten standard or tacit convention that /etc belongs to
another package (presumably etc.lrp)
3- rely on the user's knowledge of the LEAF standard that his file will end
up in the default store.

If /etc/mypackage is also a directory, the package designer can "optimize"
the backup operation by omitting certain temporary files (enumerated in
xyz.anything.list).

Suppose that the system of partial backups is finely tuned so that modified
files always end up in write-enabled storage. Suppose also that packages
from read-only storage are always loaded before packages from write-enabled
storage, eg, you don't loose modifications. Finaly, presume the goodwill of
the package developer, eg, package xyz claims nothing out of its immediate
territory.

This above set of conventions places the entire burden of protecting this
package in the hands of the package designer with no support from the LEAF
appliance it is supporting or the user operating the machine. This is
precisely Michael's line of questioning. If there is a standard, then the
user knows what is going on and backup is one of the user's many
responsibilities. However, we all know that history has been written before
us and that pppd uses /etc/ppp and dhcpd uses /var/state, etc: addressing
the problem from this angle IS next to impossible, especially if we try to
make a sysadmin out of the user.

This user is also subject to constraints of his own. The readme file in /
stating that trespassers will be prosecuted to the maximum extent of the law
is a real life example. The file belongs to the user and even he can't
choose the location. Another example is dropped files. You and I may find
that dropping /var/run/xyz.pid files is OK. Unfortunately, it does not match
many audit policies, including those of my organization.

None of these things are issues if the filesystem is persistent storage such
as hard disk. When it is not, you have to expect that somebody else than
LEAF will select which files goes to write-enabled storage. As of now, I am
doing OK by rewriting most lists (on the fly!) and saving the default store.

This system is far from perfect and this is why I am supporting Michael's
quest :-)

>
>Packaging enhancements!  Lowering the baseline!  All good to me! :-)
>


Actually, the baseline goes lower every release :-)

>even more:  *NO* glibc, *NO* shell, and a *VERY SMALL* initial ramdisk that
>bootstraps the rest of the distribution.  This should all be possible using


Precisely! This is why the "appliance" boundary is set to start with
/sbin/init. Anything before that should be abstracted as "turn it on and it
works". The term "enclosure" was coined because it is not a box and you
can't throw it away. On the other hand, the component must ship with the
appliance (red paint, anyone?  :).

>a self-contained scripting lanugage that has the capability to do kernel
>calls.  Very much like e3, which talks to the kernel directly rather than
>using a c library, the bootstrap code can be made very small.  By using
tiny
>interpreted language like Forth, the boot process can still be made
>flexible.  The key part I'm still checking into is being able to
dynamically


"flexible" is a nightmare until you explicitly specify the side effects of
the load order. The bootstrap loader loads THE ramdisk before the kernel and
you can be "certain" that things are what they look like when linuxrc gets
control. Anything else must be specified by LEAF.

[snip]
I am less excited by the building of the LEAF components themselves at this
point (No! I do NOT like Red Hat 5.2 :-). I am certain that we can come up
with an unambiguous way of specifying the whole system, even if we have to
point out all the gotchas one by one. Then I will be excited for anything
else I can put in there :-)

BTW, do you have a replacement script for the POSIXness.mail mail command?
And which smtp _output_only_ is preferred out there?

Regards,

Serge Caron



_______________________________________________
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to