PDP-10 Revival
Lars Brinkhoff writes: "Remember the PDP-10 mainframe, the machine that ran the first version
of EMACS and helped foster the Free Software movement? Now a company
called XKL, LCC is funding a PDP-10 port of GCC. There's also
a project to create
a PDP-10 processor in an FPGA."
http://www.catalog.com/hopkins/images/mc-console.
A CADR Lisp Machine spews its guts, on the 9th floor MIT AI Lab at Tech Square.
http://www.catalog.com/hopkins/images/cadr.jpg
JSol, RMS, the gerbil, Liz, and MG, at Kabuki in Cambridge. The expression on Richard's face is saying, "I don't know, why do you wrap gerbils in duct tape?"r bil-liz-mg.jpg
http://www.catalog.com/hopkins/images/jsol-rms-ge
-Don
Take a look and feel free: http://www.PieMenu.com
Actually, both VMS (up to the current version, 7.2), and FreeBSD (believe it or not!) support CTRL-T today, as you describe. Yes, it is very useful for seeing if a program is hung.
Of course, Linux and Windows do not support this feature (big surprise).
I suspect that the feature has gone out of fashion as CPU speed has gotten faster and there is generally less of a need to wait for batch jobs. That's no excuse not to support it, of course.
Well, there's somewhat of a hierarchy for 'hating'. The top of the ladder is PDP-10/DECsystem-20 people who hate VMS. Then VMS people hate Unix. In turn, Unix people hate Linux. At the bottom of the food chain, Linux people hate Windows.
At least some PDP-10 types bypass VMS hating and go directly to Unix hating. For example, Mark Crispin (the author of Pine) is probably the most militant Unix hater in the world, but seems to like TOPS-10/20 as well as VMS.
May I ask what you mean by "real OS". Could it be Windows 95?
No, I was thinking along the lines of ITS or TOPS-10. I guess you are really new to copmputers since (a) you don't know the native software of a PDP-10 and (b) you aren't aware of any OS'es besides Linux and Windows 95.
-Doug Humphrey (aka DIGEX), pissing off the Vax weenies at DECUS
-Don
Take a look and feel free: http://www.PieMenu.com
In any case, telcos tend to be *very conservative* about introducing new hw/sw, which is why they may still be using their tried-and-true PDP-10 packages. Which is also why I don't see what the point of "new software" written in C would be: if the telcos wanted to try new stuff, they'd be trying new hardware, too. Wouldn't they?
[
When I was an undergrad freshman/soph. year, i worked for a small molecule x-ray crystallographer (this was like 88..,89.. (postdoc now
-avi
The directory on the DEC FTP site is no longer maintained; the current simulator web page is here.
If you want to give it a try, get the DECsystem-10/DECSYSTEM-20 Processor Reference Manual from my web site. Prove me wrong! Please!!
You could equally well say that the PDP-10 was developed to support TOPS-10 and TOPS-20, and the VAX was not.
When the VAX-11/780 was shipped in 1978, although it had a larger address space (512 MB physical, 2 GB virtual), the maximum amount of physical RAM it could be configured with was 2 MB. This limit was later raised, but it shows that of the PDP-10s and VAXen available in the same time frame, the PDP-10 was clearly superior in most regards.
The KL10 benchmarked at more than twice the performance of an VAX-11/780 on most workloads.
Pretty neat how the 1975 machine was a significant improvement on its 1978 "successor"!
In fact, the VAX-11/780 performance was so disappointing that they had to cancel the PDP-11/74 (four-processor SMP version of the 11/70), because it was expected to be much more cost-effective than the VAX.
The complete system is called a DECsystem-10 or a DECSYSTEM-20, depending on whether it ran TOPS-10 or TOPS-20.
Your friend was much more likely talking about a small PDP-11. Even the big PDP-11s (e.g., 11/70) were not suited to running in extreme environmental conditions.
Isn't it strange to think that the computer that played a major part in starting the Free software movement never had what is probably one of the most important peices of code from that movement ported to it?
Just thought it was kinda interesting/strange...
The "fast registers" were optional on both the PDP-6 (166 processor) and the KA10. Reportedly no KA10s were ever shipped without the option.
Can you look up the part number (probably EK-something or DEC-10-something) and date? I've got the last version scanned on my web site, but it might be interesting to scan older ones for comparison.
You're probably thinking about the KA10, which operated asynchronously. This made debugging hardware problems easier, because if a pulse got lost the machine halted and you could examing the lights to see intimate details of what it was doing at the time.
By comparison, the KI10, KL10, and KS10 are more conventional synchronous designs. If a logic error occurs, they just keep chugging along. By the time anyone notices that something is wrong, the exact conditions that caused it are long gone. Just like your modern PC.
When we unloaded the machine we were somewhat pressed for time, but Mike Cheponis managed to take a few photos.
There's apparently another 2065 still running in a school district in or around Boston.
We (ADP Network Services) had a C compiler for it back in late '82 or early '83. We'd started doing some UNIX work on 8086s, liked it and C, and management wanted to know if we could back-port some of our C stuff to TOPS-10. BLISS-10 seemed kind of an existence proof that C was possible for PDP-10s. So fella named Don Wakelin ported one from (I think) a Harris mini. We picked that one because the Harris had 18-bit words and the PDP-10 had 36.
36 bit words, 18-bit word addresses, and bit-addressable memory made for a rather, er, idiosyncratic C compiler. We chose to use 7bit characters (a stock PDP-10 type), which meant each word had one bit left over. If you think the assumption that (sizeof)* == (sizeof)int broke a lot of programs, you should *see* what happens when characters weren't 8 bits and were immutably unsigned. For the record, most ASCII data on PDP-10s was stored as 7bit characters packed five per 36-bit word with one bit left over.
The only reason that worked well (and yes, it worked quite well) was because memory on the 10 was bit-addressable. It had these peculiar things called `byte pointers'. An 18-bit word address was stuck into a 36-bit word. The other 18 bits indicated the number of bits offset into the word, and the number of bits to be obtained on a fetch. Good byte pointer users could fetch 1 bit, then the next 5, then 3, etc, etc. Brought a whole new level of complexity to incrementing your pointers. Most folks just used them for characters, tho, setting fetch size to 7. Machine-level instructions did the heavy lifting on pointer incrementing - take code like
char *i = "abcefg" ;
;
char c;
c = *i++
The first line caused a byte pointer to be created with the address of the word containing the start of the string. The offset was 0, the fetch size was 7. The last line was done with just two assembler instructions. One fetched 7 bits from the address pointed to into a register and incremented the offset portion of the byte pointer by seven bits; the second just stored the register contents into the variable c. After you fetch the fifth character using i, the auto-increment instruction added 1 to the 18-bit address and reset the offset to 0.
Address zero was addressable -- it happened to be register zero. In fact, all the registers were addressable as 0-15. But when the null pointer successfully loaded and stored data, programs did a whole 'nuther set of interesting things.
Another fellow at ADP successfully headed a project to port University Ingres to TOPS-10. He told the most amazing horror stories for years afterwards...
And will the true story ever be told of PDP-10 follow-on machine, the Jupiter? It was supposed to be a truly huge (for the day) PDP-10, intended to compete with the IBM System 370. It was constantly started and cancelled and started and cancelled. We (ADP) finally concluded that it was just a feint so we wouldn't switch to some other hardware before DEC got the equally-late Venus project done. When Venus finally did ship, DEC called it the VAX. At an East Coast SF convention in the late '80s I bumped into someone wearing a faded `36 bits forever' t-shirt. When I asked what happened to the 10 projects, she refused to answer and looked *really* pissed.
There have been a number of PDP-10 clones built over the years, at least two companies are still making them. One of them is the company sponsoring the port; big surprise, eh? The target customers are folks who wants to run TENEX (UNIX-alike for PDP-10s) or ITS (Incompatible Timesharing System), MIT LISP refugees, and hardcore TOPS-10/TOPS-20 sites, maybe including ADP.
but I'm not sure where the money would come for such a thing, and of course we are all so paranoid with our script kiddies and suchlike that there may be no room in the world for the ITS culture anymore.
:-(.
Sad, that
D
(former ITS user many years ago).
----
Well, TOPS-20 probably had the most user-friendly command line around, although I understand it made even simple command line utilities a bear to program. Its cool interface lives on in Cisco routers, so you could say it's had a better run than most people remember.
Tis true that many of the ideas were replicated in Bash and other shells, but for some reason I never felt they had as cool a feel as TOPS-20 or Cisco.
Unix is a toy, but that's its greatest strength, actually: It can be disassembled and reassembled into anything you want. That's why it survived instead of TOPS-10, Multics or Lisp Machines, all of which I've used and (at the time, anyway) preferred to Unix.
I actually don't quite understand Lisp machine nostalgia - when I used one in the late 70s, it was slow as a pig. I hate to be anti-trendy, but I actually preferred using the old AI PDP-10 at the time.
D
----
in their day I think the TOPs guys hated the VMS guys more - because the vax ended up killing the 10/20 line and both groups were kind of competing for DECs internal R&D attention - back then Unix was a bit of a side show - its 'rise' sort of happened just about the time the 10/20 line was axed so there wasn't a lot of overlap
It seems like anything anyone does these days that doesn't serve a useful purpose gets this bewildered response. I don't understand what could prompt that kind of thought. I think it is the same sort of people that run Gnome because they think Athena is "ugly" (what's ugly about it? boxes and text... how ugly can that actually be?).
I am not saying I think this whole "why" thing is necessarily bad. I just don't get it. It sounds fun to get gcc working on a pdp. It's like Doom on a digital camera; it's funny, it's art; it's a good time.
More, better, faster, that's cool; I like that stuff too. Still, part of me wants to write a tcp stack for my trs-80 model 100.
Is that really so wrong? Besides, it will harm many fewer people than adding skin support to every program on the desktop.
You mean the paper that starts out with "There have been three versions of UNIX. The earliest version (circa 1969-70) ran on the Digital Equipment Corporation PDP-7 and PDP-9 computers."?
The first version Ritchie was involved with might've been one of the PDP-11 versions, but the very first UNIX was on the PDP-7 (the -9 was compatible with the -7; both were 18-bit machines, along with the -15).
Well, they were originally called PDP-10s; I guess the DEC marketoons (or should that be "Digital marketoons"? :-)) decided to change the name, maybe because "PDP" was what they called minicomputers, but the '10's were Systems or something such as that.
TENEX, and its twin TOPS-20, were way cool. Compared to Unix, it's like the difference between driving a Mercedes and driving a Willys Jeep.
__________________
No-one thinks only Microsoft lackeys hate Unix, except for inexperienced newbie B1FF3R5 who've never used anything but Linux, so they don't have anything to compare it with.
You shouldn't be using Linux if you don't know what sucks about it. The same goes for Windows or any other operating system.
http://www.catalog.com/hopkins/unix-haters/handboo k.html
http://catalog.com/hopkins/unix-haters/etc/magoo.h tml
http://catalog.com/hopkins/unix-haters/whinux/your -time.html
-Don
Take a look and feel free: http://www.PieMenu.com
because it was a 36bit machine, it was particularly good for LISP, or better than the alternatives. Because you could divide a 36bit word into two 18-bit pointers, you could implement a LISP cons cell in one word, and thus handle cons cells fairly quickly. The same hack with competing 32bit machines, 16bit ob references just didn't provide a big enough data space.
The PDP-10 had its registers mapped into memory as the first 16 words starting with 0. But, being registers, they were really fast. So the text editor TECO (daddy to EMACS) would "compile" a search command into a tiny little program stored in the registers. Executing the code in the fast registers made for really quick (for the time) text searching.
They weren't lightening -- but they scaled well.
They ran TOPS-10 or TOPS-20 and did real nice SMP with more than 3 cpu's supported (even back in the old days).
I guess they were in the 1 mips range (KL10) or less (KA cpu, KI cpu, KS cpu) -- but with much more load handling than the 11/780 which really was less powerful than the KL10.
The TOPS-10 and TOPS-20 operating systems (both were available for the PDP10) were easy to use, friendly and WAS NOT UNIX like in the slightest.
They handled a ton of timeshared users efficiently and reliably and made IBM take notice of timeshared use. The OS was written in Macro10
(macro assembler) and the instruction set was RISC-like.
Microsoft did most of it's development cross developing on this CPU type. (As did DEC -- which used them for emulation of new CPU designs and for cross development of software for the PDP8 at times).
GCC would be interesting -- remember this isn't just another a POSIX box.
This is the CPU where EMACS really was born as editing MACROS for TECO (Tape--er Text Editor and Corrector).
Had Kernighan, Thompson and Richie gotten one of these they wouldn't have developed Unix in the first place.
These machines were used as some of the first machines on the internet. They were heavy crunching boxes at Western Electric for engineering time sharing.
Rutgers University had three that I knew of,
Columbia, Rider College, Johnson and Johnson...
These were CLASSIC Machines.
See alt.sys.pdp10.
--Bill
CTRL-T was a godsend to me twenty some years ago. If you are trying to do simulations of landslides and load shearing, it's very useful to know whether the system is hung or if it's just your poorly written program that is running slowly.
Indeed. Linux sucks... but it sucks less than any of the other options. Depending on what you're doing, of course.
Torrey Hoffman (Azog)
Torrey Hoffman (Azog)
"HTML needs a rant tag" - Alan Cox
Of course, UNIX does have lots of problems. Unfortunately, many of the complaints in the "UNIX Hater's Handbook" are not even particularly interesting because they reflect more the lack of experience of the contributors with UNIX than any interesting shortcomings. For insightful UNIX criticism, don't bother with the "UNIX Hater's Handbook".
Furthermore, while the contributors to the "UNIX Hater's Handbook" like to complain a lot, I haven't seen much coming from them to actually improve the situation. Maybe Don can provide some links to that kind of work, rather than promoting his book?
Oh, heck, I wrote a PDP-8 emulator that ran on the PDP-11. It was faster than a PDP-5 (the PDP-8's compatible predecessor).
... sorry, it's not available, I wrote it 28 years ago.
I'm not kidding
This compiler made it onto a DECUS tape. However, since it predated ANSI-C, it doesn't implement ANSI, but only K&R. Not a bad compiler for its time and it launched Greg's career. He's been a compiler guru ever since then.
Warner Losh
If you're not part of the solution, you're part of the precipitate.
Not very. The PDP-10 had magnetic core memory, which means it could not have cycled much faster than 1 MHz. It also did not have modern features like pipeline caches, etc. all of which would have required an astronomical number of the low density silicon chips available at the time. I used a DEC System 10 at university. It had a massively multiplayer (by those days' standards) Star Trek game called DECwar. If you have ever played the original text-based Star Trek game you know what this looked like, otherwise you cannot IMAGINE how primitive it was; yet the engineering students would spend hours after hours playing this thing. Simple as it was, with a few dozen users on the system the task-switching delays were *very* noticeable. IIRC the our mainframe had 256K of RAM, then considered an astronomical amount, and the 5-30 Mb "layer cake" cartridge hard drives someone else mentioned. It was in a glass room so you could ogle it and the observant priesthood of the computer dept who serviced your Hollerith card batch jobs. It was 6 or 7 cabinets, several with rows of incandescent pilot lights displaying the current address and register. You could, with practice, learn to interpret those flickers and tell how fast it was switching jobs and whether one job was hogging the machine. It was that slow. It would have been much slower if programmed in today's style. But almost all DEC software was written in a macro-assembler style language which resulted in very efficient code. Although the basic core was RISClike most of those old CPU's all supported processor extensions in the form of cards added to a rack, which could actually add microcode and new registers to the CPU. (Not at all like the FPU on an x86, which is more like an outboard processor.) Yep, those were the days; when you signed up for class you were allotted a certain number of seconds of computer time and if you used them up (difficult, but possible) your account shut down automatically. The CPU actually kept track of your real usage as tasks were swapped, and the OS bailed your app if it looked like it had gotten hung in a loop or something. And then there was the joy that is FORTRAN -- such a great language that I used to prewrite and debug everything in BASIC before converting it over. Yep, definitely memories to savor as I pat the side of my 450MHz pentium.
Brackets contain world's first nanosig, highly magnified:[.]
The last PDP10 that was actually being used was removed from service 3 years ago. who will use this version of gcc? isn't the effort better spent somewhere else?
on another interesting note, i saw a PDP10 programming manual direct from DEC in a used book store a while ago and couldn't resist picking it up. i'm sure i'll be able to sell it on e-bay as a collector's item in a few years. or, hey, wait. maybe i could sell it to the gcc devlopers! hmmm....
I'm having difficulty understanding why this project is underway. Sure I can understand doing it for nostalgic reasons, but there is'nt a market demand for it (Not to my knowledge). I havent heard of many companies running PDP-10s who need to backwards compatibility with old apps. From what I understand the PDP-10 had a rather primitive instruction set.
Maybe Im off my rocker. On the other people are porting to the Commie64, and Amiga (of course those are brilliant platforms... Anyway
While it isn't a PDP-10, I did help write a PDP-11 emulator, assembler and debugger.
check it out:
http://www.csc.uvic.ca/~rrabien/
oh ya, it requires unix or linux, open source too.
Don't you get it? Let me give you an example. TWM is a perfectly good window manager. Why would anyone use anything else, and why waste developers time working on anything else? Perl is a perfectly good programming language, why are people wasting their time with Python? FreeBSD is a perfectly good OS, why waste time on Linux?
Because it's fun. There's no better reason to do something, and of all people, I would expect the Slashbots to understand this.
From http://www.catalog.com/hopkins/unix-haters/handboo k.html:
"With Forward by Donald Norman, Apple Computer".
The same people that use a UNIX variant in their new OS....Now that is irony ;)
"Mary had a crypto key, she kept it in escrow, and everything that Mary said, the Feds were sure to know."
This is a demo TOAD-1 from XKL, alive and well. Someone please mod down that "PDP-10S ARE DEAD WAAAAAH" guy already. kthx
I just used an XKL TOAD-1 a few seconds ago (but it's been a while since I last logged in, but notice how long it's been up):
telnet xkleten.paulallen.com
Trying 204.202.80.66...
Connected to xkleten.paulallen.com
(204.202.80.66).
Escape character is '^]'.
XKLeTen - Tops20 for the Wired World, TOPS-20 Monitor 7(102400)-1
@finger
User Personal name Job Subsys Idle TTY Console location
??? 9 FINGER 25 Internet: [216.218.252.130]
@login a2deh
Job 9 on TTY25 17-Jan-2001 2:51PM
Previous LOGIN: 11-Dec-1998 4:30PM
You have mail from Mailer at 14-Dec-1998 5:04PM
XKLeTen@ finger
User Personal name Job Subsys Idle TTY Console location
A2DEH 9 FINGER 25 Internet: [216.218.252.130]
XKLeTen@ sysTAT
Wed 17-Jan-2001 14:55:23 Up 931:34:02
1+6 Jobs Load av 0.01 0.02 0.01
Job Line Program User Origin
9* 25 SYSTAT A2DEH (216.218.252.130)
1 1 OPR OPERATOR
2 2 NETSRV OPERATOR
3 3 RESOLV OPERATOR
4 4 MMAILR OPERATOR
5 5 EXEC OPERATOR
6 6 MAILST OPERATOR
XKLeTen@
Paul Allen and Bill Gates used to hack on DEC-10's, so Paul Allen has set up a nice TOAD-1 for old times sake. Here's some more info on the TOAD-1: configuration and physical specs.
-Don
Take a look and feel free: http://www.PieMenu.com
The PDP-11 is much different - it's a "mini" and was a LOT cheaper than the 10. In fact, several of the PDP-10's used 11's as front ends. (from the development site)
I saw about four MicroVaxen (I don't know if they were the II or not - big boxes, though) down at Apache Reclamation here in Phoenix. They were all wrapped in plastic, and looked nearly brand new. On top of each was what I guess was a system console - a TRS-80 Model IV...
I wished I could have bought one of those, but at the time I was in an apartment, and it would've taken up my entire office. That, and the fact that I had no way to unload it off my truck...
Worldcom - Generation Duh!
Reason is the Path to God - Anon
Lately there's been a lot of debate over RH7, and the inclusion of an unfinished gcc compiler in it. Even Linus Torvals has been bashing RedHat for doing so. RedHat's answer was, that they were trying to get an up-to-date compiler and couldn't wait for gcc 3.0 to ship. And now somebody want to spend a bunch of money porting it to an - to my knowledge - ancient machine, why?
;-)
Wouldn't it be better pushing some money in to the development of gcc 3.0?
Or did I miss a point somewhere?
The PDP-10 was most definitely a mainframe, or at least it was by far the largest computer that DEC made, and it was made expressly to compete with IBM in that space. It has nothing to do with the PDP-11 or -8, which were mini's.