Hello all,

I apolologize for leaving in the middle of an important conversation.
Unfortunately, this will happen from time to time. Life gets in the way :-)

>Message: 4
>Date: Fri, 15 Feb 2002 18:26:00 -0800
>From: Matt Schalit <[EMAIL PROTECTED]>
>Subject: Re: [Leaf-devel] Re: Standards and due process :-)
>To: [EMAIL PROTECTED]
>
>
>No problem, my feelings weren't hurt.  I was stating a fact.  You


Good. We are in the business of change and it is a business of emotions and
feelings, not one of logic and certainly not one of wright or wrong.

It is emotions and feelings that will drive Mike to discount his opinion
because he is not producing "code" and it is emotions and feelings that
prompt Charles to put value where value is due. I entirely support the
expression of these emotions and feelings (which includes humor: I guarantee
that if you can laugh at yourself, you will NEVER cease to be amused :).

My personal experience is that you ride change, much like a horse, sometimes
just for fun, sometimes to get from point A to point B.

In this case, I have submitted an idea supported by a bunch of definitions.
The idea is that the contents of our initial RAM disks be unambiguously
enumerated which imply that root (/) be moved to any other package (your
choice!) which I call the default store.

This does not require any adherence to any foreign code, programs or the
like. In fact I can implement the entire concept in Oxygen 1.9 by editing
two DATA files. The first one is root.list which contains the single entry
./ and which I replace with the unambiguous enumeration of the contents of
root.gz (see the appendix below). The second one is any other file I choose
as my default store: my personnal preference is home.lrp and I edit
home.list to contain the single entry ./.

I can use Oxygen 1.9 right now, even without the backup code that will be
part of a later update. I obviously use it in ways that its author has not
envisionned. Further, root.gz with the edited root.list satisfies in every
way the definition I have put forward for the concept of an "enclosure".

I have seen this idea mocked and the discussion go all over the map from
intents of imposing a "de facto" standard to attempts of restricting the
expression of individuality of developers. Yet, given the fact that Oxygen
1.9+ may be compatible with tar.gz and plain gz ramdisks, and given the fact
that the default store always retain the "standard" LRP format, I can only
see benefits from this idea for Oxygen. Because it is an idea, it can be
implemented by anybody in the form of their choice and does not have to BE
part of a product offering. It can be documented and left at that. In my
case, I wanted to use the product NOW and I choose to edit the two files.
Further, when Oxygen 1.9+ becomes available, I will drop my home.lrp on the
new kit and reboot with all my stuff intact. Instant upgrades are always
interesting :).

Not only do I think that David Douthitt is wright when he says there is no
baseline, I aim to write my code for a minimalist implementation of
everything (including sed :). My baseline is lower than his. However,
Michael Schleif is also wright when he says "In fact, a system, such as leaf
and lrp, is and always has been founded on a -- confusing -- myriad of tacit
specifications.  It is this implied set of conventions that I am
addressing -- the fact that these specifications are largely unwritten and,
therefore, understood by a very small minority. "

I believe that it is possible to have these specifications without a
baseline. When told that it was impossible to abstract something that would
be common to 2.2 and 2.4 kernels, I actually produced a floppy on which
people can comment. To quote from my February 11 post:
>You CAN voice your opinion and submit suggestions WITHOUT spending long
>hours in quality control. And so can anyone else. There is a disk at
> http://leaf.sourceforge.net/devel/scaron/discussion.img. It contains one
>boot loader, two kernels, four packages, one enclosure, and one appliance.
>This appliance is the ENTIRE startup code from Bering beta3 and which I
made
>compatible to Linux 2.2 kernels by changing 5 lines. Two packages are
>ne2k-pci cards modules for 2.2 and 2.4 kernels: they are mutually
>incompatible :-). The last two packages are ipchains and iptables (how did
>you guess?). There is about 10kb left to play with.

Now, a FLOPPY that contains TWO kernels and compatible modules should at
least generate some interest in the process, especialy one that loads ip
filtering code according to kernel version. So far, I must report NO mail.

The code that I have submitted to support these ideas also promotes ease of
deployment, ease of documentation, extensibility, and support for run of the
mill "appliances". The fact is, much of the code that runs once init
receives control is the same in LRP, *stein, Bering and a number of other
derivatives. Once he has a grasp that everything else can be enumerated,
Michael can take the "root" appliance in the above floppy and document its
tacit specifications. Again, this can be done from the "appliance" point of
view without being reflected in code.

In the meantime, I haved continued to lower this baseline. The page
http://leaf.sourceforge.net/devel/scaron/leaf.htm has been updated to
reflect release of v5.0.3 as well as introduce v5.1.0 and v5.3.0. This
documents (alas poorly) the process of creating enclosures and shifting the
baseline anyway the end user sees fit. Doing this made me realize how I can
change the backup code to avoid loosing files enumerated in the xxx.links
package lists, which happens, for example, when a busybox applet is replaced
with the real thing. v5.0.3 also drops the POSIXness stuff, without breaking
*stein and Bering, AFAIK: see the caveat below :).

