Incompatible Timesharing System
This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (August 2010) (Learn how and when to remove this template message)
|Developer||MIT Artificial Intelligence Laboratory and Project MAC|
|Written in||Assembly language|
|Initial release||late 1960s|
|Platforms||Digital PDP-6, PDP-10|
Incompatible Timesharing System (ITS) is a time-sharing operating system developed principally by the MIT Artificial Intelligence Laboratory, with help from Project MAC. The name is the jocular complement of the MIT Compatible Time-Sharing System (CTSS).
ITS, and the software developed on it, were technically influential far beyond their core user community. Remote "guest" or "tourist" access was easily available via the early ARPAnet, allowing many interested parties to informally try out features of the operating system and application programs. The software environment of ITS was a major influence on the hacker culture, as described in Steven Levy's book Hackers.
ITS development was initiated in the late 1960s by those (the majority of the MIT AI Lab staff at that time) who disagreed with the direction taken by Project MAC's Multics project (which had started in the mid-1960s), particularly such decisions as the inclusion of powerful system security. The name was chosen by Tom Knight as a joke on the name of the earliest MIT time-sharing operating system, the Compatible Time-Sharing System, which dated from the early 1960s.
By simplifying their system compared to Multics, ITS's authors were able to quickly[clarification needed] produce a functional operating system for their lab. ITS was written in assembly language, originally for the Digital Equipment Corporation PDP-6 computer, but the majority of ITS development and use was on the later PDP-10.
Although not used as intensively after about 1986, ITS continued to operate at MIT until 1990, and then until 1995 at Stacken Computer Club in Sweden.
Significant technical features
ITS introduced many then-new features:
- The first device-independent graphics terminal output; programs generated generic commands to control screen content, which the system automatically translated into the appropriate character sequences for the particular type of terminal operated by the user.
- A general mechanism for implementing virtual devices in software running in user processes (which were called "jobs" in ITS).
- Using the virtual-device mechanism, ITS provided transparent inter-machine filesystem access. The ITS machines were all connected to the ARPAnet, and a user on one machine could perform the same operations with files on other ITS machines as if they were local files.
- Sophisticated process management; user processes were organized in a tree, and a superior process could control a large number of inferior processes. Any inferior process could be frozen at any point in its operation, and its state (including contents of the registers) examined; the process could then be resumed transparently.
- An advanced software interrupt facility that allowed user processes to operate asynchronously, using complex interrupt handling mechanisms.
- PCLSRing, a mechanism providing what appeared (to user processes) to be quasi-atomic, safely-interruptible system calls. No process could ever observe any process (including itself) in the middle of executing any system call.
- In support of the AI Lab's robotics work, ITS also supported simultaneous real-time and time-sharing operation.
The environment seen by ITS users was philosophically significantly different from that provided by most operating systems at the time.
- Initially there were no passwords, and a user could work on ITS without logging on. Logging on was considered polite, though, so people knew when one was connected.
- To deal with a rash of incidents where users sought out flaws in the system in order to crash it, a novel approach was taken. A command that caused the system to crash was implemented and could be run by anyone, which took away all the fun and challenge of doing so. It did, however, broadcast a message to say who was doing it.
- All files were editable by all users, including online documentation and source code.
- All users could talk with instant messaging on another's terminal, or they could use a command (SHOUT) to ask all active users for help.
- Users could see what was happening on another's terminal (using a command called OS for "output spy"). A target of OS could detect and kill it using another command called JEDGAR, named after FBI Director J. Edgar Hoover). This facility was later disabled in an interesting[according to whom?] way: it looked like the remote session was killed, but it was not.
- Tourists (guest users either at MIT AI Lab terminals, or over the ARPAnet) were tolerated and occasionally encouraged to actively join the ITS community. Informal policy on tourist access was later formalized in a written policy. Ease of access, with or without a guest account, allowed interested parties to informally explore and experiment with the operating system, application programs, and "hacker" culture. Working copies of documentation and source code could be freely consulted or updated by anybody on the system.
Important applications developed on ITS
The EMACS ("Editor MACroS") editor was originally written on ITS. In its ITS instantiation it was a collection of TECO programs (called "macros"). For later operating systems it was written in the common language of those systems. For example, the C language under Unix, and Zetalisp under the Lisp Machine system.
Several important programming languages and systems were developed on ITS, including MacLisp (the precursor of Zetalisp and Common Lisp), Microplanner (implemented in MacLisp), MDL (which became the basis of Infocom's programming environment), and Scheme.
The default ITS top-level command interpreter was the PDP-10 machine language debugger (DDT). The usual text editor on ITS was TECO and later Emacs, which was written in TECO. Both DDT and TECO were implemented through simple dispatch tables on single-letter commands, and thus had no true syntax. The ITS task manager was called PEEK.
The local spelling "TURIST" is an artifact of six-character filename (and other identifier) limitations, which is traceable to six SIXBIT encoded characters fitting into a single 36-bit PDP-10 word. "TURIST" may also have been a pun on Alan Turing, a pioneer of theoretical computer science. The less-complimentary term "LUSER" was also applied to guest users, especially those who repeatedly engaged in clueless or vandalous behavior.
The Jargon File started as a combined effort between people on the ITS machines at MIT and at Stanford University SAIL. The document described much of the terminology, puns, and culture of the two AI Labs and related research groups, and is the direct predecessor of the Hacker's Dictionary.
- Levy, Steven (2010). "Winners and Losers". Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition (1st ed.). Sebastopol, CA: O'Reilly Media. pp. 85–102. ISBN 978-1449388393.
- Stuart, Brian L. (2008). Principles of Operating Systems: Design & Applications. Cengage Learning EMEA. p. 23.
- Eastlake, Donald E. (1972). "ITS Status Report". MIT AI Memos. AIM-238. MIT AI Laboratory.
- Eric S. Raymond, ed. (December 29, 2003). "OS and JEDGAR". The Jargon File (4.4.7 ed.). Retrieved December 21, 2009.
- "MIT AI Lab Tourist Policy". January 15, 1997. Retrieved December 21, 2009.
- Pan, Guohua; Bonk, Curtis J. (April 2007). "A Socio-Cultural Perspective on the Free and Open Source Software Movement". International Journal of Instructional Technology & Distance Learning. 4 (4). Retrieved 2014-06-02.
- Stallman, Richard M. Free Software, Free Society: Selected Essays of Richard M. Stallman. p. 13. Retrieved 2014-06-02.
- "History of OSS". Software Development for the Masses. Retrieved 2014-06-02.
- "turist". Dictionary.com. TuristDictionary.com, LLC. Retrieved 2014-06-04.
- "luser". Dictionary.com. Dictionary.com, LLC. Retrieved 2014-06-04.
- "The Original Hacker's Dictionary". dourish.com. Paul Dorish. Retrieved 2014-06-16.
- Eastlake, Donald E. (1969). ITS Reference Manual, Version 1.5 (PDF (4 854 999 bytes), 3+4+175 pages). MIT AI Laboratory. documents a very early version of the system
- An Introduction to ITS for the MACSYMA User
- Bawden, Alan (December 29, 2000). "PCLSRing: Keeping Process State Modular". Retrieved December 21, 2009.
- Lin, Yuwei (February 24, 2004). "Epistemologically Multiple Actor-Centered Systems: or, EMACS At Work". Ubiquity. Association for Computing Machinery. 5 (1). Retrieved December 21, 2009.
- Chiou, Stefanie; Music, Craig; Sprague, Kara; Wahba, Rebekah (December 16, 2001). "A Marriage of Convenience: The Founding of the MIT Artificial Intelligence Laboratory" (PDF). Retrieved December 21, 2009.
- Williams, Sam (2002). Free as in Freedom: Richard Stallman's Crusade for Free Software. Petaluma, CA: O'Reilly. ISBN 978-0-596-00287-9. Retrieved December 21, 2009.