VSTa
VMWare
Installing VSTa in VMWare's not that hard. Here are some
instructions.
Patches
Here are some patches I have made to my system.
- adb.patch - Add a command for viewing the thread id.
- cons.patch - Set the beep tone when beeping, so it doesnt make irritating noises in VMWare.
- isr.patch - Add a second ISR system call that allows a probe function to be downloaded into the kernel. Used by the lance driver.
- stat.patch - Stat command opens files for reading. I'm not sure what SHOULD be done here. I think at some point the permissions used for rstat and wstat need to be revisited and all the servers and clients in the system checked for consistency.
- vas.patch - When performing a fork() from a thread thats not the main thread, copy the thread's stack while forking.
- vmware-vm.patch - Small patch to a header file so that the VSTa kernel doesnt crash VMWare.
- unlink.patch - patch for unlink() in libc. The implementation didnt handle relative paths properly. Note -- this patch is probably incomplete, and path handling in the entire open.c should probably be reviewed carefully sometime soon.
- make.patch - patch for src/bin/ports/make/make.c to fix a buffer overflow that causes make to crash.
VSTa Programs
This page has my VSTa programs. Its not really a VSTa page, just
a place to put up files for people to grab.
See vsta.org for more info.
pci-lance driver
lance is an ethernet driver for the VSTa
operating system for pci-lance (amd79c970) cards such as the
one in VMWare. So far this driver is tested only in VMWare.
It requires the minifs library.
Minifs
Here's minifs, a small library to make
writing servers easier. The tarball includes an example and some
prose.
This is a work in progress and is subject to change and the documents
aren't complete yet.
lwIP for VSTa
This is an incomplete port of the
lwIP
TCP/IP stack to VSTa. I am not currently working on VSTa
and I may not complete this port.
The port is complete enough
to access the TCP functionality to run simple client and
server programs. There are many known issues in this version:
There appear to be some resource leaks, there are unhandled
errors during some of the shutdown scenerios and there is
still a bit of debugging and documentation left to be done.
(Additionally the minifs package needs to be updated, documented and
relreleased, and lance updated to use the new library).
To build lwIP first grab minifs here
(This is a modified version of minifs, as
the minifs package has not been completely updated and
released yet). Unpack and build minifs.
Next grab lwIP-0.7.2 sources and unpack them.
Grab the vsta sources
here and unpack them into
the lwip-0.7.2/contrib/ports.
In
lwip-0.7.2/contrib/ports/vsta
edit main.c to set the IP address and
run make to build lwip.
The API is similar to plan9's and allows easy access to sockets
through a filesystem interface. For example, look at
sock.sh, which appropriately enough
was used to transfer itself to my linux box.
The telnetd code from the ka9q server works with slight
modification. The code is in the test subdir of
the lwip sources.
Link with -lusr.
The TTY handling code has been augmented to allow vi to run
properly. The emulation is only partial though. Some features
such as intr are not yet supported. The proper fix for this would
be a seperate tty library.
That's all for now.. bye.