Source Code for CTSS released 177
Mainframes ROCK! writes "The source code for the Compatible Time-Sharing System, CTSS, has been released, and the here is the source code. CTSS was one of the first time-sharing operating systems and a direct ancestor of Linux. Developed at MIT in the 1960's on a specially modified IBM 7094 system.; it was developed at Project MAC at MIT. CTSS was first published, as well as operated in a time-sharing environment, in 1961; in addition, it was the system with the first computerized text formatting utility, and one of the very first to have inter-user electronic mail."
The Slashdot super-code-bowl 2k4 (Score:5, Funny)
Hello potential prize winner! Consider using your time to create an entry in this year's Slashdot Super Code Bowl. Prizes will be awarded to anyone who proves their worth by submitting code that fits any of these categories:
Other categories may be added, and bonus prizes for most original, most useless, and most useful code will also be awarded.
Re:The Slashdot super-code-bowl 2k4 (Score:5, Funny)
Re:The Slashdot super-code-bowl 2k4 (Score:2)
Re:The Slashdot super-code-bowl 2k4 (Score:3, Funny)
Crud. (Score:1, Redundant)
Oh, well. I'll publish the speed in xstones when the benchmark finishes running in a couple of years.
Re:The Slashdot super-code-bowl 2k4 (Score:1)
Re:The Slashdot super-code-bowl 2k4 (Score:3, Funny)
Re:The Slashdot super-code-bowl 2k4 (Score:2, Funny)
-----Begin Snip-----
------End snip------
Where can I pick up my prize?
Re:The Slashdot super-code-bowl 2k4 (Score:2)
zcat ctss.src.tar.gz
It's in there somewhere... you find it.
(We here at SCO don't put any stock in the new-fangled "burden of proof" stuff.)
Hmmm (Score:4, Interesting)
Fom there, Linux supports user-level kernels, so it would be possible to boot CTSS inside of Linux running as CTSS. Thus completing one of the challanges.
I'm scared.
It's free, but there's a catch (Score:3, Funny)
A BitTorrent of the source file... (Score:5, Informative)
It's 400K lines of assembly code... what could be sweeter?
Re:A BitTorrent of the source file... (Score:2)
Bet they never thought an OS that'll only run on a machine of which there were probably less than a thousand ever made would be so popular...
Re:A BitTorrent of the source file... (Score:3, Interesting)
Re:A BitTorrent of the source file... (Score:2)
I just downloaded the ctss-listings.zip file with Bit Torrent and have posted it on my school account. You can download it here [gsu.edu]. I don't think that this server can be slashdoted so feel free to use it as much as you want. By the way, I was able to cut down 2 megabytes my switching over to the bz2 format. Nothing was lost here except for some redundancy.
Here is the shameless plug: my project is here [gsu.edu]. Spread the word.
RMS (Score:2, Interesting)
Re:RMS (Score:5, Informative)
More information here: http://www.its.os.org/ [os.org]
Re:RMS (Score:2)
Windows XP?
Revolution OS (Score:3, Informative)
Nitpick, in the hopes that I can help you (Score:2)
Re:Nitpick, in the hopes that I can help you (Score:2)
Well, thanks for the pedanticism.
Re:Nitpick, in the hopes that I can help you (Score:2)
This post will sink faster than a lead zeppelin.
Re:Revolution OS (Score:3, Insightful)
Re:Revolution OS (Score:3, Informative)
SCO? (Score:3, Funny)
Does this mean SCO has the code it needs to prove that Linux contains Unix code?
Re:SCO? (Score:2)
No, it just means whoever submitted the article wasn't using "direct ancestor" in the way that most of us would have. I would imagine there's no code from CTSS directly in Linux.
another joke (Score:1, Funny)
Re:another joke (Score:2, Funny)
REMINISCENCES ON THE HISTORY OF TIME SHARING (Score:5, Informative)
John McCarthy, Stanford University
1983 Winter or Spring
I remember thinking about time-sharing about the time of my first contact with computers and being surprised that this wasn't the goal of IBM and all the other manufacturers and users of computers. This might have been around 1955.
By time-sharing, I meant an operating system that permits each user of a computer to behave as though he were in sole control of a computer, not necessarily identical with the machine on which the operating system is running. Christopher Strachey may well have been correct in saying in his letter to Donald Knuth that the term was already in use for time-sharing among programs written to run together. This idea had already been used in the SAGE system. I don't know how this kind of time-sharing was implemented in SAGE. Did each program have to be sure to return to an input polling program or were there interrupts? Who invented interrupts anyway? I thought of them, but I don't believe I mentioned the idea to anyone before I heard of them from other sources.
My first attempts to do something about time-sharing was in the Fall of 1957 when I came to the M.I.T. Computation Center on a Sloan Foundation fellowship from Dartmouth College. It was immediately clear to me that the time-sharing the IBM 704 would require some kind of interrupt system. I was very shy of proposing hardware modifications, especially as I didn't understand electronics well enough to read the logic diagrams. Therefore, I proposed the minimal hardware modification I could think of. This involved installing a relay so that the 704 could be put into trapping mode by an external signal. It was also proposed to connect the sense switches on the ccnsole in parallel with relays that could be operated by a Flexowriter (a kind of teletype based on an IBM typewriter).
When the machine went into trapping mode, an interrupt to a fixed location would occur the next time the machine attempted to execute a jump instruction (then called a transfer). The interrupt would occur when the Flexowriter had set up a character in a relay buffer. The interrupt program would then read the character from the sense switches into a buffer, test whether the buffer was full, and if not return to the interrupted program. If the buffer was full, the program would store the current program on the drum and read in a program to deal with the buffer.
It was agreed (I think I talked to Dean Arden only.) to install the equipment, and I believe that permission was obtained from IBM to modify the computer. The connector to be installed in the computer was obtained.
However, at this time we heard about the "real time package" for the IBM 704. This RPQ (request for price quotation was IBM jargon for a modification to the computer whose price wasn't guaranteed), which rented for $2,500 per month had been developed at the request of Boeing for the purpose of allowing the 704 to accept information from a wind tunnel. Some element of ordinary time-sharing would have been involved, but we did not seek contact with Boeing. Anyway it was agreed that the real time package, which involved the possibility of interrupting after any instruction, would be much better than merely putting the machine in trapping mode. Therefore we undertook to beg IBM for the real time package. IBM's initial reaction was favorable, but nevertheless it took a long time to get the real time package - perhaps a year, perhaps two.
It was then agreed that someone, perhaps Arnold Siegel, would design the hardware to connect one Flexowriter to the computer, and later an installation with three would be designed. Siegel designed and build the equipment, the operating system was suitably modified (I don't remember by whom), and demonstration of on-line LISP was held for a meeting of the M.I.T. Industrial Affiliates. This demonstration, which I planned and carried out, had the audience in a fourth floor lecture room and me in the computer room an
Re:REMINISCENCES ON THE HISTORY OF TIME SHARING (Score:2, Interesting)
I do remember there were displays in the SDC buildings about them building the first non-research time sharing system; the first commercial entity to run classes to teach pr
Say Whaaat? Direct Ancestor? (Score:5, Insightful)
a direct ancestor of Linux
Direct ancestor? Not by a long shot. Unless you consider that any multi user, multi tasking, time sharing operating system as a direct ancestor.
read what Dennis Ritchie says... (Score:5, Informative)
Re:read what Dennis Ritchie says... (Score:1)
Re:read what Dennis Ritchie says... (Score:2, Insightful)
"Ancestry" implies genetic similarity, i.e., copying of DNA or source code, which I think is *not* the case to any significant degree for any version of UNIX and Linux. There may be fragments of UNIX code from the public domain, but nothing more.
Perhaps "predecessor" would be a better word.
Re:read what Dennis Ritchie says... (Score:2)
Do you work for SCO or something?
Re:Say Whaaat? Direct Ancestor? (Score:2)
errr...I think the submitter means that conceptually, Linux is a descendent of CTSS. This was 1961...you couldn't just download a multi-user, timesharing system off the internet and burn a copy on CD. This was one of the first, and no doubt had an influence on other systems that followed, including UNIX. Obviously the Linux codebase doesn't share anything in co
INDIRECT ancestor of UNIX (Score:3, Informative)
Re:INDIRECT ancestor of UNIX (Score:2)
CTSS Technical Notes (Score:1, Informative)
If there was only a simh of IBM 709x (Score:3, Interesting)
Re:If there was only a simh of IBM 709x (Score:4, Informative)
CTSS-ITS (Score:5, Informative)
CTSS (Compatible Time Sharing System) lent its name to MIT's ITS (Incompatible Time Sharing System) for the PDP-10.
I'm pretty sure it was ITS that RMS developed Emacs (Editor Macros, or Eight Megs and Constantly Swapping) on but he'd know for sure.
Also, from SAIL (Stanford Artificial Intelligence Laboratory) we got WAITS which was the West-coast Alternative to ITS.
MULTICS also grew out of these roots, and Unix of course is a play on "Multics".
Emacs (Score:2)
I believe that is Elvis Masterminds All Computer Science
Re:CTSS-ITS (Score:1)
You got the acronym wrong. It's "EMACS Makes A Computer Slow". HTH.
Re:CTSS-ITS (Score:4, Informative)
E-MACS was a TECO macro package that RMS picked up. There was also T-MACS and R-MACS. When I used E-MACS, it was on v134, I think, and RMS for a couple of years been the only maintainer of it, but a small number of people were still using ^R mode in TECO or one of the other macro packages. When RMS stopped maintaining ITS and Twenex EMACS to start the GNU project, I maintained it for a while, but it was eventually clear that it wasn't the way of the future. By that time, Lisp Machines and the Vax had happened.
By the way, last time I was at the computer museum in Mountain View, CA, I saw a Lisp Machine whose serial number (CADR 8) I recognized. I figured it was time to leave.
Re:CTSS-ITS (Score:4, Informative)
VMS is a direct descendant of RSX-11. In fact, VMS had an RSX-11 emulation which could run RSX-11 programs (and the VAX CPU had a PDP-11 emulation mode) and on early VMS versions you needed this as native VMS utilities were lacking or incomplete (MCR PIP ...)
RSX-11 goes back to the early 1970's and was developed by the same Dave Cutler who is credited with being one of the architects of VMS and he later goes to Microsoft and works on NT so that much of your derivation is right.
It's difficult to make simple, linear charts of operating systems; where's TOPS-10 in all this? It's not really a predecessor of TOPS-20. And then there's TENEX which was another PDP-10 OS, basically a rogue development effort at BBN when they tired of waiting for DEC to get TOPS-10 right. TOPS-20 was also known as TWENEX but that was mostly for humor's sake rather than any direct historical connection except inasmuch as back then all these OS's had historical connections.
And just to throw in some gratuitous though related history, DEC's RT-11 most derives from RSX-11 (and DEC's DOS-11 not to be confused with Microsoft's DOS.)
RT-11 is cloned by the writers of CPM for 8-bit systems, which in turn is cloned by DOS (yes, the one that launched Microsoft.)
Re:CTSS-ITS (Score:5, Interesting)
TOPS-20 was somewhat of a rewrite if TOPS-10.
RT-11 doesn't really relate to RSX. The source code was quite different. However there were some similiarities with one of the command line interpreters (DCL) and some utilities like PIP. It should be noted that PIP (Peripheral Interchange Program) had been knocking around for a long time and then something like it ended up in CP/M.
I wouldn't really call CP/M a clone of RT, many of the system services and concepts behind them were very different. RT-11 was designed as a lab operating system and had a foregroun/background mechanism built-in, which was less of a hack than CPM's TSRs. The PDP-11 had a very advanced instruction architecture at the time and many concepts did not translate to the 8088.
So.. how long before the Gameboy Advance port? (Score:2, Funny)
What would you bet... (Score:5, Funny)
Re:What would you bet... (Score:2)
This shouldn't be surprising at all. The larger the codebase, the larger the likely number of bugs: Not only are there more opportunities for error, but there will be more code paths which don't get regularly exercised.
It has been said that perfection is when there is nothing left to remove; I'd rather say that security is when there's nothing left to remove.
CTSS was the first time sharing system (Score:1, Informative)
http://www.multicians.org/thvv/7094.html [multicians.org]
It is? (Score:1, Redundant)
I thought we were trying to fight Darl et al on the grounds that Linux is completely free of any legacy UNIX code.
It's a clone, not a descendant.
Re:It is? (Score:2)
Not direct (Score:3, Insightful)
CTSS was one of the first time-sharing operating systems and a direct ancestor of Linux.
What is the basis for this statement? Linux neither contains CTSS code, nor was modelled upon it, and neither were any of its ancestors. It's an indirect ancestor maybe.
Re:Not direct (Score:2)
All of those were openly acknowledged influences, and the primary ones (other than the hardware that the OSs were targeting, and the new features they wanted to add).
Re:Not direct (Score:2)
A more accurate analogy would be to ask if I considered KDE a descendant of the GUI systems developed at Xerox PARC. And I do.
Re:Not direct (Score:2)
MS, Apple and MIT were all consciously copying Xerox's ideas when they implemented Windows, MacOS and X11.
History of CTSS (Score:5, Interesting)
I hope Melinda doesn't hunt me down and kill me for causing a /. storm on her web site, but the paper is available at http://pucc.princeton.edu/~melinda/ [princeton.edu].
Enjoy.
Re:History of CTSS (Score:2)
"Hackers" (Score:2, Interesting)
Just thought I'd mention.
Huxley
Familiar Tools (Score:1, Informative)
a little FAP and MAD to understand it. There are even a few programs in AED-0, an Algol variant."
Thank god, I thought I was going to have to learn something new...er, old to be able to use it!!!
Heritage (Score:5, Informative)
Re:Heritage (Score:2)
That's not the way I remember it at all... Could provide a link or a little more detail?
Also CTSS is considered the father of Multics which in turn begat Unix.
That's sort of like saying that DOS is the father of Windows. Multics was a ground-up design to create an operating using lessons learned from CTSS (among others). One of those lessons was that they didn't want to it to be much like CTSS, IIRC.
The jum
Re:Heritage (Score:2)
As for the heritage of various OS's, the child tends to learn from the mistakes of the parent, and end up a significantly different creature. As for UNIX, although early incarnations were great distant from MULTICS, later versions actually came much closer. For example, System V/MLS, borrowed many more concepts from Multics then prior versions.
Re:Heritage (Score:2)
That mentions "TSS", as in "TSS/370", as in "Time Sharing System/370", as in "System/370", not "CTSS", which ran on a modified IBM 7094.
Re:Heritage (Score:5, Interesting)
The shame is that the tradeoffs that made UNIX a success in the 70's are probably not valid any more, and modern operating systems and programming models are still (IMO) largely trapped by design decisions made by UNIX. For example, the artificial separation between how you access RAM and disk costs developers untold amounts of wasted effort. And the idea that you don't have to turn a computer off while adding or removing CPU's, RAM, disks, controllers, etc., is still quite uncommon. And the way all linking was dynamic is way better than the mess we have to deal with now. And it had a very nice multi-processor architecture, where all CPU's had access to all RAM, and through that to all secondary storage, etc.
Of course, some of these ideas have reemerged in high-end computing (the multicians, see http://www.multicians.org) are still all hard at work making things better.
Re:Heritage (Score:2)
You can't access the disk and RAM the same way because 32 bits aren't enough; just ask the HURD people with their 2 GB (maximum) partitions. That's also a bad idea because hard disks are fundamentally thousands of times slower than RAM - you don't want programmers treating it the same way. If you really want to treat disk as RAM, you can use mmap. Word tries to use this system (a memory dump) to store files, and people are always complaining about backwards compatab
Re:Heritage (Score:2)
That didn't stop Multics - you didn't assign every single segment in the system its own virtual address range, a process had to initiate [multicians.org] a segment to get it mapped into the process' address space. Initiating a segment is, in UN*Xy terms, sort of like opening the file, mmapping it into your address, and then closing the descriptor - you can only access it by using the
Re:Heritage (Score:2)
Not exactly - that's why multisegment files [multicians.org] were implemented.
In that case, though, the restriction was that a single segment could be no larger than a megabyte (18-bit segment offset, word addressing, 4 9-bit bytes per word), not a limit on the size of the entire address space (12 bits of segment number, as I remember, gives a total address space of 4GB, although some of that was taken up by the
Re:Heritage (Score:2)
So, you don't use virtual memory? You're a stud!
Personally, I like it when the OS manages details so that I don't have to. And if I didn't have to waste time writing code to write my data structures out to a sequential text file and read it back, I'd be a lot happer. As I mentioned before, the NewtonOS handled this issue properly, and the result was that you could write an app for the Ne
Re:Heritage (Score:2)
You've got the sequence wrong. Multics was designed and written _before_ UNIX. And I am certainly not saying that UNIX is a stupid design, just that there are fundamental design decisions in UNIX (to lose most of Multics' functionality) that made sense
Obligatory Slashdotting Joke (Score:1)
email (Score:2, Funny)
because intra-user electronic mail wasn't as useful as people had hoped.
Just wait a year or two .... (Score:4, Funny)
Need an emulator for this machine... (Score:1, Interesting)
inter-user email (Score:5, Funny)
Apparently, in the previous versions, users were only able to email themselves.
Re:inter-user email (Score:2)
You could Telnet, but only to the local machine!
The "Window Manager" was a creepy guy who was always peeking through the lab window!
Cat was there, but it was always asleep!
We used IPv1 - 8 bits, and MIT owned the first 7!
You don't even want to know how "Daemons" got its name!
Worst of all... We had to use vi!
You kids and your fancy-shmancy VT100s... bah! You don't know how good you got it now! This email shit blows my mind!
Krell amp (Score:3, Funny)
CTSS on Crays (Score:2)
While I was graduate student in the 1980's there were a bunch of the most powerful Cray supercomputers at Los Alamos running this OS.
I think there was even a variant, LTSS that was run at Livermore.
Those were the days of using line editors over 300 baud modems.
Re:CTSS on Crays (Score:2)
No. They were running the Cray Time Sharing System, as mentioned in this article [nersc.gov]:
Let's do a diff with MS's code! Calling Groklaw! (Score:2)
I'm sure we can find a lot of patents and algorithms in there. for example; FORGET INTERNET CONNECTIVITY, Microsoft; all your networking code r belong to us now, see?
You'll see them change their stance on copyright and IP law pretty quickly, if you ask me.
It'b be interesting to watch all their lobbyist and FUD people run around looking for an escape hatch!
Either way, it's going to h
Re:Microsoft?! No way!! (Score:2)
It's a pre-emptive strike against Microsoft's IP and patenting shenanigans.
I'm sure we can find similarities.
What's Microsoft's reaction going to be?
"It's ridiculous to try and patent software"
Exactly.
Pay Back Time! (Score:2)
Re:Pay Back Time! (Score:2)
Regretfully, no. CTSS was not written in C. However, we can no doubt fall back on SCO's concept of non-literal copying of CTSS's protected methods.
CTSS history (Score:4, Informative)
MIT got an IBM 7090, replacing the 709, in the spring of 1962, when I was a freshman, and had upgraded the 7090 to a 7094 by 1963. The 7090 and 7094 were operated in batch mode, controlled by the Fortran Monitor System (FMS). Batch jobs on cards were transferred to tape on an auxiliary 1401, and the monitor took one job at a time off the input tape, ran it, and captured the output on another tape for printing and punching by the 1401. Each user job was loaded into core by the BSS loader along with a small monitor routine that terminated jobs that ran over their time estimates. Library routines for arithmetic and I/O were also loaded and linked with the user's program. Thus, each user's job had complete control of the whole 7094, all 32K words of memory, all the data channels, everything.
IBM had been very generous to MIT in the fifties and sixties, donating its biggest scientific computers. When a new top of the line 36-bit scientific machine came out, MIT expected to get one. In the early sixties, the deal was that MIT got one 8-hour shift, all the other New England colleges and universities got a shift, and the third shift was available to IBM for its own use. One use IBM made of it was yacht handicapping: the president of IBM raced big yachts on Long Island Sound, and these boats were assigned handicap points by a complicated formula. There was a special job deck kept at the MIT Computation Center, and if a request came in to run it, operators were to stop whatever was running on the machine and do the yacht handicapping job immediately.
Early Time-Sharing
MIT professors, such as Herb Teager and Marvin Minsky, wanted more access to the machine, like they had had on Whirlwind in the fifties, and quicker return of their results from their FMS jobs. John McCarthy wrote an influential memo titled "A Time Sharing Operator Program for Our Projected IBM 709" dated January 1, 1959, that proposed interactive time-shared debugging. These desires led to time-sharing experiments, such as Teager's "time-stealing system" and "sequence break mode," which allowed an important professor's job to interrupt a running job, roll its core image out to tape, make a quick run, and restore the interrupted job. McCarthy's Reminiscences on the History of Time Sharing describes his and Teager's role in the beginnings of time-sharing. Teager and McCarthy presented a paper titled "Time-Shared Program Testing" at the ACM meeting in August 1959.
FMS and Batch Processing
MIT and the University of Michigan were both 7094 owners, and the computation center people were colleagues who traded code back and forth. When I was a freshman in 1961, we used FORTRAN in the elementary course (FORTRAN II was brand new then), but by the time I was a sophomore, MIT had installed Michigan's MAD language, written by Graham, Arden, and Galler, and was using that in most places that a compiler language was needed, especially computer courses. MAD was descended from ALGOL 58: it had block structure and a fast compiler, and if your compilation failed, the compiler used to print out a line printer portrait of Alfred E. Neumann. (MIT took that out to save paper.) Mike Alexander says, "MAD was first developed about 1959 or 1960 on a 704, a machine which makes the 7094 look very powerful indeed." MAD ran under UMES, the University of Michigan Executive System, derived from a 1959 GM Research Center executive for the IBM 701 that was one of the first operating systems.
Part of the Michigan/MAD code was a replacement for the standard FORTRAN output formatter routine, (IOH). (Programs written
Re:CTSS history (Score:3, Informative)
"monsterhead78" has just copied the text from
http://www.multicians.org/thvv/7094.html.
links.
Revive Citran (joss) (Score:2)
Re:direct ancestor? (Score:2, Insightful)
Re:direct ancestor? (Score:1, Funny)
Re:direct ancestor? (Score:2, Insightful)
Re:direct ancestor? (Score:2)
Re:direct ancestor? (Score:2)
Re:direct ancestor? (Score:1)
Re:direct ancestor? (Score:2)
Re:direct ancestor? (Score:3, Interesting)
Lets see when people will call any Operating System "Linux"? Any guesses?
Re:GREAT! (Score:2, Funny)
I consider myself an expert in FAP [urbandictionary.com].
Re:GREAT! (Score:2)
And then you look at most programmers today, and the way bloated operating systems [microsoft.com] are written, not to mention the bloated applications [microsoft.com] that go with it.
I guess we've more or less lost programming of that kind, even things like mobile and thin-client devices these days run higher-end language platforms like Java. I do understand that higher levels of abstractions bring m
Re:GREAT! (Score:3, Informative)
Languages like Java and C# are chosen for speed of development, which is especially important in the fast-changing market of mobile devices. You don't want to be dinking around with registers while your competitors are releasing completed products.
Re:GREAT! (Score:2)
What's fun is that running those old assembly language programs on an emulator on a modern computer can be very very fast. We've recently brought up a PLATO system, running on an emulated Cyber (60-bit one's complement machine). On a 1.8GHz Opteron, on a not-very-optimized-for-speed emulator, the thing is about 8 times faster than the original system was in the mid-70's, and we were running about 500 people on a dual-mainframe system back then. PLATO is a time-sharing system that runs under NOS, and impl
CTSS: Emulator for history classroom? [Re: GREAT!] (Score:2)
I'm pretty sure the emulator guys are working on this already as we speak ;-)
But seriously, I think it's very useful to actually SEE the code of the systems they might mention in operating systems classes, history section. Understanding the progress can be accomplished by letting students play with CTSS o