9 ms·
PDP-10/its: Incompatible Timesharing System
- pjc50 10y agoWhat are/were the unique or distinctive features of ITS? It's mentioned in a couple of places in the "jargon file", but otherwise it's a part of computing history I'm not familiar with.
- panic 10y agoThe "PCLSRing" technique to essentially back out of an active syscall is worth studying: https://en.wikipedia.org/wiki/PCLSRing https://en.wikipedia.org/wiki/PCLSRing http://fare.tunes.org/tmp/emergent/pclsr.htm http://fare.tunes.org/tmp/emergent/pclsr.htm. It's much better than the UNIX approach of returning early with an error or incomplete data.
- deleted 10y ago[deleted]
- qwertyuiop924 10y agoActually, as I understand it, the BSDs will now PCLSR some calls. Might be wrong though, so don't quote me.
- SSLy 10y agoThe first article then goes on a synchronous vs async tangent. Is there some paper or textbook comparing the general syscall design between various OS families?
- waqf 10y ago> much better than Funny to say that, when the comparison between these two approaches was the subject of the original "Worse is Better" article: http://dreamsongs.com/RiseOfWorseIsBetter.html http://dreamsongs.com/RiseOfWorseIsBetter.html
- loktarogar 10y agoWhat is this?
- aap_ 10y agoFor those wondering what ITS is. It's an operating system that was developed at MIT for the PDP-6 and later PDP-10 starting in the mid 60s. The last ITS system was shut down in 1990. A very cool thing about ITS is that DDT, the debugger, is the user interface to the OS. You can load files, examine and change memory of your current job (and also DDT itself!), and of course also start programs. ITS is also where EMACS was written on. It started out as a set of macros for the TECO editor (a crazy beast). EDIT: The linked repo currently builds an ITS runnable on a KS10 (emulated by simh and klh10). Eventaully we want to get it running on an emulated KA10 too. Getting it to run on a PDP-6 would probably only be possible if we get an older version of the source from somewhere (MIT might still have it). Another goal would be to get the 10-11 interface (a connection between a PDP-10 and -11) working so that we can try emulating the Knight TV system.
- digi_owl 10y ago> the TECO editor (a crazy beast). Makes ed look almost benign... https://en.wikipedia.org/wiki/TECO_%28text_editor%29 https://en.wikipedia.org/wiki/TECO_%28text_editor%29
- deleted 10y ago[deleted]
- Groxx 10y agoThose example programs... holy cow. After that, I don't know if I'll ever feel bad about my code being unreadable.
- userbinator 10y agoIt looks like a language that someone used to the APL family would have no problems with.
- mveety 10y agoActually it's not as bad as it looks at first glance. At least on OpenVMS, you normally use it like sed, and its not much worse than writing some regex, normally. Granted, writing a text editor in regex sounds awful.
- rbanffy 10y agoIt runs Emacs, therefore it's useful.
- julian_t 10y agoAnd should you wish to play with this, you can run your own ITS instance using SIMH[1] [1] https://www.cosmic.com/u/mirian/its/itsbuild.html https://www.cosmic.com/u/mirian/its/itsbuild.html
- aap_ 10y agoOr, you know, just build from this github repo.
- rashkov 10y agoITS was an early operating system that could handle multiple users logged onto the same machine at the same time -- think of how multiple people can SSH into the same Linux machine. It came out of MIT's AI lab which is where a lot of early hackers were doing their thing. Here's an excerpt from Stephen Levy's book Hackers: heroes of the computer revolution. It is a great read and I highly recommend it: "It underlined something that Greenblatt, Gosper, and the rest considered essential the magic that could come only from programs using all of the computer. The hackers worked on the PDP-6, one by one, as if it were their own personal computer. They would often run display programs which ran in "real time" and required the computer to constantly refresh the screen; timesharing would make the display hacks run slower. And the hackers had gotten used to little frills that came from complete control of the PDP-6, like being able to track a program by the flashing lights (indicating which registers in the machine were firing). Those perks would be gone with time-sharing. At heart, though, the time-sharing issue was an esthetic question. The very idea that you could not control the entire machine was disturbing. Even if the time-sharing system allowed the machine to respond to you in exactly the same way as it did in single-user mode, you would just know that it wasn't all yours. It would be like trying to make love to your wife, knowing she was simultaneously making love to six other people! ... There was an even more striking embodiment of the Hacker Ethic within ITS. Unlike almost any other time-sharing system, ITS did not use passwords. It was designed, in fact, to allow hackers maximum access to any user's file. The old practice of having paper tapes in a drawer, a collective program library where you'd have people use and improve your programs, was embedded in ITS; each user could open a set of personal files, stored on a disk. The open architecture of ITS encouraged users to look through these files, see what neat hacks other people were working on, look for bugs in the programs, and fix them. If you wanted a routine to calculate sine functions, for instance, you might look in Gosper's files and find his ten-instruction sine hack. You could go through the programs of the master hackers, looking for ideas, admiring the code. The idea was that computer programs belonged not to individuals, but to the world of users. ITS also preserved the feeling of community that the hackers had when there was only one user on the machine, and people could crowd around him to watch him code. Through clever cross-bar switching, not only could any user on ITS type a command to find out who else was on the system, but he could actually switch himself to the terminal of any user he wanted to monitor. You could even hack in conjunction with another user for instance, Knight could log in, find out that Gosper was on one of the other ports, and call up his program then he could write lines of code in the program Gosper was hacking. ... The faith that the ITS had in users was best shown in its handling of the problem of intentional system crashes. Formerly, a hacker rite of passage would be breaking into a time-sharing system and causing such digital mayhem maybe by overwhelming the registers with looping calculations that the system would "crash." Go completely dead. After a while a hacker would grow out of that destructive mode, but it happened often enough to be a considerable problem for people who had to work on the system. The more safeguards the system had against this, the bigger the challenge would be for some random hacker to bring the thing to its knees. Multics, for instance, required a truly non-trivial hack before it bombed. So there'd always be macho programmers proving themselves by crashing Multics. ITS, in contrast, had a command whose specific function was crashing the system. All you had to do was type KILL SYSTEM, and the PDP-6 would grind to a halt. The idea was to take all the fun away from crashing the system by making it trivial to do that. On rare occasions, some loser would look at the available commands and say, "Wonder what KILL does?" and bring the system down, but by and large ITS proved that the best security was no security at all. ...ITS was the strongest expression yet of the Hacker Ethic. Many thought that it should be a national standard for time-sharing systems everywhere. Let every computer system in the land spread the gospel, eliminating the odious concept of passwords, urging the unrestricted hands-on practice of system debugging, and demonstrating the synergistic power that comes from shared software, where programs belong not to the author but to all users of the machine. In 1968, major computer institutions held a meeting at the University of Utah to come up with a standard time-sharing system to be used on DEC'S latest machine, the PDP-10. The Ten would be very similar to the PDP-6, and one of the two operating systems under consideration was the hackers' Incompatible Time-sharing System. The other was TENEX, a system written by Bolt Beranek and Newman that had not yet been implemented. Greenblatt and Knight represented MIT at the conference, and they presented an odd picture two hackers trying to persuade the assembled bureaucracies of a dozen large institutions to commit millions of dollars of their equipment to a system that, for starters, had no built-in security. They failed."
- ChuckMcM 10y agoWow, what a walk down memory lane. Remarkable that my fingers remember things my brain doesn't :-). I first interacted with Richard Stallman on the MIT ITS system (I was a tourist) and was complaining/arguing about some compiler feature with him, and the guy next to me in the lab nudged me and said "You realize he wrote the compiler right?", talk about being embarrassed!
- qwertyuiop924 10y agoThere are still a few (emulated) ITS systems running online. In particular, there's UP, which you can SUPDUP into from your home machine, and even get an account on, if you ask nicely. Also, if you're interested in fiddling with ITS, and weren't around in The Good Old Days (as I was not), Björn Victor's ITS wiki (http://its.victor.se/wiki/ http://its.victor.se/wiki/) is an invaluable resource.
- larsbrinkhoff 10y agoSV is back online. http://its.svensson.org/ http://its.svensson.org/
- gravypod 10y agoThis is a little bit off topic but are there any "build your own" PDP-11 kits? Like single board systems using clone PDP-11 chips that would be fun to put together and write code for.
- jonatron 10y agoI tried making my own: http://jonatron.me/ http://jonatron.me/ which has a part list. Also check out the PiDP-8 : http://obsolescence.wixsite.com/obsolescence/pidp-8 http://obsolescence.wixsite.com/obsolescence/pidp-8 which is a kit. Also relevant is a Javascript PDP-11 simulator at: http://skn.noip.me/pdp11/pdp11.html http://skn.noip.me/pdp11/pdp11.html
- jasomill 10y agoRelating this back to the topic of OS history, it's interesting to note that PDP-11 was the original BSD UNIX platform, and that 2.11BSD for PDP-11 still receives occasional patches (the most recent one I can find is from March of last year). And as a former "home" MicroPDP-11/83 owner, I can attest that it was indeed fun to put together and write code for. With that said, while probably not what you have in mind when you speak of "single-board systems", the DEC Professional 3xx (325, 350, 380) is a desktop PC built around a single-board PDP-11 CPU. And most (all?) MicroPDP-11 systems are built around a Q-Bus CPU board, and, excluding bulky options like multi-port serial patch panels, open-reel tape drives, and large (around 150 lbs. and 6U for my 456MB RA81) hard drives, aren't much bigger than a modern full-tower or >1U rack server, though they require considerably more electrical power (generally not too much for a dedicated 120V 15-20A household circuit, however, unless kitted out with, e.g., more than one of the aforementioned RA81 disks). Both are "single-board systems" in the sense that the CPU, and in some cases RAM, is contained on a single board, though you'll need one or more I/O boards to do anything useful with them. Which, depending on your idea of fun, you could, I suppose, build yourself — there was, after all, a time when PDP-11 CPUs weren't an unusual choice in larger embedded systems.
- DonaldFisk 10y agoI wrote a couple of programs for ITS after it was resurrected. Tetris: http://web.onetel.com/~hibou/ITSter.txt http://web.onetel.com/~hibou/ITSter.txt Conway's Life: http://web.onetel.com/~hibou/life.txt http://web.onetel.com/~hibou/life.txt ITS page on Ward's Wiki: http://wiki.c2.com/?IncompatibleTimeSharingSystem http://wiki.c2.com/?IncompatibleTimeSharingSystem (Incidentally the correction to the wiki article in file names is wrong: file names were two words, each of six characters.) Steven Levy's Hackers (http://www.stevenlevy.com/index.php/books/hackers http://www.stevenlevy.com/index.php/books/hackers) contains the history of its development. More information on ITS, and how to run it, can be found at http://its.victor.se/wiki/ http://its.victor.se/wiki/ And coolest of all, someone's got a PDP-10 running ITS on a FPGA: http://fpgaretrocomputing.org/pdp10x/ http://fpgaretrocomputing.org/pdp10x/
- deleted 10y ago[deleted]
- mrbill 10y agoLooking at the "List of Known ITS Systems", one of them is listed with the owner as Dave McGuire. Dave's a friend of mine, and it lives at his Large Scale Systems Museum. There's a pic here: http://q7.neurotica.com/LSSM/IMG_4905.JPG http://q7.neurotica.com/LSSM/IMG_4905.JPG
- DonHopkins 10y ago"If you're not working with 36 bits, you're working with a full DEC." -Doug Humphrey
- DonHopkins 10y agoMIT-MC http://donhopkins.com/home/catalog/images/mc-console.jpg http://donhopkins.com/home/catalog/images/mc-console.jpg A CADR Lisp Machine spews its guts, on the 9th floor MIT AI Lab at Tech Square. http://donhopkins.com/home/catalog/images/cadr.jpg http://donhopkins.com/home/catalog/images/cadr.jpg The expression on Richard's face is saying, "I don't know, why do you wrap gerbils in duct tape?" http://donhopkins.com/home/catalog/images/jsol-rms-gerbil-liz-mg.jpg http://donhopkins.com/home/catalog/images/jsol-rms-gerbil-li...