V (operating system)

Last updated
V
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
Default
user interface
VGTS
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.

Contents

Features

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.

Commands

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

<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.

<span class="mw-page-title-main">Plan 9 from Bell Labs</span> Distributed operating system

Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has been free and open-source. The final official release was in early 2015.

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 written as if it were a normal (local) procedure call, without the programmer explicitly writing 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.

DNIX is a discontinued Unix-like real-time operating system from the Swedish company Dataindustrier AB (DIAB). A version named ABCenix was developed for the ABC 1600 computer from Luxor. Daisy Systems also had a system named Daisy DNIX on some of their computer-aided design (CAD) workstations. It was unrelated to DIAB's product.

<span class="mw-page-title-main">QNX</span> Real-time operating system (RTOS) software

QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. QNX was one of the first commercially successful microkernel operating systems.

<span class="mw-page-title-main">Exokernel</span> Operating system kernel developed by the MIT Parallel and Distributed Operating Systems group

Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems.

L4 is a family of second-generation microkernels, used to implement a variety of types of operating systems (OS), though mostly for Unix-like, Portable Operating System Interface (POSIX) compliant types.

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

In computer science, inter-process communication (IPC), also spelled interprocess communication, are the mechanisms provided by an operating system for 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 published in 1985.

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 beginning in 1982. It was an ambitious project for its time and resulted in an unprecedentedly vast and accessible university computing infrastructure. The project was named after Andrew Carnegie and Andrew Mellon, the founders of the institutions that eventually became Carnegie Mellon University.

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.

<span class="mw-page-title-main">Architecture of Windows NT</span> Overview of the architecture of the Microsoft Windows NT line of operating systems

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, it uses packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

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.

<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.

Chorus Systèmes SA was a French software company that existed from 1986 to 1997, that was created to commercialise research work done at the Institut national de recherche en informatique et en automatique (INRIA). Its primary product was the Chorus distributed microkernel operating system, created at a time when microkernel technology was thought to have great promise for the future of operating systems. As such Chorus was in the middle of many strategic partnerships regarding Unix and related systems. The firm was acquired by Sun Microsystems in 1997.

References

  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 on - ACM 81. pp. 46–52. doi:10.1145/800175.809831. ISBN   0-89791-049-4. S2CID   14212831.{{cite book}}: CS1 maint: date and year (link)
  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. Archived from the original (PDF) on August 12, 2017. 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). "VMTP: A transport protocol for the next generation of communication systems". ACM SIGCOMM Computer Communication Review. 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