Re: How did VSTA start?

From: Andrew Valencia <vandys_at_nospam.org>
Date: Sun Feb 27 1994 - 15:40:31 PST

[john%bilton@bilton.demon.co.uk writes:]

>Just out of interest I was wondering where VSTA started? Which part was
>written first? What is the least part of an operating system you can
>have?

Oh, boy. Here goes my daily message!

First, I will keep all discussion here on the list until the volume grows
large enough to warrant its own list, private E-mail, or whatever. Please
don't feel like you have to unsubscribe just to control the volume of E-mail;
let me know privately and I'll take care of it.

Real-time support: I wanted enough RT support to do com port drivers and
such in user mode. I never really intended to add the RT support needed
to allow implementation of "hard" RT systems, that is a Phalanx system or
other scary thing where you *need* *guarantees* about which parts get
processed how. Of course, VSTa has become more than my own interests; I
opened it up so it can benefit from other people's expertise. If somebody
gives me patches to add better RT support, my only objective would be to
keep the microkernel "micro".

Threads/scheduling: I implemented the kind of thread which my own experience
indicated I would want. The hierarchical scheduler lends itself well to
this organization--threads exist in common below a single node representing
the process. POSIX yield() (or whatever they named it this week) would be
very gratifying to code up!

Distribution: I still don't think I want to put distributed messaging into
the kernel. If a client writes a message to a server:

Client -> Server

I really don't see why we can't implement this as:

        SystemA | System B
Client -> (TCP server -> LAN) -> (LAN -> TCP server) -> Server
                              |

The much more interesting question is what kind of smoke and mirrors are
needed to cause such a connection to come into existence without a lot
of explicit, networking-oriented commands on the part of a client. My
current guess is that the namer process becomes a lot more complex, and
perhaps interacts with the kernel port_name->server mechanism.

VSTa development: I wrote the data structures, and then the messaging
interface. I coded a server (BFS, I think), modifying the messaging
interface as needed to make writing the server reasonable. I then wrote up
some messaging emulation routines, and could then run BFS under DOS with
myself typing in things to make it look like BFS had clients coming in over
VSTa. I wrote the console, keyboard, and then I think I started in on the
kernel. The first thing the kernel ever ran was a single process which put
a * out on the COM1 port. Next was a process writing "Hello, world" to the
console server, which displayed it on the screen. After that was a walking
*'s thing to run the messaging system at full speed.

I hope you all had a pleasant weekend! I spent several hours of it starting
a port of BSD's "ash", as well as putting multi-console support into the
console display server. A couple tweaks to the keyboard driver, and you
should be able to toggle between sessions using ALT-F1 and such. You still
don't get signals, though--we need a REAL server for that, and I'm hoping
MADO will soon be available to do the job.

                                                Andy
Received on Sun Feb 27 16:07:31 1994

This archive was generated by hypermail 2.1.8 : Wed Sep 21 2005 - 21:02:10 PDT