though, to date, it hasn't worked for me, this may also be a good
starting point: https://git.sr.ht/~mcf/wl9

I've also looked at doing an X server that imports a devdraw over
the network (or a pipe). No results to report yet, and I'm not sure
which approach is better.

the Waynesworld display server is the annointed future, but X11 has
things like mi/rootless and several good starting points.

Quoth ron minnich <[email protected]>:
> one option is to run a Linux or FreeBSD X server in a VM, tell it it has a
> very dumb frame buffer, and emulate the frame buffer.
> 
> We did this for megatux, using the KVM Tool, and it turns out we have the
> person who did it on this list (Floren)
> 
> 
> 
> On Fri, Jun 13, 2025 at 2:57 PM David Leimbach via 9fans <[email protected]>
> wrote:
> 
> > Very interesting.
> >
> > If we had a X server (we do don’t we) can I run a web browser through this?
> >
> >
> > Sent from my iPhone
> >
> > On Jun 13, 2025, at 10:59 AM, ron minnich <[email protected]> wrote:
> >
> > 
> > In my IWP9 talk I mentioned the linux vm appliance we built for akaros,
> > when I was at google, and I've got a very simple version working on 9front
> > vmx now, tested on my t420.
> >
> > It needs a kernel, and a u-root (github.com/u-root/u-root) initramfs,
> > with my sidecore command (github.com/u-root/sidecore)
> >
> > sidecore is a modified cpu client which provides, to the cpu server, over
> > 9p or nfs, a union of the client namespace (as in cpu) and a cpio archive.
> > The cpio is typically a flattened docker container, created using a tool I
> > wrote in github.com/u-root/sidecore-images.
> >
> > I did all this work, while at Samsung, so we could have cpu in Windows.
> > Windows does not have things linux wants, like symlinks, device specials,
> > and so on; sidecore provides them via the cpio file.
> >
> > So, to make this work, you need a kernel, an initramfs, usually compiled
> > into the kernel, and the sidecore command, which runs in Plan 9. I can
> > provide more instructions to interested parties, but overall, it's
> > pretty easy. What it lacks is polish.
> >
> > There is an rc script, appliance, which does this:
> > vmx -c /fd/0,/fd/1 -M 1024M -n ether1 /usr/glenda/plan9cpulinux
> > Once that starts, in the guest, you need to do something like this:
> >  ip addr add 192.168.0.187/24 dev eth0
> > ip link set dev eth0 up
> > cpud
> >
> > Then the appliance is ready for use.
> > On the plan 9 side, there is a command, linux, which looks like this:
> >
> > ramfs -S sidecore
> > mount -ac /srv/sidecore /
> > mkdir -p /home/glenda
> > bind /usr/glenda /home/glenda
> >
> > SIDECORE_ARCH=amd64
> > SIDECORE_DISTRO=py3-numpi
> > SIDECORE_KEYFILE=/usr/glenda/.ssh/cpu_rsa
> > HOME=/home/glenda
> > PWD=/home/glenda
> >
> > sidecore -sp 17010 '-9p=false' '-nfs=true'  192.168.0.187 $*
> >
> > The ramfs setup is so our home is /home/glenda, which linux distros seem
> > to want.
> > The various environment variables direct sidecore about where to get its
> > key, the architecture of the container, and the distro desired.
> > sidecore looks for a file of the form:
> >
> > $home/sidecore-images/$(SIDECORE_ARCH)-$(SIDECORE_DISTRO)@$(SIDECORE_VERSION).cpio
> >
> > so, a few things: works across architectures, you can have any distro you
> > want, and you can have different versions: default is latest.
> >
> > I've used this from osx, linux, and windows to risc-v, and now it works
> > from plan 9 to vmx guest. Note that, also, the guest can be freebsd.
> >
> > Now we get to the kind-of-crude part, sorry about this, the plan 9 support
> > is a little unbaked.
> > Part of the issue is ... ptys. Anyway ...
> >
> > I run the rc script:
> > linux
> >
> > # this gets you to a non-interactive shell with no prompt. Sorry.
> > # all the shells stat fd 0, and, if it is not a tty, assume they are
> > non-interactive.
> > # the golang cpu sets up the namespace in /tmp/cpu, not /mnt/term.
> > # Step 1: get device mounted into /tmp/cpu
> > mount --bind /dev /tmp/cpu/dev
> > # Step 2: chroot into the namespace provided by the sidecore command
> > chroot /tmp/cpu bash -i
> > # Step 3: run python3
> > root@(none):/# python3 -c 'print("Hello!")'
> > python3 -c 'print("Hello!")'
> > # What is this stuff? I don't know.
> > 2025/06/13 07:11:38 [ERROR] failing create to indicate lack of support for
> > 'exclusive' mode.
> > 2025/06/13 07:11:38 [ERROR] Error Creating: permission denied
> > 2025/06/13 07:11:38 [ERROR] failing create to indicate lack of support for
> > 'exclusive' mode.
> > 2025/06/13 07:11:38 [ERROR] Error Creating: permission denied
> > 2025/06/13 07:11:38 [ERROR] failing create to indicate lack of support for
> > 'exclusive' mode.
> > 2025/06/13 07:11:38 [ERROR] Error Creating: permission denied
> > # python output
> > Hello!
> >
> > I have a cpio container image that provides python3 and numpy
> >
> > The big picture here: you can have linux programs easily. It should be as
> > easy to run these programs, in a vm, as it is to run any command. You can,
> > e.g.,
> > du -a | linux wc # but why? :-)
> > and have that work.
> >
> > My next step is to finish up the "VMs via libthread" work, then get back
> > to smp guests, but I thought this initial work might be of interested.
> >
> > BTW, the golang root file system I use has been used in google and
> > bytedance firmware for 5+ years, and is load bearing on a few million data
> > center nodes. The golang cpu/cpud is an integral part of google and ARM
> > confidential compute stacks. It's pretty real, and now it's on plan 9 too.
> >
> > *9fans <https://9fans.topicbox.com/latest>* / 9fans / see discussions
> > <https://9fans.topicbox.com/groups/9fans> + participants
> > <https://9fans.topicbox.com/groups/9fans/members> + delivery options
> > <https://9fans.topicbox.com/groups/9fans/subscription> Permalink
> > <https://9fans.topicbox.com/groups/9fans/Td71c087b037b58f9-Mbc862ef48799530a2da39430>
> >

------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Td71c087b037b58f9-M93d3a8c38b9dc77a7ae23532
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to