- TOPS-20
Infobox_OS
name = TOPS-20
logo =
caption =
developer =Digital Equipment Corporation
source_model = ?
kernel_type = ?
supported_platforms =PDP-10
ui =Command line interface
family = DEC OS family
latest_release_version = ?
latest_release_date = ?
marketing_target = ?
language = Assembler, BLISS,FORTRAN , BASIC-20, et al
updatemodel = ?
package_manager = ?
working_state = Discontinued
license = Proprietary
website =The TOPS-20operating system byDigital Equipment Corporation (DEC) was the second proprietary OS for thePDP-10 . It was preferred by most PDP-10 users over TOPS-10 (at least by those who were not ITS orWAITS partisans). TOPS-20 began in1969 asBolt, Beranek and Newman 's TENEX operating system, using special paging hardware. The system is almost entirely unrelated to the similarly-namedTOPS-10 but 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.TENEX
In the
1960s BBN was involved in a number ofLISP -basedartificial intelligence projects forDARPA , many of which had very large (for the era) memory requirements. One solution to this problem was to add "paging " software to theLISP language, allowing it to write out unused portions of memory to disk for later recall if needed. One such system had been developed for thePDP-1 atMIT by Daniel Murphy before he joined BBN. Early DEC machines were based on an18-bit word, allowing addresses to encode for a 262kword memory. The machines were based on expensivecore 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 amagnetic 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 ofRAM .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 wasn't long until it became clear that DEC was once again entering the
36-bit business with what would become thePDP-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 registers 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 new system, soon known as TENEX, also 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 usesls
to print a list of files in a directory, whereas TENEX usedDIRECTORY
(OF
FILES)
. "DIRECTORY" was the command word, "(OF FILES)" was noise added to make the purpose of the command clearer. Of course users didn't want to type these long commands, so TENEX used an "escape recognition" system that would expand partial command words into completed words or phrases. For instance, the user could typeDIR
and the escape key, at which point TENEX would replaceDIR
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, which did not include any sort of virtual memory system.
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 driver 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's. 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 newDECSYSTEM-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". Forbackward 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 "" 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 andBSD ). 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 asUnix or ITS - but DEC's decision to scrap all the internal rivals to theVAX 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 late1980s , most of the TOPS-20 hackers had migrated to Unix.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.ource
* Some text in this article was taken from The Jargon File entry on " [http://catb.org/~esr/jargon/html/T/TWENEX.html TWENEX] ", which is in the .
References
* Daniel G. Bobrow, Jerry D. Burchfiel, Daniel L. Murphy, Raymond S. Tomlinson, " [http://www.linique.com/dlm/tenex/tenex72.txt TENEX, A Paged Time Sharing System for the PDP-10] " ("Communications of the ACM", Vol. 15, pp. 135-143, March 1972)
External links
* [http://tenex.opost.com/hbook.html Origins and Development of TOPS-20] is an excellent longer history
* [http://panda.com/tops-20/ Panda Programming TOPS-20 Home Page] maintains a mailing list for TOPS-20 news
* [http://www.twenex.org/ SDF Public Access TWENEX]
Wikimedia Foundation. 2010.