May the source be with you, but remember the KISS principle ;-)

Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

CTSS: the seminal system that "taught the world how to do time-sharing."


History of OSes

Recommended Links

History of Computing

Fernando Corbato


Unix People Humor Etc

The "Compatible Time-Sharing System" was an operating system written by a team of MIT programmers led by Prof. Fernando J. Corbato. It was first demonstrated at MIT in 1961 (and in production use from 1964-1974).  It paved the way for MULTICS, CP/CMS, Unix and all other time-sharing environments.

CTSS first came online at MIT in 1961 and survived till 1973. It allowed multiple users to log into the the 7094 from remote dial-up terminals, and to store files online on disk. This new ability encouraged users to share information in new ways. CTSS originally was presented in a paper at the 1962 Spring Joint Computer Conference, even though the software wasn't quite working. By the time of the summer study it worked.  The hardware that made CTSS run added several instructions and a memory boundary register to the processor: and two 32K core memory banks, instead of one. Core bank 'A' held the CTSS supervisor, and 'B' was used for user programs. Many instructions were forbidden: I/O instructions; attempts to switch core banks; executing them caused the machine to trap. CTSS was "compatible" in the sense that FMS could be run in B-core as a "background" user, nearly as efficiently as on a bare machine. Background could access some tape units and had a full 32K core image. This feature allowed the computer users to make the transition from batch to timesharing gradually, and to retain the ability to run "dusty decks" and software from other institutions.  The plan was to use CTSS to support Multics development, and the last big CTSS project was a new, much better, file system, to ensure that the system would be adequate to support Multics development.

As Professor Wilkes noted (iee90):

Early computers were used in such a way as to present no security problems. F. Corbat´o, the designer of the CTSS, the first of the large scale time sharing systems, saw clearly that the sharing of a computer by many users simultaneously would create a need for security features. Accordingly the CTSS incorporated a password system and also had file protection. As time went on, experience showed that these security features were not as effective as had been innocently thought. The early time-sharing systems operated in university environments and the students were quick to take up the challenge.

The standard mode for OSes at this time was batch computing. In included the sequential and automatic execution of several predefined. CTSS was the first alternative to batch systems and  was  the seminal system that "taught the world how to do time-sharing." I would like to stress that CTSS essentially defined time-sharing.

By 1963, there were two versions of the Compatible Time Sharing System (CTSS) operating at MIT on two IBM modified 7094 computers, one at the Computation Center, and another at MIT's Project MAC (that's where Ken Thomson learned about CTSS)

Those using the early time-sharing systems at MIT and elsewhere soon discovered the new possibilities inherent in time-sharing.  Time-sharing pioneers Robert Fano and Fernando Corbato, wrote:

"For professional programmers the time-sharing system has come to mean a great deal more than mere ease of access to the computer. Provided with the opportunity to run a program in continuous dialogue with the machine, editing, `debugging' and modifying the program as they proceed, they have gained immeasurably in the ability to experiment. They can readily investigate new programming techniques and new approaches to problems."(7)
The results of this programming flexibility led both to a bolder and more flexible approach to problem solving and to undertaking new areas of research. Fano and Corbato reported that users not only would build on each other's work, but also they would come to depend more and more on the computer to facilitate their work. The most surprising development that they encountered, however, was the fact that the users themselves created many of the programming commands used in the system, instead of needing professional programmers. While at the conventional computer installation, they noted, "one hardly ever makes use of a program developed by another user, because of the difficulty of exchanging programs and data," in the Project MAC time-sharing environment, "the ease of exchange has encouraged investigators to design their programs with an eye to possible use by other people. They have acted essentially as if they were writing papers to be published in technical journals."

Fano and Corbato envisioned that time-sharing systems would have a profound impact on the future. And they were alone in the early 60s, IBM was struggling to define its technical direction and still was stuck in batch mode computing which was the only one available from IBM in initial version of OSes used for early System 30 machines. As innovative as System 360 hardware was OSes that were developed for it were backward in the worst sense of this word. Time-sharing wasn't seen as important to IBM's main customer base; batch processing was key.

Fano and Corbato were ahead of their time by almost 40 years, no small feat,  as they correctly predicted that  "Communities will design systems," they predicted, "to perform various functions -- intellectual, economic and social -- and the systems in turn undoubtedly will have profound effects in shaping the patterns of human life."

"The coupling between such a utility and the community it serves," they discovered, "is so strong that the community is actually a part of the system itself." They foresaw the development of a symbiotic relationship between the computer systems and its human users which "will create new services, new institutions, a new environment and new problems." Among these, they proposed, would be the question of access. "How will access to the utility be controlled?" they asked, "To what ends will the system be devoted, and what safeguards can be devised for its misuses? It is easy to see," they concluded, "that the progress of this new technique will raise many social questions as well as technical ones."

