This is a previous attempt at what became Plan 9 from User Space (aka plan9port)
(see http://swtch.com/plan9port). It was done for Windows, because
I used Windows as my main non-Plan 9 operating system at the time.
It ran a Plan 9 kernel in user space (source in src/9), and for all system
calls the programs interacted with the kernel via RPCs (see
src/libc/Windows/9syscall/syscall.c). This allowed a very faithful
rendition of Plan 9's world, but the cost was that Plan 9 programs
were isolated quite a bit from the rest of the system, and there was
a noticeable mental context switch when moving between Plan 9
programs and regular programs. Also the dependence on the
kernel program meant that if the kernel crashed (and it did), then
all running programs had to be restarted. This got tiresome.
A year later I started over, this time using Linux, and ended up
with plan9port.
This Windows code has mostly historical value, but there
are interesting bits that should be incorporated elsewhere.
The directories src/libwindows and src/libc/Windows are a good
base for adding Windows support to plan9port.
The src/9/port/devdraw.c has a function resizewindow that
I believe could be adapted in the Plan 9 kernels to resize the
screen.
This entire tree can be downloaded from
http://swtch.com/plan9port/9pm-windows-alpha.zip.
Enjoy.
Russ Cox <rsc@swtch.com>