From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <13426df10612201419p3cad2584xaa362a88a6864f43@mail.gmail.com> Date: Wed, 20 Dec 2006 15:19:33 -0700 From: "ron minnich" To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [9fans] the JD project: little tiny liinux that is a driver for Plan 9, boots in seconds. Topicbox-Message-UUID: f6bf3bf2-ead1-11e9-9d60-3106f5b1d025 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