It is not widely known that CTSS  was the original OS on which email was invented:

When CTSS users wanted to pass messages to each other, they sometimes created files with names like TO TOM and put them in "common file" directories, e.g. M1416 CMFL03. The recipient could log into CTSS later, from any terminal, and look for the file, and print it out if it was there.

The CTSS MAIL command was proposed in an undated Programming Staff Note 49 by Louis Pouzin, Glenda Schroeder, and Pat Crisman. These folks were working on the design of a new, improved file system for CTSS with many additional features. Numerical sequence places the note in either Dec 64 or Jan 65. PSN 49 proposed a facility for the system operators so they could inform users when lost files were retrieved from tape, by sending a message to a file in their directory.

I was a new member of the programming staff at the time, and read the document about the proposed CTSS MAIL command, and asked "where is it?" and was told there was nobody available to write it. So my colleague Noel Morris and I wrote a version of MAIL for CTSS in the summer of 1965. Noel was the one who saw how to use the features of the new CTSS file system to send the messages, and I wrote the actual code that interfaced with the user.

My design contribution to electronic mail was that the original PSN described a limited facility for the CTSS machine operators to notify users when requests to retrieve lost files were completed. I argued successfully for a general facility that let any user send text messages to any other, with any content, instead of a special-purpose command controlled from the 7094 console switches.

MAIL was a privileged command, that could do things normal user programs could not: it used the call (shown in MAD)


to switch to the recipient's file directory, and then added the message to the user's private-mode mailbox file on disk.

The CTSS MAIL command took pairs of arguments, the problem and programmer numbers of the recipients:

MAIL M1416 2962

would start sending a message to me. You had to know the problem and programmer numbers for the recipients.

You could send mail to everybody on your project by typing

MAIL M1416 *

You couldn't send mail to * * (that is, all users on all projects) unless your programmer number or problem number was canned into the MAIL program. Dick Mills's (assistant director, Project MAC), Bill Bierstadt's (system administrator, MIT Comp Center), and my programmer numbers were baked into the code. We, and any user on the problem number M1416, used for CTSS system programming, could send messages to all users.

The MAIL command created or appended to a file called MAIL BOX in the recipient's home directory. Privileged users could send URGENT MAIL instead, and could send mail even if the user's disk quota was exhausted. The LOGIN command was modified to print




at login if these files existed and had nonzero length.

I went to a lot of trouble to insert new mail at the top of the file, so that the most recent message was first. (I regretted this after some experience, and when I wrote the initial unsecure Multics mail command, I just appended new messages to the bottom.)

Since it uses the ATTACH. call, I believe MAIL could not have been implemented until after the CTSS New File System, which was put up for users on 8/9/65.

The listings for the source of CTSS are online in Paul Pierce's Collection. The source of MAIL is the first file in file COM5 on tape S1. Authors are not listed but the code is recognizably mine, by comments, style, and indentation.

The First Spam?

Brad Templeton wrote a nice article on the history of spam on the occasion of the 25th anniversary of the DEC salesman ARPANet spam.

There was an earlier mass electronic mail message sent to a large community of unwilling readers [my definition of spam] that predates the 1978 DEC spam. This message was sent using CTSS MAIL about 1971, at a time of campus unrest and anti-war rallies.

By the start of the 70s, there were over a thousand users of MIT's CTSS system, using the system by dial-up from the MIT campus and from other, mostly academic, locations. They used mail to coordinate, share information on all kinds of topics, etc, just as now. At that time, I led the system programming group for some of MIT's services including CTSS, and I was mighty displeased one day, probably about 1971, to discover that one of my team had abused his privilege to send a long anti-war message to every user of CTSS that began


I pointed out to him that this was inappropriate and possibly unwelcome, and he said, "but this is important!"

One interesting point is that Noel and I had foreseen the possibility of inappropriate mass mailing in the original MAIL command, and put in code to prevent it. Then, as now, anti-spam measures were not always effective, and then, as now, the spammer thought that his behavior shouldn't be subject to the rules.

(This story was in Wired Magazine in April 1998. The author got my name wrong and thought that the story had something to do with mailing lists. The programmer who sent the message, and Noel, are both gone.)

Now we all have to filter spam. I wrote up how I deal with over fifteen thousand spam messages a day.

US Post Office

