Dartmouth Time Sharing System


The Dartmouth Time-Sharing System was an 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.

Early history

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 then evolved into the SCALP language between 1962-1964. Kemeny and freshman Sidney Marshall collaborated to create the Dartmouth Oversimplified Programming Experiment, which was used in large freshman courses.
Kurtz approached Kemeny in either 1961 or 1962, with the following proposal: 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. 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. 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. 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: "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, became operational in mid March, and on May 1, 1964, at 4:00 a.m., the system began operations. 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; 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 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. 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
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. However, GE rejected the partnership, and its October 1962 proposal to Dartmouth was framed solely as a commercial sale. 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..
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, including BASIC and Dartmouth Algol, 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.
The Computer History Museum's Corporate Histories Collection describes GE's Mark I history this way:

Dartmouth Time Sharing System, version 2

From 1966-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 1st April 1969 at Dartmouth.
As described in 1969, the new DTSS architecture was influenced by three criteria:
This new version was completely different internally from the earlier DTSS, but provided a near-identical user interface to enable a smooth transition for users and course materials. The 635 version provided interactive time-sharing to up to nearly 300 simultaneous users in the 1970s, a very large number at the time, and operated at eleven commercial and academic sites in the U.S.A., Canada and Europe. As it evolved in the 1970s, later versions moved to Honeywell 6000 series mainframes and Honeywell 716 communication processors. In 1976 the GE-635 system was replaced by a Honeywell 66/40A computer. It remained in operation until the end of 1999.
DTSS, version 2, included a novel form of inter-process communication called "communication files". They significantly antedated Unix pipes, as design documents put their conceptual origin sometime in 1967, and were described briefly in a 1969 conference:
Communication files supported read, write and close operations, but also synchronous and asynchronous data transfer, random access, status inquiries, out-of-band signaling, error reporting, and access control, with the precise semantics of each operation determined by the master process. As Douglas McIlroy notes: "In this, more akin to Plan 9's 9P protocol than to familiar IO." A notable application of communication files was in support of multi-user conferences, which behaved somewhat like conference phone calls, and were implemented entirely as user-space application programs.

The Kiewit Network

As mentioned above, Hanover High School was connected to DTSS from the system's beginning. Over the next decade, many other high schools and colleges were connected to DTSS via the Kiewit Network, named for Peter Kiewit, donor of funds for the Kiewit Computation Center that housed the DTSS computers and staff. These schools connected to DTSS via one or more teletypes, modems, and dial-up telephone lines. During this time, Dartmouth ran active programs to engage and train high school teachers in using computation within their courses.
By 1967, the following high schools had joined the Kiewit Network: Hanover High School, The Holderness School, Mascoma Valley Regional High School, Kimball Union Academy, Mount Hermon School, Phillips Andover Academy, Phillips Exeter Academy, St. Paul's School, and Vermont Academy.. This group expanded in the Dartmouth Secondary School Project, funded by the NSF during 1967-1968, which added the following New England high schools: Cape Elizabeth High School, Concord High School, Hartford High School, Keene High School, Lebanon High School, Loomis School, Manchester Central High School, Rutland High School, St. Johnsbury Academy, South Portland High School, and Timberlane High School.
From 1968-1970, Dartmouth added a number of colleges to the Kiewit Network via its Regional College Consortium. They included: Bates College, Berkshire Community College, Bowdoin College, Colby Junior College, Middlebury College, Mount Holyoke College, New England College, Norwich University, the University of Vermont, and Vermont Technical College.
By 1971, the Kiewit Network connected 30 high schools and 20 colleges in New England, New York, and New Jersey. At that time, DTSS was supporting over 30,000 users, of which only 3,000 were at Dartmouth College. By 1973, the Kiewit Network had expanded to include schools in Illinois, Michigan, upstate New York, Ohio, and Montreal, Canada.

Usage

57% of DTSS use was for courses and 16% for research. Kemeny and Kurtz intended for students in technical and nontechnical fields to use DTSS. They arranged for the second trimester of the freshman mathematics class to include a requirement for writing and debugging four Dartmouth BASIC programs. By 1968, more than 80% of Dartmouth students had experience in computer programming. 80 classes included "official" computer use, including those in engineering, classics, geography, sociology, and Spanish.
27% of DTSS use was for casual use and entertainment, which the university stated "is in no sense regarded as frivolous", as such activities encouraged users to become familiar with and not fear the computer. The library of about 500 programs as of 1968 included, Kemeny and Kurtz reported, "many games". They were pleased to find that 40% of all faculty members—not just those in technical fields—used DTSS, and that many students continued using the system after no longer being required to. Kemeny—by then the university president—wrote in a 1971 brochure describing the system that just as a student could enter Baker Memorial Library and borrow a book without asking permission or explaining his purpose, "any student may walk into Kiewit Computation Center, sit down at a console, and use the time-sharing system. No one will ask if he is solving a serious research problem, doing his homework the easy way, playing a game of football, or writing a letter to his girlfriend".
By the 1967–68 school year, in addition to 2,600 Dartmouth users, 5,550 people at ten universities and 23 high schools accessed DTSS. By the early 1970s the campus had more than 150 terminals in 25 buildings, including portable units for patients at the campus infirmary. About 2,000 users logged into DTSS each day; 80% of students and 70% of faculty used the system each year. The off-campus Dartmouth Educational Time-Sharing Network included users with 79 terminals at 30 high schools and 20 universities, including Middlebury College, Phillips Andover, Mount Holyoke College, Goddard College, United States Merchant Marine Academy, Bates College, the Dartmouth Club of New York, and a Dartmouth affiliate in Jersey City, New Jersey, sharing DTSS with Dartmouth people. Because BASIC did not change, the system remained compatible with older applications; Kemeny reported in 1974 that programs he had written in 1964 would still run. The system allowed email-type messages to be passed between users and real-time chat via a precursor to the Unix talk program.
By 1980, supported languages and systems included:
In 2000, a project to recreate the DTSS system on a simulator was undertaken and as a result DTSS is now available for Microsoft Windows systems and for the Apple Macintosh computer.