From: "ron minnich" <rminnich@gmail.com>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>
Subject: [9fans] the JD project: little tiny liinux that is a driver for Plan 9, boots in seconds.
Date: Wed, 20 Dec 2006 15:19:33 -0700 [thread overview]
Message-ID: <13426df10612201419p3cad2584xaa362a88a6864f43@mail.gmail.com> (raw)
It is called JD for a reason ...
anyway ...
on sources/xen/xen3/xentest.tgz is the latest.
here is what it does
boots a minimal linux to a bash prompt. You type
xend start
xm create hanska
this in turn boots a cpu server under xen which tries to mount from an
fs, which does not exist, but hey ... it can start up a plan 9
instance. And give it an IP from DHCP. And it tries and fails to mount
an fs from somewhere. And if finds the block device (sd00). This is
close.
The linux will nat for you.
In theory, I should be able to mount 9grid.net, have not tried this yet.
The file is a mere 62M compressed (sorry!) but we're trying. I had to
pull in lots of shit because the xen scripts are a mix of python and
bash. The bash scripts, if written in python, would not need all the
shit. Long term, they should all be python, and I am sure that you
folks are chomping at the bite to rewrite them, python being such a
readable, simple, easy to bug-insert language (what's the oppose of
debug? Where you insert a bug just be removing whitespace? maybe embug
-- for embedding a bug. )
here is my grub.conf entry for it -- see, I'm getting user-friendly
this time around.
title tiny horrible xen
root (hd0,5)
kernel /boot/xen-3.0.3-1-i386.gz
module /boot/vmlinuz-2.6.18-3-xen-686 root=/dev/hda6 ro console=tty0
module /boot/initrd.img-2.6.18-3-xen-686
So, what did it take to make this work?
Oh, not much. Xen reported hotplug failing, in a way calculated to confuse me.
But, thinks I, I need udev. But, udev won't start without syslog in
there. Honest, strace doesn't lie.
So, in the end, I added:
[root@q rminnich]# ls /xentest/etc/init.d/
functions syslog
[root@q rminnich]#
[root@q rminnich]# ls /xentest/etc/
blkid.tab dhcpd.conf hosts hotplug.d localtime passwd
syslog.conf xen
blkid.tab.old fstab hotplug init.d mtab services udev
[root@q rminnich]#
rm /etc/mtab; ln -s /proc/mounts /etc/mtab
[root@q rminnich]# ls /xentest/lib | wc
125 125 193
[root@q rminnich]# ls /xentest/usr/lib
libsysfs.so.1 libz.so.1 libz.so.1.2.3 python2.4 xen-3.0.3-1
xen-common xen-default
[root@q rminnich]# ls /xentest/bin
basename hanska mv sed umount xenctx
xenstore-read
bash ip netfix sh usleep xend
xenstore-rm
cat killall ps sleep xc_restore xenmon.py
xenstore-write
cp less pygrub stat xc_save xenperf xentop
cut logger readlink strace xc_shadow xenstore-chmod xentrace
dhcpd lomount readnotes sync xenbaked xenstore-control
xentrace_format
drawterm ls reset tcpdump xen-bugtool xenstored
xentrace_setmask
ed mkdir rm touch xencons xenstore-exists
xentrace_setsize
expr mktemp rmdir tr xenconsole xenstore-list xm
grep mount runme true xenconsoled xenstore-ls
[root@q rminnich]# ls /xentest/usr/bin/
awk dirname env python
[root@q rminnich]# ls /xentest/sbin/
brctl initlog jfs_fscklog nologin udevcontrol
udevstart.static
consoletype insmod jfs_logdump pidof udevd
udev.static
depmod iptables klogd sh udev_run_devd
getty iptables-restore logsave sulogin udev_run_hotplugd
ifconfig iptables-save losetup syslogd udevsend
init isdnlog modprobe udev udevstart
[root@q rminnich]#
and a few other bits. If you think this is a lot, you haven't been
watching linux lately.
Also, the following simple thing:
[root@q rminnich]# cat /xentest/bin/runme
#!/bin/sh -x
mount -t tmpfs none /tmp
mount -t tmpfs none /var
mkdir -p /var/run/xenstored
mkdir -p /var/log/xen
mkdir -p /var/log/hotplug
mkdir -p /var/lib
mkdir -p /var/lib/dhcp
touch /var/lib/dhcp/dhcpd.leases
mkdir -p /var/lock/subsys
mkdir -p /var/run/xen-hotplug
PATH=$PATH:/usr/lib/xen-3.0.3-1/bin
export PATH
/etc/init.d/syslog start
/sbin/udevd&
modprobe loop
modprobe bridge
modprobe netloop
ipconfig eth0 10.0.0.1 up
#xend start
#xm create hanska &
PATH=$PATH:/mnt
ah, well, we had hoped to have a readonly medium, but we have not
resolved the problem of a writeable root for plan 9. maybe later. What
would be very interesting is to not have a root at all, but just boot
as a terminal from somewhere, but we are not ready yet. But that is
the Dream.
anyway, 20M are there, 40M need to get there, so give it a few
minutes. The file when done is this:
[root@q xentest]# ls -l /tmp/xentest.tgz
-rw-r--r-- 1 root root 62174680 Dec 20 15:48 /tmp/xentest.tgz
[root@q xentest]#
testers welcome, as long as you're not too helpless when confronted
with Xen ... it's not ready for that yet!
thanks
ron
next reply other threads:[~2006-12-20 22:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-20 22:19 ron minnich [this message]
2006-12-20 23:17 ` Paul Lalonde
2006-12-20 23:22 ` David Leimbach
2006-12-21 3:41 ` ron minnich
2006-12-21 9:24 ` [9fans] the JD project: little tiny liinux that is a driver for Richard Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13426df10612201419p3cad2584xaa362a88a6864f43@mail.gmail.com \
--to=rminnich@gmail.com \
--cc=9fans@cse.psu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).