There was a lot of nervousness at the time about ticking off the US Post Office. Calling our facility MAIL was thought by some to be a Bad Idea, because they feared the Post Office would require the destruction of a first class stamp for each message sent. If you put a personal note in a parcel, the rule then was that you were supposed to cancel and attach first class postage, because the US Post Office had a monopoly on mail transmission.

We cautiously tried to find out who to ask. We didn't want to ask any low-level people who could only say "no." Finally an MIT professor met someone fairly high up in the Postal Service, who said forget it, don't worry.

Instant messaging

Noel and I also wrote a tool for CTSS called . SAVED (dot saved), inspired by the design for the Multics shell, during 1965 that provided, among other features, a user interface that allowed users to do "instant messaging." There were entry points to the CTSS supervisor that supported such messaging (written by Bob Fenichel) but no user-level way to use them: our program provided a user interface to Bob's code that allowed users to send lines of text to other logged-in users, and managed deferring and allowing communication so that program output would not be interrupted by messages. Noel did most of the programming on this feature, all in FAP. Multics was still in the design phase then, so . SAVED was an example of a successor system influencing its predecessor.

I think a hack was also added to to . SAVED to announce mail if it arrived while you were logged in, by checking the length of MAIL BOX after every command.

Other Systems

The Multics and Unix mail commands share the property that mail reads mail, while mail someaddress puts you into input mode and then sends it. This non-intuitive interface is my fault. I regret it now.

The other early timesharing system pioneer was  John McCarthy (ch001j The Creation of Time-Sharing)

Others during this period were concerned with the impact the computer would have on current society. For example, John McCarthy predicted that, "The computer gives signs of becoming the contemporary counterpart of the steam engine that brought on the industrial revolution."(11) Unlike the steam engine, however, the utility of the computer was dependent on the successful development of software programs written to direct it. Therefore, along with the increasing speed and capacity of computer hardware, came the increase in the demand for and in the cost of software. By the mid 1960's, the U.S. government was spending increasing amounts of money to create programs to utilize computer resources. The U.S. government, wrote McCarthy, "with a dozen or so big systems serving its military and space establishments, is spending more than half of its 1966 outlay of $844 million on software."(12)

Pointing out the need for studying the processes of programming, McCarthy observed, "What computers can do, depends on the state of the art and the science of programming as well as on speed and memory capacity."(14)

Computer pioneers like McCarthy recognized that the computer was more than an efficient bookkeeping machine. There was a need to discover what new applications were possible, and to create these new applications. Therefore, there would be a need for breakthroughs in the process of programming software. McCarthy believed that it was important for the user to be able to program in order to realize the potential of the computer. He pointed out that programming was a skill that was not difficult to learn, and that it was more important to understand the task being automated than to master programming languages. "To program the trajectory of a rocket," McCarthy offers as an example, "requires a few weeks' study of programming and a few years' study of physics."(14)

These early explorations in time-sharing prepared the foundation for an important development in the process of creating software. Once the discovery was made that simple programming tools could be created to aid in the process of software development, and that such tools could help those who understood the tasks to be automated, a needed leap could be made in how to develop software. Such a program was to be carried out by research programmers and developers at Bell Labs in the 1970's and early 1980's, building on the principles developed by the pioneers of time-sharing and Project MAC.

(On the Early History and Impact of Unix. Tools to Build the Tools for a New Millenium, Chapter 9 of Ronda & Michael Hauben's "Netizen's Netbook")

Recommended Links

Softpanorama hot topic of the month

Softpanorama Recommended

CTSS - Wikipedia, the free encyclopedia

The IBM 7094 and CTSS by Tom Van Vleck

CTSS tapes archive

Index of -mit-ctss

Name Last modified Size Description (Links to Manx)
Parent Directory        
AdvCompPgmg_May63.pdf 2005-05-10 14:02 8.5 MiB  
CTSS_ProgrammersGuide.pdf 2004-05-24 21:46 3.7 MiB  
CTSS_ProgrammersGuide_Dec69.pdf 2006-04-02 13:34 25.5 MiB  
MAC-TR-16_CTSStecNote_Mar65.pdf 2004-05-24 21:45 3.5 MiB  
scherr_analysisOfTScompSys.pdf 2004-09-15 14:34 5.8 MiB

Incompatible Timesharing System - Wikipedia, the free encyclopedia

John McCarthy (computer scientist) - Wikipedia, the free encyclopedia

WAITS - Wikipedia, the free encyclopedia

Incompatible Timesharing System - Wikipedia, the free encyclopedia


FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  


Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least

Copyright © 1996-2016 by Dr. Nikolai Bezroukov. was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: February 19, 2014