V (operating system)
|Latest release||Final / 1988|
|Default user interface||VGTS|
|Preceded by||Thoth, Verex|
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 unrelated to 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 a remote procedure call (RPC). The convenience of an automatic stub generator was lacking, but in contrast, 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.
V was never an end in itself for the Stanford group; rather, it was used as a vehicle for many different research projects in distributed operating systems and networking. Much like other operating system efforts of its day (such as Sprite), V was a complete system that was mostly self hosting. Many students ran V as the only operating system on their diskless SUN workstations or MicroVAX workstations. Compiles could be done either on V, or on VAX Unix machines that provided file service in a more stable environment than the ever-changing research system.
V did have some notable impacts. After the initial implementation on one computer, the Versatile Message Transaction Protocol (VMTP) was developed to extend the send-receive-reply system call semantics over a local area network. The protocol included multicast support developed by Steve Deering as a graduate student in the group. The Internet Protocol layer to support this evolved into the IP multicast standard.
The V system was used for graphical user interface (GUI) research. The Virtual Graphics Terminal Service (VGTS) provided a modular windowing system for both local and remote applications. The little-known W Window System got its name because it was first hosted on the V operating system, and the better-known X Window System in turn got its name because its first version was based partly on W. V also spawned another pure microkernel effort at Apple Computer known as Vanguard, which added a number of improvements to the basic system. Vanguard later disappeared in a reorganization. The Tektronix VM700 television measurement instrument was developed in a networked V environment in the late 1980s and ran a lightly modified version of the V operating system; this device was manufactured and sold for many years.
- "Past Research in the DSG". Distributed Systems Group. 20 July 1995. Archived from the original on 27 July 2012. Retrieved 14 September 2020.
- Cheriton, David R. (1982). The Thoth system: multi-process structuring and portability. North-Holland. ISBN 0-444-00701-6.
- Cheriton, David R. (1981). "The design of a distributed kernel". Proceedings of the ACM '81 Conference: 46–52. doi:10.1145/800175.809831. ISBN 0-89791-049-4. S2CID 14212831.
- Cheriton, David R. (March 1988). "The V Distributed System" (PDF). Communications of the ACM. 31 (3): 314–333. doi:10.1145/42392.42400. S2CID 7523994. Retrieved June 25, 2011. Reprinted in Innovations in Internetworking ISBN 0-89006-337-0
- Cheriton, David R. (February 1988). "Versatile Message Transaction Protocol". RFC 1045. Retrieved June 25, 2011.
- Cheriton, David R. (1986). "The VMTP: a transport protocol for the next generation of communication systems". Proceedings of the ACM SIGCOMM Conference on Communications Architectures & Protocols. 16 (3): 406–415. doi:10.1145/1013812.18217. ISBN 0-89791-201-2.
- Deering, Steve (August 1989). "Host Extensions for IP Multicasting". RFC 1112. Retrieved September 4, 2013.
- Nowicki, William I. (March 1985). Partitioning of Function in a Distributed Graphics System (PDF). Stanford University. Technical Report CSL-85-282
- Hahn, Harley (1995). The Unix Companion. Osborne McGraw-Hill. p. 45. ISBN 0-07-882149-5.
- Finlayson, Ross S.; Hennecke, Mark D.; Goldberg, Steven L. (1993). "From V to Vanguard: the evolution of a distributed, object-oriented microkernel interface". USENIX Symposium on Microkernels and Other Kernel Architectures.
- V-System 6.0 Reference Manual
- V system documentation at Bitsavers.org