The Dartmouth Time-Sharing System (DTSS) is a discontinued operating system first developed at Dartmouth College between 1963 and 1964. It was the first successful large-scale time-sharing system to be implemented, and was also the system for which the BASIC language was developed. DTSS was developed continually over the next decade, reimplemented on several generations of computers, and finally shut down in 1999.
General Electric developed a similar system based on an interim version of DTSS, which they referred to as Mark II. Mark II and the further developed Mark III were widely used on their GE-600 series mainframe computers and formed the basis for their online services. These were the largest such services in the world for a time, eventually emerging as the consumer-oriented GEnie online service.
Background Professors John Kemeny and Thomas Kurtz at Dartmouth College purchased a Royal McBee LGP-30 computer around 1959, which was programmed by undergraduates in assembly language. Kurtz and four students programmed the Dartmouth ALGOL 30 compiler, an implementation of the ALGOL 58 programming language, which two of the students, Stephen Garland and Anthony Knapp then evolved into the SCALP (Self Contained ALgol Processor) language between 1962 and 1964. Kemeny and freshman Sidney Marshall collaborated to create DOPE (Dartmouth Oversimplified Programming Experiment), which was used in large freshman courses.Application to the National Science Foundation, Kurtz, Rieser, and Meck, cited in Rankin, pages 20-21
Since the limited size of the LGP-30 (4K 31-bit words) precluded a full implementation of ALGOL 60, certain features (arrays called by value, own arrays, strings, variable array bounds, and recursion) were omitted; but the implementation did include parameters called by name, using thunks and integer labels.
ALGOL 30 was a two-pass system. The first pass loaded the compiler and processed source code typed by the user; it generated intermediate code, similar to relocatable binary, and punched it onto paper tape. The second pass loaded both the run-time system and the intermediate code. Compilations could be "batched", but the delay between entering the source code tape and executing the compiled program were too great to allow widespread student use. To enable wider use, Garland and Knapp developed SCALP, a "load-and-go" system for a smaller subset of ALGOL 60 (which did not allow boolean variables or operators, blocks, procedures, own or dynamic arrays, conditional expressions, and step-until for statements). SCALP devoted a third of the LGP's memory to the compiler, a third to the run-time system (which included a floating-point interpreter and numeric functions), and a third for compiled user code. Students prepared source code off-line and punched it on paper tape with a Friden Flexowriter. Compilation occurred almost as quickly as the tape could be read in. This enabled student jobs to be completed in three minutes. Hundreds of students used SCALP before the advent of the Time-Sharing System in 1964.
Early history
Kurtz approached Kemeny in either 1961 or 1962, with the following proposal:Rankin, pages 22-23 all Dartmouth students would have access to computing, it should be free and open-access, and this could be accomplished by creating a time-sharing system (which Kurtz had learned about from colleague John McCarthy at MIT, who suggested "why don't you guys do timesharing?"). Although it has been stated that DTSS was inspired by a PDP-1-based time-sharing system at Bolt, Beranek and Newman, there is no evidence that this is true.
In 1962, Kemeny and Kurtz submitted a proposal for the development of a new time-sharing system to NSF (which was ultimately funded in 1964). They had sufficient assurance that both Dartmouth and NSF would support the system that they signed a contract with GE and began preliminary work in 1963, before the proposal was funded.Rankin, pages 24-25 In particular, they evaluated candidate computers from Bendix, GE, and IBM, and settled upon the GE-225 system paired with a DATANET-30 communications processor. This two-processor approach was unorthodox, and Kemeny later recalled:The GE-Dartmouth Computer Partnership, John G. Kemeny, DTSS History Birth 1967-1970 Folder 2, Box 4, Garland Papers, Dartmouth College Library "At that time, many experts at GE and elsewhere, tried to convince us that the route of the two-computer solution was wasteful and inefficient." In essence, the DATANET-30 provided the user-interface and scheduler, while user programs ran in the GE-225.
Its implementation began in 1963, by a student team under the direction of Kemeny and Kurtz with the aim of providing easy access to computing facilities for all members of the college. The GE-225 and DATANET-30 computers arrived in February 1964. Two students, John McGeachie and Michael Busch, wrote the operating systems for the DATANET-30 and GE-225; Kemeny contributed the BASIC compiler. The system became operational in mid March, and on May 1, 1964, at 4:00 a.m., the system began operations. A description of DTSS c. 1977 In autumn of 1964, hundreds of freshman students began to use the system via 20 teletypes, with access at Hanover High School via one additional teletype;Rankin, pages 33-34 later that autumn the GE-225 computer was replaced with a faster GE-235 computer with minimal issues. By summer of 1965, the system could support forty simultaneous users.
A Dartmouth document from October 1964, later revised by GE, describes the overall DTSS architecture:"The Dartmouth Time-Sharing System, A Brief Description", October 19, 1964, with revisions by GE staff, 1965 The program in the Datanet-30 is divided into two parts, a real-time part and a spare-time part. The real-time part is entered via clock-controlled interrupt 110 times per second in order to scan the teletype lines. As characters are completed, the real-time part collects them into messages and, when a "return" character is encountered, interprets the message. If it is a line in the program, nothing is done. If the message is a command, a spare-time task to start carrying out the command is set up and inserted in the spare-time list. If there is not enough time to complete this setting-up, the real-time part will complete the set-up during the next real-time period. The spare-time portion carries out the spare-time tasks, which include mainly disc operations and certain teletype operations. In the GE-235 part there is resident compiler system that acts as a translator, and a resident executive routine to manage the disc input-output operations and to perform other functions. The executive system permits simultaneous use of the card equipment, the tape drives, and the high-speed printer during time-sharing through interrupt processing. Two algebraic languages, BASIC and ALGOL, are available, with FORTRAN planned for September 1965. These one-pass compilers are rather fast, requiring usually 1 to 4 seconds per compilation.
User interface design Kemeny and Kurtz observed that "any response time which averages more than 10 seconds destroys the illusion of having one's own computer", so DTSS's design emphasized immediate feedback. Many of its users thus believed that their terminal was the computer and that, Kemeny wrote, "the machine is there just to serve him and that he has complete control of the entire system".
Because of the educational aims, ease of use was a priority in DTSS design. It implemented the world's first Integrated Design Environment (IDE). Any line typed in by the user, and beginning with a line number, was added to the program, replacing any previously stored line with the same number; anything else was taken as a command and immediately executed. Lines which consisted solely of a line number weren't stored but did remove any previously stored line with the same number. This method of editing provided a simple and easy to use service that allowed large numbers of teleprinters as the terminal units for the Dartmouth Timesharing system.
IDE commands included
CATALOG – to list previously named programs in storage LIST – to display the current program in memory NEW – to name and begin writing a program in memory OLD – to copy a previously named program from storage to memory RENAME – to change the name of the program in memory RUN – to compile and execute the current program in memory SAVE – to copy the current program from memory to storage SCRATCH – to clear the content of the current program from memory UNSAVE – to remove the current program from storage
These commands were often believed to be part of the BASIC language by users, but in fact they were part of the time sharing system and were also used when preparing ALGOL or FORTRAN programs via the DTSS terminals.
GE-Dartmouth relationship Kemeny and Kurtz had originally hoped that GE would enter into a research partnership, and to that end Kurtz and student Anthony Knapp authored a document about their proposed system design, which they presented to GE's Phoenix office in 1962.John G. Kemeny, "The GE-Dartmouth Computer Partnership", DTSS History Birth 1967-1970 Folder 2, Box 4, Garland Papers, Dartmouth College Library. Cited in Rankin, pages 25-26 However, GE rejected the partnership, and its October 1962 proposal to Dartmouth was framed solely as a commercial sale. Cited in Rankin, page 26 That said, GE and Dartmouth promoted the operational Dartmouth Time Sharing System in October 1964 at the Fall Joint Computer Conference in San Francisco, with three teletypes connected to the Dartmouth system in Hanover.Kurtz, "Progress Report Course Content Improvement Project of 15 December 1964". Cited in Rankin, page 118
From December 1964 into January 1965, two Dartmouth students installed working copies of DTSS and BASIC on GE computers in Phoenix. In early 1965, GE began to advertise timesharing services on its GE-265 system (GE 235 + DATANET 30), including BASIC and Dartmouth Algol, Cited in Rankin, page 120. later renaming it the GE Mark I time-sharing system. Over the next few years, GE opened 25 computer centers in the United States and elsewhere, serving over fifty thousand users.General Electric Information Systems Group, "Computer Time-Sharing on Campus: New Learning Power for Students", May 1968, Folder 3 of 6, DA-29 (7841) DTSS Time-Sharing, Rauner Library, Dartmouth College. Cited in Rankin, page 121
The Computer History Museum's Corporate Histories Collection describes GE's Mark I history this way: The precursor of General Electric Information Services began as a business unit within General Electric formed to sell excess computer time on the computers used to give customer demos. In 1965, Warner Sinback recommended that they begin to sell time-sharing services using the time-sharing system (Mark 1) developed at Dartmouth on a General Electric 265 computer. The service was an instant success and by 1968, GEIS had 40% of the $ 70 million time-sharing market. The service continued to grow, and over time migrated to the GE developed Mark II and Mark III operating systems running on large mainframe computers.
Dartmouth Time-Sharing System, version 2
From 1966 to 1968, DTSS was reimplemented on the GE 635, still using the DATANET-30 for terminal control. The GE 635 system was delivered in November 1966. By October 1967, it was providing a service based on Phase I software, jointly developed by Dartmouth and GE, which GE subsequently marketed as the GE Mark II system. In parallel with this work, Dartmouth embarked in 1967 on the development of Phase II under the direction of Professor John Kemeny, with programming carried out by students and faculty. Phase II of the Dartmouth Time-Sharing System replaced Phase I on April 1, 1969, at Dartmouth.
As described in 1969, the new DTSS architecture was influenced by three criteria:
The experiences with the 265 system. The published concepts of the Multics system.