TOPS-20
Encyclopedia
The TOPS-20 operating system
by Digital Equipment Corporation
(DEC) was the second proprietary OS for the PDP-10
mainframe computer
. TOPS-20 began in 1969 as the TENEX operating system of Bolt, Beranek and Newman (BBN). TOPS-20 is almost entirely unrelated to the similarly named TOPS-10
, but it was shipped with the PA1050 TOPS-10 Monitor Calls emulation facility which allowed most, but not all, TOPS-10 executables to run unchanged. As a matter of policy, DEC did not update PA1050 to support later TOPS-10 additions except where required by DEC software.
TOPS-20 was preferred by most PDP-10 users over TOPS-10 (at least by those who were not ITS
or WAITS
partisans).
was involved in a number of LISP
-based artificial intelligence
projects for DARPA, many of which had very large (for the era) memory requirements. One solution to this problem was to add paging
software to the LISP
language, allowing it to write out unused portions of memory to disk for later recall if needed. One such system had been developed for the PDP-1
at MIT by Daniel Murphy
before he joined BBN. Early DEC
machines were based on an 18-bit
word, allowing addresses to encode for a 262-kword memory. The machines were based on expensive core memory and included nowhere near the required amount. The pager used the otherwise unused bits of the address to store a key into a table of blocks on a magnetic drum that acted as the pager's backing store, and the software would fetch the pages if needed and then re-write the address to point to the proper area of RAM
.
In 1964 DEC announced the PDP-6
. DEC was still heavily involved with MIT's AI Lab, and many feature requests from the LISP hackers were moved into this machine. BBN became interested in buying one for their AI work when they became available, but wanted DEC to add a hardware version of Murphy's pager directly into the system. With such an addition, every program on the system would have paging support invisibly, making it much easier to do any sort of programming on the machine. DEC was initially interested, but soon (1966) announced they were in fact dropping the PDP-6 and concentrating solely on their smaller 18-bit and new 16-bit lines. The PDP-6 was expensive and complex, and had not sold well for these reasons.
It was not long until it became clear that DEC was once again entering the 36-bit business with what would become the PDP-10
. BBN started talks with DEC to get a paging subsystem in the new machine, then known by its CPU name, the KA-10. DEC was not terribly interested. However, one development of these talks was the inclusion of two dual memory areas, allowing all programs to be divided into a protected (exec in DEC-speak) portion and a user portion. Additionally, DEC was firm on keeping the cost of the machine as low as possible, including only 16K words of core and placing register
s in RAM, resulting in a considerable performance decrease.
BBN nevertheless went ahead with its purchase of several PDP-10s, and decided to build their own hardware pager. During this period a debate began on what operating system to run on the new machines. Strong arguments were made for the continued use of TOPS-10, in order to keep their existing software running with minimum effort. This would require a re-write of TOPS to support the paging system, and this seemed like a major problem. At the same time, TOPS did not support a number of features the developers wanted. In the end they decided to make a new system, but include an emulation library that would allow it to run existing TOPS-10 software with minor effort.
The developer team – amongst them Daniel Murphy and Daniel G. Bobrow
– chose the name TENEX (TEN-EXtended) for the new system. It included a full virtual memory
system—that is, not only could programs access a full 262kwords of memory, every program could do so at the same time. The pager system would handle mapping as it would always, copying data to and from the backing store as needed. The only change needed was for the pager to be able to hold several sets of mappings between RAM and store, one for each program using the system. The pager also held access time information in order to tune performance. The resulting pager was fairly complex, filling a full-height 19" rackmount chassis.
One notable feature of TENEX was its user-oriented command line interpreter. Unlike typical systems of the era, TENEX deliberately used long command names and even included noise words to further expand the commands for clarity. For instance, Unix uses
system that would expand partial command words into completed words or phrases. For instance, the user could type
TENEX became fairly popular in the small PDP-10 market, and the external pager hardware developed into a small business of its own. In early 1970 DEC started work on an upgrade to the PDP-10 processor, the KI-10. BBN once again attempted to get DEC to support a full hardware paging system, but instead DEC decided on a much simpler system. This plan eventually backfired; by this point TENEX was one of the most popular PDP-10 operating systems, and it would not run on the new machines. Known as the DECsystem-10 in the marketplace, the normal operating system was TOPS-10.
s to support the newer backing store devices being used.
Just as the new TENEX was shipping, DEC started work on the KL-10, intended to be a low-cost version of the KI-10. While this was going on, Stanford University
AI programmers, many of them MIT alumni, were working on their own project to build a PDP-10 that was ten times faster than the original KA-10. The project evolved into the Foonly
line of computers. DEC visited them and many of their ideas were then folded into the KL-10 project. The same year IBM also announced their own machine with virtual memory, making it a standard requirement for any computer. In the end the KL integrated a number of major changes to the system, but did not end up being any lower in cost. From the start, the new DECSYSTEM-20
would run a version of TENEX as its default operating system.
Extensions for the new machine were limited, but difficult. The main upgrade was the addition of extended addressing, which allowed the machine to support a 23-bit address space. The extra addressing bits were "added" by the pager hardware, which was now implemented in microcode
. The extra bits allowed multiple pages to be mapped into the same physical hardware, which also allowed the system to support a wider range of RAM without it being "obvious". For backward compatibility
, the machine included instructions that could generate 18-bit addresses on demand.
The first in-house code name for the operating system was VIROS (VIRtual memory Operating System); when customers started asking questions, the name was changed to SNARK so that DEC could truthfully deny that there was any project called VIROS. When the name SNARK became known, the name was briefly reversed to become KRANS; this was quickly abandoned when someone objected that "krans" meant "funeral wreath" in Swedish
(though it simply means "wreath"; this part of the story may be apocryphal).
Ultimately DEC picked TOPS-20 as the name of the operating system, and it was as TOPS-20 that it was marketed. The hacker community, mindful of its origins, quickly dubbed it TWENEX (a contraction of "twenty TENEX"), even though by this point very little of the original TENEX code remained (analogously to the differences between AT&T
V7 Unix and BSD). DEC people cringed when they heard "TWENEX", but the term caught on nevertheless (the written abbreviation "20x" was also used).
TWENEX was successful and very popular; in fact, there was a period in the early 1980s when it commanded as fervent a culture of partisans as Unix
or ITS - but DEC's decision to scrap all the internal rivals to the VAX
architecture and its VMS OS killed the DEC-20 and put an end to TWENEX's brief period of popularity. DEC attempted to convince TOPS-20 users to convert to VMS, but instead, by the late 1980s, most of the TOPS-20 hackers had migrated to Unix.
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
by Digital Equipment Corporation
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...
(DEC) was the second proprietary OS for the PDP-10
PDP-10
The PDP-10 was a mainframe computer family manufactured by Digital Equipment Corporation from the late 1960s on; the name stands for "Programmed Data Processor model 10". The first model was delivered in 1966...
mainframe computer
Mainframe computer
Mainframes are powerful computers used primarily by corporate and governmental organizations for critical applications, bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing.The term originally referred to the...
. TOPS-20 began in 1969 as the TENEX operating system of Bolt, Beranek and Newman (BBN). TOPS-20 is almost entirely unrelated to the similarly named TOPS-10
TOPS-10
The TOPS-10 System was a computer operating system from Digital Equipment Corporation for the PDP-10 mainframe computer launched in 1967...
, but it was shipped with the PA1050 TOPS-10 Monitor Calls emulation facility which allowed most, but not all, TOPS-10 executables to run unchanged. As a matter of policy, DEC did not update PA1050 to support later TOPS-10 additions except where required by DEC software.
TOPS-20 was preferred by most PDP-10 users over TOPS-10 (at least by those who were not ITS
Incompatible Timesharing System
ITS, the Incompatible Timesharing System , was an early, revolutionary, and influential time-sharing operating system from MIT; it was developed principally by the Artificial Intelligence Laboratory at MIT, with some help from Project MAC.In addition to being technically influential ITS, the...
or WAITS
WAITS
WAITS was a heavily-modified variant of Digital Equipment Corporation's Monitor operating system for the PDP-6 and PDP-10 mainframe computers, used at the Stanford Artificial Intelligence Laboratory up until 1990; the mainframe computer it ran on also went by the name of "SAIL".There was never an...
partisans).
TENEX
In the 1960s, BBNBBN Technologies
BBN Technologies is a high-technology company which provides research and development services. BBN is based next to Fresh Pond in Cambridge, Massachusetts, USA...
was involved in a number of LISP
Lisp
A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...
-based artificial intelligence
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...
projects for DARPA, many of which had very large (for the era) memory requirements. One solution to this problem was to add paging
Paging
In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called...
software to the LISP
Lisp
A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...
language, allowing it to write out unused portions of memory to disk for later recall if needed. One such system had been developed for the PDP-1
PDP-1
The PDP-1 was the first computer in Digital Equipment Corporation's PDP series and was first produced in 1960. It is famous for being the computer most important in the creation of hacker culture at MIT, BBN and elsewhere...
at MIT by Daniel Murphy
Daniel Murphy (computer scientist)
-Biography:Murphy attended MIT from 1961 and graduated in 1965.In 1962 he created of the text editor Text Editor and Corrector later implemented on most of the PDP computers....
before he joined BBN. Early DEC
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...
machines were based on an 18-bit
18-bit
18 binary digits have unique combinations.-Example 18-bit computer architectures:* Possibly the most well-known 18-bit computer architectures are the PDP-1, PDP-4, PDP-7, PDP-9 and PDP-15 minicomputers produced by Digital Equipment Corporation from 1960 to 1975.* UNIVAC produced a number of...
word, allowing addresses to encode for a 262-kword memory. The machines were based on expensive core memory and included nowhere near the required amount. The pager used the otherwise unused bits of the address to store a key into a table of blocks on a magnetic drum that acted as the pager's backing store, and the software would fetch the pages if needed and then re-write the address to point to the proper area of RAM
Ram
-Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...
.
In 1964 DEC announced the PDP-6
PDP-6
The PDP-6 was a computer model developed by Digital Equipment Corporation in 1963. It was influential primarily as the prototype for the later PDP-10; the instruction sets of the two machines are almost identical.The PDP-6 was DEC's first "big" machine...
. DEC was still heavily involved with MIT's AI Lab, and many feature requests from the LISP hackers were moved into this machine. BBN became interested in buying one for their AI work when they became available, but wanted DEC to add a hardware version of Murphy's pager directly into the system. With such an addition, every program on the system would have paging support invisibly, making it much easier to do any sort of programming on the machine. DEC was initially interested, but soon (1966) announced they were in fact dropping the PDP-6 and concentrating solely on their smaller 18-bit and new 16-bit lines. The PDP-6 was expensive and complex, and had not sold well for these reasons.
It was not long until it became clear that DEC was once again entering the 36-bit business with what would become the PDP-10
PDP-10
The PDP-10 was a mainframe computer family manufactured by Digital Equipment Corporation from the late 1960s on; the name stands for "Programmed Data Processor model 10". The first model was delivered in 1966...
. BBN started talks with DEC to get a paging subsystem in the new machine, then known by its CPU name, the KA-10. DEC was not terribly interested. However, one development of these talks was the inclusion of two dual memory areas, allowing all programs to be divided into a protected (exec in DEC-speak) portion and a user portion. Additionally, DEC was firm on keeping the cost of the machine as low as possible, including only 16K words of core and placing register
Processor register
In computer architecture, a processor register is a small amount of storage available as part of a CPU or other digital processor. Such registers are addressed by mechanisms other than main memory and can be accessed more quickly...
s in RAM, resulting in a considerable performance decrease.
BBN nevertheless went ahead with its purchase of several PDP-10s, and decided to build their own hardware pager. During this period a debate began on what operating system to run on the new machines. Strong arguments were made for the continued use of TOPS-10, in order to keep their existing software running with minimum effort. This would require a re-write of TOPS to support the paging system, and this seemed like a major problem. At the same time, TOPS did not support a number of features the developers wanted. In the end they decided to make a new system, but include an emulation library that would allow it to run existing TOPS-10 software with minor effort.
The developer team – amongst them Daniel Murphy and Daniel G. Bobrow
Daniel G. Bobrow
Daniel Gureasko Bobrow is a Research Fellow in the Intelligent Systems Laboratory of the Palo Alto Research Center, and is amongst other things known for creating an oft-cited artificial intelligence program STUDENT, with which he earned his PhD....
– chose the name TENEX (TEN-EXtended) for the new system. It included a full virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...
system—that is, not only could programs access a full 262kwords of memory, every program could do so at the same time. The pager system would handle mapping as it would always, copying data to and from the backing store as needed. The only change needed was for the pager to be able to hold several sets of mappings between RAM and store, one for each program using the system. The pager also held access time information in order to tune performance. The resulting pager was fairly complex, filling a full-height 19" rackmount chassis.
One notable feature of TENEX was its user-oriented command line interpreter. Unlike typical systems of the era, TENEX deliberately used long command names and even included noise words to further expand the commands for clarity. For instance, Unix uses
ls
to print a list of files in a directory, whereas TENEX used DIRECTORY
(OF
FILES)
. "DIRECTORY" was the command word, "(OF FILES)" was noise added to make the purpose of the command clearer. Users did not want to type these long commands, so TENEX used an escape recognitionCommand line completion
Command line completion is a common feature of command line interpreters, in which the program automatically fills in partially typed commands....
system that would expand partial command words into completed words or phrases. For instance, the user could type
DIR
and the escape key, at which point TENEX would replace DIR
with the full command. The same feature worked with file names, which took some effort on the part of the interpreter, and the system allowed for long file names with human-readable descriptions. TENEX also included a help system that could be invoked by typing the question mark (?
), which would print out a list of possible matching commands and then return the user to the command line with the question mark removed.TENEX became fairly popular in the small PDP-10 market, and the external pager hardware developed into a small business of its own. In early 1970 DEC started work on an upgrade to the PDP-10 processor, the KI-10. BBN once again attempted to get DEC to support a full hardware paging system, but instead DEC decided on a much simpler system. This plan eventually backfired; by this point TENEX was one of the most popular PDP-10 operating systems, and it would not run on the new machines. Known as the DECsystem-10 in the marketplace, the normal operating system was TOPS-10.
TOPS-20
Learning from this mistake, the DEC sales manager in charge of the PDP-10 line managed to purchase the rights to TENEX from BBN and set up a project to port it to the new machine. At around this time Murphy moved from BBN to DEC as well, helping on the porting project. Most of the work centered on emulating the BBN pager hardware in a combination of software and the KI-10's simpler hardware. The speed of the KI-10 compared to the PDP-6 made this possible. Additionally the porting effort required a number of new device driverDevice driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
s to support the newer backing store devices being used.
Just as the new TENEX was shipping, DEC started work on the KL-10, intended to be a low-cost version of the KI-10. While this was going on, Stanford University
Stanford University
The Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is a private research university on an campus located near Palo Alto, California. It is situated in the northwestern Santa Clara Valley on the San Francisco Peninsula, approximately northwest of San...
AI programmers, many of them MIT alumni, were working on their own project to build a PDP-10 that was ten times faster than the original KA-10. The project evolved into the Foonly
Foonly
Foonly was the computer company formed by Dave Poole, who was one of the principal Super Foonly designers as well as one of hackerdom's more colorful personalities....
line of computers. DEC visited them and many of their ideas were then folded into the KL-10 project. The same year IBM also announced their own machine with virtual memory, making it a standard requirement for any computer. In the end the KL integrated a number of major changes to the system, but did not end up being any lower in cost. From the start, the new DECSYSTEM-20
DECSYSTEM-20
The DECSYSTEM-20 was a 36-bit Digital Equipment Corporation PDP-10 mainframe computer running the TOPS-20 operating system.PDP-10 computers running the TOPS-10 operating system were labeled DECsystem-10 as a way of differentiating them from the PDP-11...
would run a version of TENEX as its default operating system.
Extensions for the new machine were limited, but difficult. The main upgrade was the addition of extended addressing, which allowed the machine to support a 23-bit address space. The extra addressing bits were "added" by the pager hardware, which was now implemented in microcode
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...
. The extra bits allowed multiple pages to be mapped into the same physical hardware, which also allowed the system to support a wider range of RAM without it being "obvious". For backward compatibility
Backward compatibility
In the context of telecommunications and computing, a device or technology is said to be backward or downward compatible if it can work with input generated by an older device...
, the machine included instructions that could generate 18-bit addresses on demand.
The first in-house code name for the operating system was VIROS (VIRtual memory Operating System); when customers started asking questions, the name was changed to SNARK so that DEC could truthfully deny that there was any project called VIROS. When the name SNARK became known, the name was briefly reversed to become KRANS; this was quickly abandoned when someone objected that "krans" meant "funeral wreath" in Swedish
Swedish language
Swedish is a North Germanic language, spoken by approximately 10 million people, predominantly in Sweden and parts of Finland, especially along its coast and on the Åland islands. It is largely mutually intelligible with Norwegian and Danish...
(though it simply means "wreath"; this part of the story may be apocryphal).
Ultimately DEC picked TOPS-20 as the name of the operating system, and it was as TOPS-20 that it was marketed. The hacker community, mindful of its origins, quickly dubbed it TWENEX (a contraction of "twenty TENEX"), even though by this point very little of the original TENEX code remained (analogously to the differences between AT&T
AT&T
AT&T Inc. is an American multinational telecommunications corporation headquartered in Whitacre Tower, Dallas, Texas, United States. It is the largest provider of mobile telephony and fixed telephony in the United States, and is also a provider of broadband and subscription television services...
V7 Unix and BSD). DEC people cringed when they heard "TWENEX", but the term caught on nevertheless (the written abbreviation "20x" was also used).
TWENEX was successful and very popular; in fact, there was a period in the early 1980s when it commanded as fervent a culture of partisans as Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
or ITS - but DEC's decision to scrap all the internal rivals to the VAX
VAX
VAX was an instruction set architecture developed by Digital Equipment Corporation in the mid-1970s. A 32-bit complex instruction set computer ISA, it was designed to extend or replace DEC's various Programmed Data Processor ISAs...
architecture and its VMS OS killed the DEC-20 and put an end to TWENEX's brief period of popularity. DEC attempted to convince TOPS-20 users to convert to VMS, but instead, by the late 1980s, most of the TOPS-20 hackers had migrated to Unix.
Sources
- Some text in this article was taken from The Jargon File entry on "TWENEX", which is in the public domain.
Further reading
- Storage Organization and Management in TENEX. Daniel L. Murphy. AFIPS Proceedings, 1972 FJCC.
- Implementation of TENEX on the KI10. Daniel L. Murphy. TENEX Panel Session, NCC 1974.
- Origins and Development of TOPS-20. Daniel L. Murphy, 1989.
External links
- Origins and Development of TOPS-20 is an excellent longer history
- Panda Programming TOPS-20 Home Page maintains a mailing list for TOPS-20 news
- SDF Public Access TWENEX