*** Welcome to piglix ***

V (operating system)

V
Developer David Cheriton
Written in C
Working state Historic
Kernel type Microkernel
Default user interface VGTS
License Stanford University

The V operating system (sometimes written V-System) is a discontinued microkernel operating system that was developed by faculty and students in the distributed systems group at Stanford University from 1981 to 1988, led by Professors David Cheriton and Keith A. Lantz. V was the successor to the Thoth and Verex operating systems that Cheriton had developed in the 1970s. Despite very similar names and close development dates, it is not related to the UNIX System V.

The key concepts in V are multithreading and synchronous message passing. The original V terminology uses "process" for what is now commonly called a "thread", and "team" for what is now commonly called a "process" consisting of multiple threads sharing an address space. Communication between threads in V uses synchronous message passing, with short, fixed-length messages that can include access rights for the receiver to read or write part of the sender's address space before replying. The same message-passing interface is used both between threads within one process, between threads of different processes within one machine, and between threads on different machines connected by a local Ethernet. A thread receiving a message is not required to reply to it before receiving other messages; this distinguished the model from Ada rendezvous.

One common pattern for using the messaging facility is for clients to send messages to a server requesting some form of service. From the client side, this looks much like RPC (remote procedure call). The convenience of an automatic stub generator was lacking, but on the other hand, the client can pass one parameter by reference, which is not possible with other RPC implementations. From the server side the model differs more from RPC, since by default all client requests are multiplexed onto one server thread. The server is free to explicitly fork threads to handle client requests in parallel, however; if this is done, the server-side model is much like RPC too.


...
Wikipedia

...