VSTa (Valencia Simple Tasker) – a copylefted operating system, originally written by Andrew Valencia, which uses ideas from several research operating systems in its implementation. It attempts to be POSIXish except where POSIX gets in the way, and runs on a number of different PC configurations. VSTa is also designed to take advantage of SMP right out of the box.
VSTa is an experimental kernel which attempts to blend the design of a microkernel with the system organization of Plan 9. The result is a small privileged kernel running user-mode tasks to provide system services such as device drivers, filesystems, and name registry. Like Plan 9, each service provides a filesystem-like interface.
While VSTa is not a real-time operating system in itself, numerous features associated with real-time systems offer themselves naturally to solve microkernel design issues. Process memory locking is necessary in order to allow a disk driver task to run as a user process (as otherwise, of course, you will deadlock when your disk driver tries to demand page in a piece of itself from swap.) Non-degrading priorities are necessary to permit critical system services to respond to many users without being penalized for their apparent heavy CPU use. Low-latency process dispatch is necessary to allow interrupt service code to run in a deterministic amount of time after a device event–especially important in the case of heavy data sources like dumb serial ports and LAN interfaces.
VSTa was designed with memory locking and real-time priorities. Except when a spinlock is held, a thread is preemptable even when running in kernel mode. Most spin-locks do not involve interrupt-driven code; for these, interrupts are still accepted and queued even while the spinlock is held–preemption to a real-time process is delayed until the spinlock is released.
VSTa Capabilities are the way by which VSTa defines it’s analagous to POSIX object security. It is a very general system, with a simple design, and high flexibility. A look at how the POSIX system maps into VSTa Capabilities will make it’s operational syntax clear.
The project developer is Andy Valencia.