V (operating system)

Last updated
Developer David Cheriton
Written in C
OS family Distributed operating system
Working stateDiscontinued
Initial release1981;42 years ago (1981)
Latest release Final / 1988;35 years ago (1988)
Marketing targetResearch
Available in English
Update methodCompile from source code
Platforms Workstations:
SUN, MicroVAX, DEC Firefly
Kernel type Microkernel
user interface
License Stanford University
Preceded by Thoth, Verex

The V operating system (sometimes written V-System) is a discontinued microkernel distributed 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. [1] V was the successor to the Thoth operating system and Verex kernel that Cheriton had developed in the 1970s. [2] [3] Despite 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. [4] 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. [5] [6] 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. [1] [7]

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. [8] 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. [9] V also spawned another pure microkernel effort at Apple Computer known as Vanguard, which added a number of improvements to the basic system. [10] 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.


The following is a list of workstation commands that are supported by the V operating system version 6.0 command-line interface. [11]

Related Research Articles

The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the network using a client–server architecture.

An Internet Protocol address is a numerical label such as that is connected to a computer network that uses the Internet Protocol for communication. An IP address serves two main functions: network interface identification and location addressing.

Kerberos is a computer-network authentication protocol that works on the basis of tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Its designers aimed it primarily at a client–server model, and it provides mutual authentication—both the user and the server verify each other's identity. Kerberos protocol messages are protected against eavesdropping and replay attacks.

<span class="mw-page-title-main">Microkernel</span> Kernel that provides fewer services than a traditional kernel

In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, thread management, and inter-process communication (IPC).

Mach is a kernel developed at Carnegie Mellon University by Richard Rashid and Avie Tevanian to support operating system research, primarily distributed and parallel computing. Mach is often considered one of the earliest examples of a microkernel. However, not all versions of Mach are microkernels. Mach's derivatives are the basis of the operating system kernel in GNU Hurd and of Apple's XNU kernel used in macOS, iOS, iPadOS, tvOS, and watchOS.

In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space, which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction. That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote. This is a form of client–server interaction, typically implemented via a request–response message-passing system. In the object-oriented programming paradigm, RPCs are represented by remote method invocation (RMI). The RPC model implies a level of location transparency, namely that calling procedures are largely the same whether they are local or remote, but usually, they are not identical, so local calls can be distinguished from remote calls. Remote calls are usually orders of magnitude slower and less reliable than local calls, so distinguishing them is important.

<span class="mw-page-title-main">Web server</span> Computer software that distributes web pages

A web server is computer software and underlying hardware that accepts requests via HTTP or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiates communication by making a request for a web page or other resource using HTTP, and the server responds with the content of that resource or an error message. A web server can also accept and store resources sent from the user agent if configured to do so.

Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call system. NFS is an open IETF standard defined in a Request for Comments (RFC), allowing anyone to implement the protocol.

<span class="mw-page-title-main">Inter-process communication</span> How computer operating systems enable data sharing

In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing.

The Bootstrap Protocol (BOOTP) is a computer networking protocol used in Internet Protocol networks to automatically assign an IP address to network devices from a configuration server. The BOOTP was originally defined in RFC 951.

Zero-configuration networking (zeroconf) is a set of technologies that automatically creates a usable computer network based on the Internet Protocol Suite (TCP/IP) when computers or network peripherals are interconnected. It does not require manual operator intervention or special configuration servers. Without zeroconf, a network administrator must set up network services, such as Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS), or configure each computer's network settings manually.

Amoeba is a distributed operating system developed by Andrew S. Tanenbaum and others at the Vrije Universiteit Amsterdam. The aim of the Amoeba project was to build a timesharing system that makes an entire network of computers appear to the user as a single machine. Development at the Vrije Universiteit was stopped: the source code of the latest version (5.3) was last modified on 30 July 1996.

The Andrew Project was a distributed computing environment developed at Carnegie Mellon University (CMU) beginning in 1982. It was an ambitious project for its time and resulted in an unprecedentedly vast and accessible university computing infrastructure.

Helios is a discontinued Unix-like operating system for parallel computers. It was developed and published by Perihelion Software. Its primary architecture is the Inmos Transputer. Helios' microkernel implements a distributed namespace and messaging protocol, through which services are accessed. A POSIX compatibility library enables the use of Unix application software, and the system provides most of the usual Unix utilities.

In computer science, message passing is a technique for invoking behavior on a computer. The invoking program sends a message to a process and relies on that process and its supporting infrastructure to then select and run some appropriate code. Message passing differs from conventional programming where a process, subroutine, or function is directly invoked by name. Message passing is key to some models of concurrency and object-oriented programming.

Vanguard is a discontinued experimental microkernel developed at Apple Computer, in the research-oriented Apple Advanced Technology Group (ATG) in the early 1990s. Based on the V-System, Vanguard introduced standardized object identifiers and a unique message chaining system for improved performance. Vanguard was not used in any of Apple's commercial products. Development ended in 1993 when Ross Finlayson, the project's main investigator, left Apple.

The RC 4000 Multiprogramming System is a discontinued operating system developed for the RC 4000 minicomputer in 1969. For clarity, this article mostly uses the term Monitor.

Multicast Listener Discovery (MLD) is a component of the Internet Protocol Version 6 (IPv6) suite. MLD is used by IPv6 routers for discovering multicast listeners on a directly attached link, much like Internet Group Management Protocol (IGMP) is used in IPv4. The protocol is embedded in ICMPv6 instead of using a separate protocol. MLDv1 is similar to IGMPv2 and MLDv2 similar to IGMPv3.

<span class="mw-page-title-main">Kernel (operating system)</span> Core of a computer operating system

The kernel is a computer program at the core of a computer's operating system and generally has complete control over everything in the system. It is the portion of the operating system code that is always resident in memory and facilitates interactions between hardware and software components. A full kernel controls all hardware resources via device drivers, arbitrates conflicts between processes concerning such resources, and optimizes the utilization of common resources e.g. CPU & cache usage, file systems, and network sockets. On most systems, the kernel is one of the first programs loaded on startup. It handles the rest of startup as well as memory, peripherals, and input/output (I/O) requests from software, translating them into data-processing instructions for the central processing unit.

Thoth is a real-time, message passing operating system (OS) developed at the University of Waterloo in Waterloo, Ontario Canada.


  1. 1 2 "Past Research in the DSG". Distributed Systems Group. 20 July 1995. Archived from the original on 27 July 2012. Retrieved 14 September 2020.
  2. Cheriton, David R. (1982). The Thoth system: multi-process structuring and portability. North-Holland. ISBN   0-444-00701-6.
  3. 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.
  4. 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
  5. Cheriton, David R. (February 1988). "Versatile Message Transaction Protocol". RFC 1045 . doi:10.17487/RFC1045 . Retrieved June 25, 2011.
  6. 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.
  7. Deering, Steve (August 1989). "Host Extensions for IP Multicasting". RFC 1112 . doi:10.17487/RFC1112 . Retrieved September 4, 2013.
  8. Nowicki, William I. (March 1985). Partitioning of Function in a Distributed Graphics System (PDF). Stanford University. Technical Report CSL-85-282
  9. Hahn, Harley (1995). The Unix Companion. Osborne McGraw-Hill. p. 45. ISBN   0-07-882149-5.
  10. 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: 3.
  11. V-System 6.0 Reference Manual