v5.3.0 is my "standard" busybox ash experiment: I have tested on many
occasions the compatibility of busybox ash to the Debian ash. In this case,
I simply replaced the busybox in the original enclosure with the busybox
found in Oxygen 1.9. busybox ash is not a drop in replacement for ash, but
it is getting better all the time. In this case, there is a "Segmentation
fault" in the following construct:

   # Modules required to complete the boot process
   if [ -r $BOOTDIR/etc/modules ] ; then
     # (Do not process comments and white space.)
     (blind cat $BOOTDIR/etc/modules; echo) |
     sed -e "s/#.*$//1" -e "/^[[:space:]]*$/d" |
     while read module args; do
        blind insmod $BOOTDIR/lib/modules/"$module".o $args
     done
   fi

There is nothing wrong with this construct and it will run perfectly if it
is moved around in the script (the segmentation faults happens in the pipe
between sed and the while clause). In the problem at hand, the file is empty
and the startup continues correctly. It is the ONLY thing to report for the
scripts in this enclosure when using a 2.2 kernel. There is about a dozen
"Segmentation fault"s when using a 2.4 kernel, none of them fatal.

The availability of these concepts and tools makes the experiment and
discussions possible. Please note that the floppy has been upgraded to
http://leaf.sourceforge.net/devel/scaron/discussion2.img. This particular
code is designed to reflects the concepts introduced left and right in this
post and on the formal presentation page. It can be used with other
libraries as well: there are only 19 binaries involved, all of them standard
Debian or busybox fare. 14 of these binaries are used ONLY by the "root"
appliance above. AFAIK, e3 is used only by us, humans. This leaves ash,
busybox, tinylogin, and sed for the best experiments :o).

Those interested to comment on the ideas are more than welcomed to do so,
emotions and all. I also need a replacement script for Charles mail script
which happens to use netcat, a utility that I do not want in production
equipment. Which smtp _output_only_ program should I use and is there a
script compatible to Charles's syntax?


Regards,

Serge Caron

Appendix: contents of root.list in my Oxygen 1.9 setup:
linuxrc
bin/ash
bin/bash
bin/busybox
bin/dnsdomainname
bin/help
bin/lf
bin/ll
bin/logrotate
bin/lx
bin/netlock
bin/pwd
bin/run-parts
bin/sh
bin/sleep
bin/snarf
bin/strip_comments
bin/timeread
lib/modules/boot/3c509.o
lib/modules/boot/3c59x.o
lib/modules/boot/8390.o
lib/modules/boot/cdrom.o
lib/modules/boot/eepro100.o
lib/modules/boot/ide-cd.o
lib/modules/boot/ide-disk.o
lib/modules/boot/ide-mod.o
lib/modules/boot/ide-probe.o
lib/modules/boot/isofs.o
lib/modules/boot/modules.conf
lib/modules/boot/ne.o
lib/modules/boot/rtl8139.o
lib/modules/boot/smc-ultra.o
lib/modules/boot/tulip.o
lib/modules/boot/wd.o
sbin/chroot
sbin/ip
sbin/lsmod
sbin/mkram
sbin/sysctl
var/boot/modules
var/boot/config/README
var/boot/config/big.vol
var/boot/config/cdrom.cfg
var/boot/config/config.cfg
var/boot/config/develop.cfg
var/boot/config/dos.cfg
var/boot/config/firewall.cfg
var/boot/config/floppy.cfg
var/boot/config/large.cfg
var/boot/config/largenet.cfg
var/boot/config/misc.cfg
var/boot/config/net.cfg
var/boot/config/oxygen.cfg
var/boot/config/rescue.cfg
var/boot/config/setup.cfg
var/boot/config/smallnet.cfg
var/boot/config/std.vol
var/boot/config/test.cfg
var/boot/config/testcd.cfg
var/boot/config/tiny.cfg
var/boot/linuxrc/find.cdrom
var/boot/linuxrc/functions.cdrom
var/boot/linuxrc/functions.dhcp
var/boot/linuxrc/functions.general
var/boot/linuxrc/linuxrc
var/boot/linuxrc/main.load
var/boot/linuxrc/mkdevices
var/boot/linuxrc/mkfloppies
var/boot/linuxrc/new.load
var/boot/linuxrc/old.load
var/boot/linuxrc/sysconf
var/lib/random-seed
var/lib/lrpkg/config.md5
var/lib/lrpkg/root.busybox.list
var/lib/lrpkg/root.conf
var/lib/lrpkg/root.exclude.list
var/lib/lrpkg/root.help
var/lib/lrpkg/root.list
var/lib/lrpkg/root.mount
var/lib/lrpkg/root.posix.list
var/lib/lrpkg/root.version
var/lib/lrpkg/sys.packages
var/lib/dialer/*
var/spool/*



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

Reply via email to