A command-line interface or command language interpreter known as command-line user interface, console user interface and character user interface, is a means of interacting with a computer program where the user issues commands to the program in the form of successive lines of text. A program which handles the interface is called shell; the CLI was the primary means of interaction with most computer systems on computer terminals in the mid-1960s, continued to be used throughout the 1970s and 1980s on OpenVMS, Unix systems and personal computer systems including MS-DOS, CP/M and Apple DOS. The interface is implemented with a command line shell, a program that accepts commands as text input and converts commands into appropriate operating system functions. Today, many end users if use command-line interfaces and instead rely upon graphical user interfaces and menu-driven interactions. However, many software developers, system administrators and advanced users still rely on command-line interfaces to perform tasks more efficiently, configure their machine, or access programs and program features that are not available through a graphical interface.
Alternatives to the command line include, but are not limited to text user interface menus, keyboard shortcuts, various other desktop metaphors centered on the pointer. Examples of this include the Windows versions 1, 2, 3, 3.1, 3.11, DosShell, Mouse Systems PowerPanel. Programs with command-line interfaces are easier to automate via scripting. Command-line interfaces for software other than operating systems include a number of programming languages such as Tcl/Tk, PHP, others, as well as utilities such as the compression utility WinZip, some FTP and SSH/Telnet clients. Compared with a graphical user interface, a command line requires fewer system resources to implement. Since options to commands are given in a few characters in each command line, an experienced user finds the options easier to access. Automation of repetitive tasks is simplified - most operating systems using a command line interface support some mechanism for storing used sequences in a disk file, for re-use. A command-line history can be kept, allowing repetition of commands.
A command-line system may require paper or online manuals for the user's reference, although a "help" option provides a concise review of the options of a command. The command-line environment may not provide the graphical enhancements such as different fonts or extended edit windows found in a GUI, it may be difficult for a new user to become familiar with all the commands and options available, compared with the drop-down menus of a graphical user interface, without repeated reference to manuals. Operating system command line interfaces are distinct programs supplied with the operating system. A program that implements such a text interface is called a command-line interpreter, command processor or shell. Examples of command-line interpreters include DEC's DIGITAL Command Language in OpenVMS and RSX-11, the various Unix shells, CP/M's CCP, DOS's COMMAND. COM, as well as the OS/2 and the Windows CMD. EXE programs, the latter groups being based on DEC's RSX-11 and RSTS CLIs. Under most operating systems, it is possible to replace the default shell program with alternatives.
Although the term'shell' is used to describe a command-line interpreter speaking a'shell' can be any program that constitutes the user-interface, including graphically oriented ones. For example, the default Windows GUI is a shell program named EXPLORER. EXE, as defined in the SHELL=EXPLORER. EXE line in the WIN. INI configuration file; these programs are shells, but not CLIs. Application programs may have command line interfaces. An application program may support none, any, or all of these three major types of command line interface mechanisms: Parameters: Most operating systems support a means to pass additional information to a program when it is launched; when a program is launched from an OS command line shell, additional text provided along with the program name is passed to the launched program. Interactive command line sessions: After launch, a program may provide an operator with an independent means to enter commands in the form of text. OS inter-process communication: Most operating systems support means of inter-process communication.
Command lines from client processes may be redirected to a CLI program by one of these methods. Some applications support only a CLI, presenting a CLI prompt to the user and acting upon command lines as they are entered. Other programs support both a CLI and a GUI. In some cases, a GUI is a wrapper around a separate CLI executable file. In other cases, a program may provide a CLI as an optional alternative to its GUI. CLIs and GUIs support different functionality. For example, all features of MATLAB, a numerical analysis computer program, are available via the CLI, whereas the MATLAB GUI exposes only a subset of features; the early Sierra games, such as the first three King's Quest games, used commands from an internal command line to move the character around in the graphic window. The command-line interface evolved from a form of dialog once conducted by humans over teleprinter machines, in which human operators remotely exchanged inf
Rc is the command line interpreter for Version 10 Unix and Plan 9 from Bell Labs operating systems. It resembles the Bourne shell, but its syntax is somewhat simpler, it was created by Tom Duff, better known for an unusual C programming language construct. A port of the original rc to Unix is part of Plan 9 from User Space. A rewrite of rc for Unix-like operating systems by Byron Rakitzis is available but includes some incompatible changes. Rc uses C-like control structures instead of the original Bourne shell's ALGOL-like structures, except that it uses an if not construct instead of else, has a Bourne-like for loop to iterate over lists. In rc, all variables are lists of strings, which eliminates the need for constructs like "$@". Es is an open source, command line interpreter developed by Rakitzis and Paul Haahr that uses a scripting language syntax influenced by the rc shell, it was based on code from Byron Rakitzis's clone of rc for UnixExtensible shell is intended to provide a functional programming language as a Unix shell.
The bulk of es development occurred in the early 1990s, after the shell was introduced at the Winter 1993 USENIX conference in San Diego, Official releases appear to have ceased after 0.9-beta-1 in 1997, es lacks features as compared to more popular shells, such as zsh and bash. The Bourne shell script: is expressed in rc as: Because if and if not are two different statements, they must be grouped in order to be used in certain situations. Rc supports more dynamic piping: a | b # pipe only standard error of a to b — equivalent to'3>&2 2>&1 >&3 | b' in Bourne shell a <>b # opens b as a's standard input and standard output a < < # becomes a rc - Plan 9 manual page. Plan 9 from User Space - Includes rc and other Plan 9 tools for Linux, Mac OS X and other Unix-like systems. Byron Rakitzis' rewrite for Unix es Official website
Emacs or EMACS is a family of text editors that are characterized by their extensibility. The manual for the most used variant, GNU Emacs, describes it as "the extensible, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, work on its direct descendant, GNU Emacs, continues as of 2019. Emacs has over 10,000 built-in commands and its user interface allows the user to combine these commands into macros to automate work. Implementations of Emacs feature a dialect of the Lisp programming language that provides a deep extension capability, allowing users and developers to write new commands and applications for the editor. Extensions have been written to manage email, outlines, RSS feeds, as well as clones of ELIZA, Conway's Life and Tetris; the original EMACS was written in 1976 by Carl Mikkelsen, David A. Moon and Guy L. Steele Jr. as a set of Editor MACroS for the TECO editor. It was inspired by the ideas of the TECO-macro editors TECMAC and TMACS.
The most popular, most ported, version of Emacs is GNU Emacs, created by Richard Stallman for the GNU Project. XEmacs is a variant that branched from GNU Emacs in 1991. GNU Emacs and XEmacs are for the most part compatible with each other. Emacs is, along with vi, one of the two main contenders in the traditional editor wars of Unix culture. Emacs is among the open source projects still under development. Emacs development began during the 1970s at the MIT AI Lab, whose PDP-6 and PDP-10 computers used the Incompatible Timesharing System operating system that featured a default line editor known as Tape Editor and Corrector. Unlike most modern text editors, TECO used separate modes in which the user would either add text, edit existing text, or display the document. One could not place characters directly into a document by typing them into TECO, but would instead enter a character in the TECO command language telling it to switch to input mode, enter the required characters, during which time the edited text was not displayed on the screen, enter a character to switch the editor back to command mode.
This behavior is similar to that of the program ed. Richard Stallman visited the Stanford AI Lab in 1972 or 1974 and saw the lab's E editor, written by Fred Wright, he was impressed by the editor's intuitive WYSIWYG behavior, which has since become the default behavior of most modern text editors. He returned to MIT where Carl Mikkelsen, a hacker at the AI Lab, had added to TECO a combined display/editing mode called Control-R that allowed the screen display to be updated each time the user entered a keystroke. Stallman reimplemented this mode to run efficiently and added a macro feature to the TECO display-editing mode that allowed the user to redefine any keystroke to run a TECO program. E had another feature: random-access editing. TECO was a page-sequential editor, designed for editing paper tape on the PDP-1 and allowed editing on only one page at a time, in the order of the pages in the file. Instead of adopting E's approach of structuring the file for page-random access on disk, Stallman modified TECO to handle large buffers more efficiently and changed its file-management method to read and write the entire file as a single buffer.
All modern editors use this approach. The new version of TECO became popular at the AI Lab and soon accumulated a large collection of custom macros whose names ended in MAC or MACS, which stood for macro. Two years Guy Steele took on the project of unifying the diverse macros into a single set. Steele and Stallman's finished implementation included facilities for extending and documenting the new macro set; the resulting system was called EMACS, which stood for Editing MACroS or, alternatively, E with MACroS. Stallman picked the name Emacs "because <E> was not in use as an abbreviation on ITS at the time." An apocryphal hacker koan alleges that the program was named after Emack & Bolio's, a popular Cambridge ice cream store. The first operational EMACS system existed in late 1976. Stallman saw a problem in too much customization and de facto forking and set certain conditions for usage, he wrote: "EMACS was distributed on a basis of communal sharing, which means all improvements must be given back to me to be incorporated and distributed."The original Emacs, like TECO, ran only on the PDP-10 running ITS.
Its behavior was sufficiently different from that of TECO that it could be considered a text editor in its own right, it became the standard editing program on ITS. Mike McMahon ported Emacs from ITS to the TOPS-20 operating systems. Other contributors to early versions of Emacs include Kent Pitman, Earl Killian, Eugene Ciccarelli. By 1979, Emacs was the main editor used in its Laboratory for Computer Science. In the following years, programmers wrote a variety of Emacs-like editors for other computer systems; these included EINE and ZWEI, which were written for the Lisp machine by Mike McMahon and Daniel Weinreb, Sine, written by Owen Theodore Anderson. Weinreb's EINE was the first Emacs written in Lisp. In 1978, Bernard Greenberg wrote Multics Emacs entirely in Multics Lisp at Honeywell's Cambridge Information Systems Lab. Multics Emacs was maintained by Richard Soley, who went on to develop the NILE Emacs-like editor for the NIL Project, by Barry Margolin. Many versions of Emacs, including GNU Emacs, would adopt Lisp as an extension language.
James Gosling, who would invent Ne
Digital Equipment Corporation
Digital Equipment Corporation, using the trademark Digital, was a major American company in the computer industry from the 1950s to the 1990s. DEC was a leading vendor of computer systems, including computers and peripherals, their PDP and successor VAX products were the most successful of all minicomputers in terms of sales. DEC was acquired in June 1998 by Compaq, in what was at that time the largest merger in the history of the computer industry. At the time, Compaq was focused on the enterprise market and had purchased several other large vendors. DEC was a major player overseas. However, Compaq had little idea what to do with its acquisitions, soon found itself in financial difficulty of its own; the company subsequently merged with Hewlett-Packard in May 2002. As of 2007, PDP-11, VAX, AlphaServer systems were still produced under the HP name. From 1957 until 1992, DEC's headquarters were located in a former wool mill in Maynard, Massachusetts. DEC was acquired in June 1998 by Compaq, which subsequently merged with Hewlett-Packard in May 2002.
Some parts of DEC, notably the compiler business and the Hudson, Massachusetts facility, were sold to Intel. Focusing on the small end of the computer market allowed DEC to grow without its potential competitors making serious efforts to compete with them, their PDP series of machines became popular in the 1960s the PDP-8 considered to be the first successful minicomputer. Looking to simplify and update their line, DEC replaced most of their smaller machines with the PDP-11 in 1970 selling over 600,000 units and cementing DEC's position in the industry. Designed as a follow-on to the PDP-11, DEC's VAX-11 series was the first used 32-bit minicomputer, sometimes referred to as "superminis"; these systems were able to compete in many roles with larger mainframe computers, such as the IBM System/370. The VAX was a best-seller, with over 400,000 sold, its sales through the 1980s propelled the company into the second largest computer company in the industry. At its peak, DEC was the second largest employer in Massachusetts, second only to the Massachusetts State Government.
The rapid rise of the business microcomputer in the late 1980s, the introduction of powerful 32-bit systems in the 1990s eroded the value of DEC's systems. DEC's last major attempt to find a space in the changing market was the DEC Alpha 64-bit RISC instruction set architecture. DEC started work on Alpha as a way to re-implement their VAX series, but employed it in a range of high-performance workstations. Although the Alpha processor family met both of these goals, for most of its lifetime, was the fastest processor family on the market high asking prices were outsold by lower priced x86 chips from Intel and clones such as AMD. DEC was acquired in June 1998 by Compaq, in what was at that time the largest merger in the history of the computer industry. At the time, Compaq was focused on the enterprise market and had purchased several other large vendors. DEC was a major player overseas. However, Compaq had little idea what to do with its acquisitions, soon found itself in financial difficulty of its own.
The company subsequently merged with Hewlett-Packard in May 2002. As of 2007, some of DEC's product lines were still produced under the HP name. Beyond DECsystem-10/20, PDP, VAX and Alpha, DEC was well respected for its communication subsystem designs, such as Ethernet, DNA, DSA, its "dumb terminal" subsystems including VT100 and DECserver products. DEC's Research Laboratories conducted DEC's corporate research; some of them are still operated by Hewlett-Packard. The laboratories were: Western Research Laboratory in Palo Alto, California, US Systems Research Center in Palo Alto, California, US Network Systems Laboratory in Palo Alto, California, US Cambridge Research Laboratory in Cambridge, Massachusetts, US Paris Research Laboratory in Paris, France MetroWest Technology Campus in Maynard, Massachusetts, USSome of the former employees of DEC's Research Labs or DEC's R&D in general include: Gordon Bell: technical visionary, VP Engineering 1972–83. DEC supported the ANSI standards the ASCII character set, which survives in Unicode and the ISO 8859 character set family.
DEC's own Multinational Character Set had a large influence on ISO 8859-1 and, by extension, Unicode. The first versions of the C language and the Unix operating system ran on DEC's PDP series of computers, which were among the first commercially viable minicomputers, although for several years DEC itself did not encourage the use of Unix. DEC produced used and influential interactive ope
DOS is a family of disk operating systems, hence the name. DOS consists of MS-DOS and a rebranded version under the name IBM PC DOS, both of which were introduced in 1981. Other compatible systems from other manufacturers include DR-DOS, ROM-DOS, PTS-DOS, FreeDOS. MS-DOS dominated the x86-based IBM PC compatible market between 1981 and 1995. Dozens of other operating systems use the acronym "DOS", including the mainframe DOS/360 from 1966. Others are Apple DOS, Apple ProDOS, Atari DOS, Commodore DOS, TRSDOS, AmigaDOS. Fictional operating systems have used this acronym as well, such as GLaDOS from the video game Portal. IBM PC DOS and its predecessor, 86-DOS, resembled Digital Research's CP/M—the dominant disk operating system for 8-bit Intel 8080 and Zilog Z80 microcomputers—but instead ran on Intel 8086 16-bit processors; when IBM introduced the IBM PC, built with the Intel 8088 microprocessor, they needed an operating system. Seeking an 8088-compatible build of CP/M, IBM approached Microsoft CEO Bill Gates.
IBM was sent to Digital Research, a meeting was set up. However, the initial negotiations for the use of CP/M broke down. Digital Research founder Gary Kildall refused, IBM withdrew. IBM again approached Bill Gates. Gates in turn approached Seattle Computer Products. There, programmer Tim Paterson had developed a variant of CP/M-80, intended as an internal product for testing SCP's new 16-bit Intel 8086 CPU card for the S-100 bus; the system was named QDOS, before being made commercially available as 86-DOS. Microsoft purchased 86-DOS for $50,000; this became Microsoft Disk Operating System, MS-DOS, introduced in 1981. Within a year Microsoft licensed MS-DOS to over 70 other companies, which supplied the operating system for their own hardware, sometimes under their own names. Microsoft required the use of the MS-DOS name, with the exception of the IBM variant. IBM continued to develop their version, PC DOS, for the IBM PC. Digital Research became aware that an operating system similar to CP/M was being sold by IBM, threatened legal action.
IBM responded by offering an agreement: they would give PC consumers a choice of PC DOS or CP/M-86, Kildall's 8086 version. Side-by-side, CP/M cost $200 more than PC DOS, sales were low. CP/M faded, with MS-DOS and PC DOS becoming the marketed operating system for PCs and PC compatibles. Microsoft sold MS-DOS only to original equipment manufacturers. One major reason for this was. DOS was structured such that there was a separation between the system specific device driver code and the DOS kernel. Microsoft provided an OEM Adaptation Kit which allowed OEMs to customize the device driver code to their particular system. By the early 1990s, most PCs adhered to IBM PC standards so Microsoft began selling MS-DOS in retail with MS-DOS 5.0. In the mid-1980s Microsoft developed a multitasking version of DOS; this version of DOS is referred to as "European MS-DOS 4" because it was developed for ICL and licensed to several European companies. This version of DOS supports preemptive multitasking, shared memory, device helper services and New Executable format executables.
None of these features were used in versions of DOS, but they were used to form the basis of the OS/2 1.0 kernel. This version of DOS is distinct from the released PC DOS 4.0, developed by IBM and based upon DOS 3.3. Digital Research attempted to regain the market lost from CP/M-86 with Concurrent DOS, FlexOS and DOS Plus with Multiuser DOS and DR DOS. Digital Research was bought by Novell, DR DOS became Novell DOS 7. Gordon Letwin wrote in 1995 that "DOS was, when we first wrote it, a one-time throw-away product intended to keep IBM happy so that they'd buy our languages". Microsoft expected; the company planned to over time improve MS-DOS so it would be indistinguishable from single-user Xenix, or XEDOS, which would run on the Motorola 68000, Zilog Z-8000, LSI-11. IBM, did not want to replace DOS. After AT&T began selling Unix, Microsoft and IBM began developing OS/2 as an alternative; the two companies had a series of disagreements over two successor operating systems to DOS, OS/2 and Windows.
They split development of their DOS systems as a result. The last retail version of MS-DOS was MS-DOS 6.22. The last retail version of PC DOS was PC DOS 2000, though IBM did develop PC DOS 7.10 for OEMs and internal use. The FreeDOS project began on 26 June 1994, when Microsoft announced it would no longer sell or support MS-DOS. Jim Hall posted a manifesto proposing the development of an open-source replacement. Within a few weeks, other programmers including Pat Villani and Tim Norman joined the project. A kernel, the COMMAND. COM command line interpreter, core utilities were created by pooling code they had wri
SYmbiosis Multitasking Based Operating System is a multitasking operating system for Zilog Z80-based 8-bit computer systems. Contrary to early 8-bit operating systems it is based on a microkernel, which provides preemptive and priority-oriented multitasking and manages random-access memory with a size of up to 1024 KB. SymbOS contains a Microsoft Windows like graphical user interface, supports hard disks with a capacity of up to 128 GB and can be booted on an unexpanded Amstrad CPC-6128, a 128K-MSX2 and an Amstrad PCW; as of August 30th 2017 it is available for the Amstrad CPC series of computers, all MSX models starting from the MSX2 standard, MSX with V9990 graphics chip, all Amstrad PCW models, CPC-TREX, C-ONE and the Enterprise 64/128 computers. SymbOS was started as an experiment to find out to what extent it is possible to implement a multitasking operating system with a windowed GUI on an 8-bit computer from 1985. GEOS contributed to the motivation, but the structure and features of SymbOS aren't similar to that system.
The release in 2006 proved that such a "mini windows" system is possible on a 20-year-old home computer with only quantitative limitations. SymbOS is one of the largest retro computing software projects of recent years. One of the goals of the project is to allow these old machines to be used like a modern PC, using hardware extensions. Although only an 8-bit CPU, the Z80 can run a preemptive multitasking operating system. Features such as memory protection, which the Z80 lacks, are not essential in such an OS. For example, AmigaOS lacks memory protection; the MP/M OS proved. Yet, it was unavailable for home computers. While the MOS Technology 6502 cannot move the stack pointer, the Z80 can relocate it to any position in memory, which makes it easier to implement preemptive multitasking; the existence of an alternative register set accelerates context switching between tasks dramatically. The restriction of Z80 system to a 64 KB address space can be solved with bank switching. In this way, computers like the Amstrad CPC and PCW, MSX, Enterprise or SAM Coupé can access hundreds or thousands of kilobytes of memory.
SymbOS includes a microkernel, which can perform task management, memory management and inter-process communication. For task management, a combination of preemptive and cooperative multitasking was chosen, which makes different task priorities possible. Preemptive means that tasks are interrupted after a certain amount of time by the operating system, in order to share the CPU time with other tasks. Cooperatively means, it does that, if it's waiting for a certain event. Because of this combination it is possible to assign priorities. Tasks with low priority get CPU time only if all tasks with higher priorities are not working. Memory management divides the entire RAM into small 256 byte blocks, which can be assigned dynamically. Applications are always running in a secondary 64 KB RAM bank, where no memory space is occupied by the operating system or the video memory; that makes it possible to reserve up to 63 KB in one piece. Banking management ensures that the system can administer memory with a size of up to one megabyte though the Z80 CPU has only a 16-bit address bus.
It makes transparent access to memory and functions placed in other 64 KB banks possible. Communication between different tasks and the operating system does not take place via calls, but is done via messages; this is necessary inside a multitasking environment to avoid organization problems with the stack, global variables and shared system resources. The SymbOS kernel supports synchronous and asynchronous IPC. SymbOS supports the file systems CP/M, AMSDOS, File Allocation Table 12-16-32, on all platforms. With the last one, SymbOS can address mass storage devices with a capacity of up to 128 GB; the ability to administer files with a size of up to 2 GB is uncommon for an 8-bit system. Because of the FAT support data exchange with other computers is quite easy, as most 32 and 64 bit operating systems do support the three FAT file systems; the graphical user interface of SymbOS works in a object-oriented manner. The look and feel mimics that of Microsoft Windows, it contains the well-known task bar with the clock and the "start" menu and can open up to 32 windows that can be moved and scrolled.
The whole system is written in optimized assembly language, meaning that the GUI runs as fast as the host machine supports. Content of a window is defined with "controls" that are primitive GUI elements such as sliders, check boxes, text lines, buttons or graphics; the background or invisible areas of a window don't need to be saved in a separate bitmap buffer. If an area needs to be restored on the display, its contents will be redrawn instead; this makes SymbOS GUI much more memory-friendly compared to most other 8-bit GUIs. There are several standard applications available for SymbOS, which most resemble their well-known Windows and Mac OS counterparts. Examples include SymCommander, SymShell, SymZilla, SymPlay, SymAmp and Minesweeper; the following list of commands is supported by SymShell. SymbOS was developed for the Amstrad CPC, its modular structure, with strict separation of general and hardware components, makes porting to other Z80-based systems comparatively easy. The MSX computers starting with the MSX2 standard have been supported since summer 2006.
The Amstrad PCW port has been available since August 2007. Versions for the Enterprise 128, the SAM Coupé and such clones of ZXSpectrum as ATM-turbo 2+ and ZX-Evolution/BaseConf are possible, too, as
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system, originating in the Computing Sciences Research Center at Bell Labs in the mid-1980s, building on UNIX concepts first developed there in the late 1960s. The final official release was in early 2015. Under Plan 9, UNIX's "everything is a file" metaphor was to be extended via a pervasive network-centric filesystem, graphical user interface assumed as a basis for all functionality, though retaining a text-centric ideology; the name Plan 9 from Bell Labs is a reference to the Ed Wood 1959 cult science fiction Z-movie Plan 9 from Outer Space. Glenda, the Plan 9 Bunny, is a reference to Wood's film Glen or Glenda; the system hobbyists. Plan 9 from Bell Labs was developed, starting mid-1980s, by members of the Computing Science Research Center at Bell Labs, the same group that developed Unix and C; the Plan 9 team was led by Rob Pike, Ken Thompson, Dave Presotto and Phil Winterbottom, with support from Dennis Ritchie as head of the Computing Techniques Research Department.
Over the years, many notable developers have contributed to the project including Brian Kernighan, Tom Duff, Doug McIlroy, Bjarne Stroustrup and Bruce Ellis. Plan 9 replaced Unix as Bell Labs's primary platform for operating systems research, it explored several changes to the original Unix model that facilitate the use and programming of the system, notably in distributed multi-user environments. After several years of development and internal use, Bell Labs shipped the operating system to universities in 1992. Three years in 1995, Plan 9 was made available for commercial parties by AT&T via the book publisher Harcourt Brace. With source licenses costing $350, AT&T targeted the embedded systems market rather than the computer market at large. By early 1996, the Plan 9 project had been "put on the back burner" by AT&T in favor of Inferno, intended to be a rival to Sun Microsystems' Java platform. In the late 1990s, Bell Labs' new owner Lucent Technologies dropped commercial support for the project and in 2000, a third release was distributed under an open-source license.
A fourth release under a new free software license occurred in 2002. A user and development community, including current and former Bell Labs personnel, produced minor daily releases in form of ISO images. Bell Labs hosted the development; the development source tree is accessible over the 9P and HTTP protocols and is used to update existing installations. In addition to the official components of the OS included in the ISOs, Bell Labs hosts a repository of externally developed applications and tools; as Bell Labs has moved on to projects in recent years, development of the official Plan 9 system has stopped. Unofficial development for the system continues on the 9front fork, where active contributors provide monthly builds and new functionality. So far, the 9front fork has provided the system Wi-Fi drivers, Audio drivers, USB support and built-in game emulator, along with other features. Other recent Plan 9 inspired operating systems include Harvey OS and Jehanne OS. Plan 9 is a distributed operating system, designed to make a network of heterogeneous and geographically separated computers function as a single system.
In a typical Plan 9 installation, users work at terminals running the window system rio, they access CPU servers which handle computation-intensive processes. Permanent data storage is provided by additional network hosts acting as file servers and archival storage, its designers state that, he foundations of the system are built on two ideas: a per-process name space and a simple message-oriented file system protocol. The first idea means that, unlike on most operating systems, processes each have their own view of the namespace, corresponding to what other operating systems call the file system; the potential complexity of this setup is controlled by a set of conventional locations for common resources. The second idea means that processes can offer their services to other processes by providing virtual files that appear in the other processes' namespace; the client process's input/output on such a file becomes inter-process communication between the two processes. This way, Plan 9 generalizes the Unix notion of the filesystem as the central point of access to computing resources.
It carries over Unix's idea of device files to provide access to peripheral devices and the possibility to mount filesystems residing on physically distinct filesystems into a hierarchical namespace, but adds the possibility to mount a connection to a server program that speaks a standardized protocol and treat its services as part of the namespace. For example, the original window system, called 8 1/2, exploited these possibilities. Plan 9 represents the user interface on a terminal by means of three pseudo-files: mouse, which can be read by a program to get notification of mouse movements and button clicks, which can be used to perform textual input/output, bitblt, writing to which enacts graphics operations; the window system multiplexes these devices: when creating a new window to run some program in, it first sets up a new namespace in which mouse and bitblt are connected to itself, hiding the actual device files to which it itself has access. The window system thus receives all input and output commands from the program and handles these appropriately, by sending output to the actual screen device and giving the focused program the