The TL;DR is that the VAX was the first and most powerful line of 32-bit computer systems ever developed, the culmination of 20 long years of work by the world's best team of computer scientists (at DEC) competing day and night against the world's second best team of computer scientists (at Data General). On a technical level, the VAX platform came under attack when Sun Microsystems (now Oracle) brought out the more limited, but much faster, RISC-based SPARC architecture (that no CISC based architecture, even the VAX, could compete with) running UNIX (that lacked decades of advancements made by the VAX's operating system, VMS). DEC's elite team responded to Sun's SPARC with its 64-bit Alpha architecture, but DEC was allegedly betrayed when DEC showed Intel the design for its new Alpha chips so that Intel could evaluate whether to become a "second source" producer of Alpha chips and their revolutionary new design wound up in something called the "Intel Pentium Pro" that suddenly and unexpectedly revived the all but dead 808x architecture (that even Microsoft had spent millions porting Windows away from). Intel has been unable to create a viable successor so today we have 11th generation Core i9 whereas even Apple has moved on to its own chips (that ironically are licensed from what is the descendant of DEC's other architecture, called StrongARM). DEC's lead operating system engineer for the VAX (Dave Cutler) had already jumped to Microsoft and suddenly Microsoft now had access to an 808x-compatible chip as powerful and scalable as DEC's proprietary Alpha chip and the rest is history. While DEC settled the allegations against Intel, DEC never really recovered financially and wound up being acquired by Compaq and destroyed by the CEO of its long time nemesis HP, as HP acquired Compaq.
(Intel) "second source" producer of Alpha chips and their revolutionary new design wound up in something called the "Intel Pentium Pro" that suddenly and unexpectedly revived the all but dead 808x architecture.
No. The Alpha was a RISC machine. The Pentium Pro was a demonstration that, with 3000 engineers at peak, you could actually get several instructions per clock out of x86. It was the first real superscalar microprocessor, one where what the CPU is doing inside is very different from what the programmer sees as the instruction set.
The VAX was a classic CISC machine. Way too complex an instruction set.
Amusingly, x86 turned out to be a good instruction set for superscalar machines. Not too many registers, so context switches were not so bad. Variable length instructions, so you didn't get "RISC bloat", which tended to double the size of code and cause cache misses. The fast but dumb one-instruction-per-clock RISC CPUs were outclassed by superscalar x86. You can build superscalar RISC machines, but once you've added a few hundred million transistors of superscalar logic, you've lost any simplicity advantage RISC offered.
Intel settled the lawsuit (over DEC's Alpha tech winding up in PentiumPro) by agreeing to purchase DEC's Hudson division (that produced Alpha and StrongARM chips).
Not sure what dates the history books say (never had time to read them because, you know, living it), but Pentium Pro was known to exist well before 1995. Even Intel had been pushing their two other processor lines, the i860 and the iAPX 432, as "successor" to the ailing 808x and, as I wrote in the post, Dave Cutler's Windows NT team at Microsoft was buy getting their bits running on MIPS and other processors (out of fear that they would be blown off out of the water by Unix running machines much faster than the 486/586-aka-Pentium processors).
It's okay, Linux and guys like Mad Dog eventually got 'em (with license-free hardware-neutral software), though Apple (and the M1) are getting the last laugh.
ARM was originally Acorn RISC Machines, a spin-out from British computer firm Acorn, who set it up in conjunction with Apple (who wanted a low-power RISC cpu for the Newton): Acorn produced the RISC PC as a successor to the BBC Model "B" family of 8-bit 6802-based micros that were popular in the UK, but failed to compete effectively against Amiga and Atari ST or to move up into the workstation market. In the end, Acorn ended up supplying TV set-top boxes and faded out. But ARM exists to this day, and they are the folks who license the ARM instruction set to customers including Apple.
SPARC had nothing to do with ARM, but was entirely Sun's own RISC project, and an attempt to find a way off Motorola CPUs (which powered Sun's earlier workstations).
ARM cores today descended from StrongARM, which was a joint venture between DEC and ARM. What I said was that DEC's Alpha project was a response to SPARC to save the VAX market. The StrongARM project was unrelated.
Near the end of the 1970s, DEC PDP-11 customers were reaching the limit of what the PDP-11 architecture could support: PDP-11 is a 16-bit architecture: the first generation could address a whopping 56kb of memory (the top 8kb of the memory map was for I/O). Over time, extensions were added to extends that out to 18 bit addressing, and finally 22 bit, for a total of 4Mb. But programs could still only directly address 16-bit chunks at a time, and would have to twiddle the memory management hardware to access other chunks.
VAX was the "Virtual Address eXtension" to PDP-11, which was released right around 1979/1980, was a 32-bit architecture, and additional processor instructions. VAX ended up being a much different beast, but you could still see that it was extended from the PDP-11 platform. DEC made a lot of tooling to make the transition from PDP-11 to VAX as smooth as possible for developers- they provided compilers that were source-compatible, etc., for FORTRAN, COBOL, C, BASIC, etc.
Don't forget the PDP-10! Though Lisp originally lived on an IBM 704, a lot of Lisp work actually got done on Maclisp for the PDP-6 and PDP-10. Maclisp was one of the progenitors of Common Lisp, and we are still mining the rich vein of computer science that Lisp provided. Most notably, garbage collection was popularized by Java and is used in almost all but the most resource-constrained or timing-sensitive applications today, but it originated as a way to automatically reclaim memory for memory-hungry Lisp applications.
Gordon bell specifically designed the PDPD-6 and especially the -10 for Lisp: the machine word is a cons and many lisp primitives are machine instructions.
you have something similar on the 8080. Each register on 8080, like ax, can be accessed as al - low eight bits and ah - high eight bits. But what would be the utility of an eight bit car and cdr?
I think it's important to remember our cousins at Data General and their Nova and Eclipse series too. DEC and DG had the best groups of computer scientists the world has ever seen in one place and I don't think PDP11 or VAX11 would have come out so good without such stiff competition from DG Nova and Eclipse. (Youngling computer scientists, mandatory reading "The Soul of a New Machine".)
Also, modern people should realize that electrical interfaces on old 1960s-70s mainframes were almost always locked down by license agreements (as in "touch the backplane in an 'unapproved way' and your institution could be charged thousands of dollars in 'service' fees.”) With mainframes locked down and costing so much money to operate, one couldn't exactly do anything particularly exciting with them beyond mundane information management tasks. ALL of the real action, including creation of UNIX, C-Language, controlling the public phone system switches, aerospace platforms, laboratory c&c, numerical control, industrial process automation, etc. was happening on "mini" computers that were relatively cheap, could be electrically interfaced to almost anything, impacted less users during system-level operations and (usually) were pretty easy to fix.
But IBM, CDC, Burroughs, Sperry, etc. had no real financial interest in creating "mini" computers, so employee spin-outs like DEC and, in turn, Data General happened. In DEC's case, they grew so successful they even tried to produce a couple of their own "sub-mainframes" like the PDP-6/10/20 (aka DECsystem10/20 series), but their core competency was hardware-level computer science until the VAX.
The VAX (and DG Eclipse) came in as the 1970s were ending, because IBM and other mainframe manufacturers were flying “too high” on sales that supported "information technology" needs, but DEC and DG were seeing erosion from VLSI-based microprocessors sold by Motorola, RCA and Mostek. DEC responded with LSI-11 but also divestiture to a new class of computers, decentralized systems that would ultimately be called "departmental computers" that could network with each other and thereby eliminate (or at least supplement) the need for expensive big iron mainframes. With newer and better PDPs in tow, DEC began to tear into IBM's mainframe market with cheaper and cheaper VAXen.
(Unfortunately, a kid named Bill Gates was dedicating himself to enable microprocessor-based computers to do the same to the VAX that VAX had done to mainframes, ironically using an old PDP-10 at Harvard to prototype his code…a decade or so later leading to DEC being acquired by Compaq and then destroyed by the mismanagement of Carly Fiorina.)
The Soul of a New Machine is still one of the best books about product development ever written. (Showstopper about Windows NT is very good too,)
I was a longtime hardware product manager at DG starting a few years after the events of "the book" as it was called. I knew a lot of the people involved and even dotted-lined into Tom West for a while when the first x86-based NUMA servers were rolling out.
> But IBM, CDC, Burroughs, Sperry, etc. had no real financial interest in creating "mini" computers, so employee spin-outs like DEC and, in turn, Data General happened.
In what sense was DEC an employee spin-out from any of the mainframe outfits?
Wasn't, really. DEC founder Ken Olsen had been MIT's liason to IBM during the SAGE project (a massive air defense warning system that had been prototyped by MIT's Whirlwind project), but I don't think he ever worked for them directly.
In the sense that DEC's initial commercial offerings were "vendor unauthorized" boards for IBM mainframes and DEC hired a good many IBM employees. IBM eventually went after them for it.
From my perspective, Ken and his Pinto were the antithesis of everything IBM and we loved him for it.
I thought (and it's a long time ago) that DG was essentially the core of the internal DEC group that were trying to make a successor to the PDP-8 who lost out internally to the group who designed the PDP-11
Oddly enough the ability to tinker with microcomputers at a hardware level was career changing for me, though not necessarily in a good way. In high school, I was interested in electronics and programming, and my mom subscribed to Byte Magazine. "Ciarcia's Circuit Cellar," a series about hardware hacking was just inspirational.
But then the college that I attended (starting 1982) had a very traditional and conservative computer science department that revolved around the campus mainframe computer. It seemed boring. I also had a summer internship at a computer facility with a big mainframe. Boring.
The people who were doing what seemed like cool stuff with computers were in the physics department, hooking computers up to experiments and actually doing things. The math department went along for the ride, getting personal computers on the recommendation of the physics profs. I ended up majoring in math and physics as a result of this.
Of course computer science has come a long way, but that was how I saw it from my tiny isolated vantage point so many years ago. I missed out on the huge market growth for CS, though I've had a pretty good career anyway.
> “A microcomputer is a computer whose processor is a microchip: a single integrated circuit containing the whole processor.”
Small thing, but to have that finally explained after all these years… I never knew the explicit difference between a minicomputer and microcomputer for some reason.
It was a bit more than that. At the time, chip technology wasn't at today's level; you couldn't put a 32-bit (or, originally, even 16-bit) system on a single chip. So micros were much less capable than minis. A mainframe was a computer that could run a company, with both the price and the performance to match. A mini wasn't that costly or that powerful, but it could run a department. A micro wasn't powerful enough to even do that, but it was much less expensive.
So, yes, it was "single chip CPU", but that correlated with a bunch of other things...
Yeah - and when the first single-chip CPUs were made, they were extremely cut-down. Forget about TLBs and operating modes - the intel 4004 didn’t even have hardware interrupts! They had to dispense with any kind of interrupt-driven IO and instead had to poll hardware.
It was a big challenge getting an entire CPU on a single chip back then. Arguably, every single microprocessor from the 4004 to the 386 was just restoring features that the minicomputers originally had.
Yeah, it wasn't that clear cut. After all, earlier micro CPUs like the 8088 had optional external floating point units. In general, memory management was integrated with the CPU early on in micros whereas it was a separate chip in mid-80s mini designs I'm familiar with. I/O was pretty separated out in both cases at that time as well.
The distinction is probably more around Andy Grove's horizontal stack of "commodity" microprocessors, OSs, etc. vs. the vertical stack of the micros where one company mostly made everything.
> In general, memory management was integrated with the CPU early on in micros whereas it was a separate chip in mid-80s mini designs I'm familiar with.
Memory management didn't make it into micros until the 386 generation. (At least on-chip memory management didn't.) In terms of this discussion, that's pretty late.
I’ll disagree because the 286 systems have quite a capable MMU - capable of running demand paged 286 System V Unix. Not that 64K segments were ultimately that useful as systems grew. But a better MMU than any PDP-11 for sure.
My understanding is the 286 had a limited MMU on board, with memory protection based on 64K segments. Some other CPUs, like the Motorola 68020, did require separate MMUs.
I had a colleague who did some work on PDP-11 on his early career. Excited, I asked "So you were using C (language) there?" "No, it's too early" He told me, kind of dismissively. In retrospect it was obvious - The PDP11-based Unix of the Lion's Book [1] was what I had in my mind, but that was probably more like an academic pursuit than a foundational OS of commercial software.
They were interesting beasts, with several personalities. One was a menu driven office suite with a word processor and I think a P-system Pascal arrangement. There was some kind of RSX11 underneath, with ratfor, macro-11, and DEC flavored C with $ identifiers.
Edit - Oh and I think this was one of the machine families DEC would sell where the difference between models was only the glue in some of the expansion slots of the cheap models.
> This OS and its shell later inspired Digital Research's CP/M OS, the first industry-standard OS for 8-bit micros.
The irony here is that MS-DOS was routinely derided for having "stolen" from CP/M. Having used the PDP-10 and PDP-11 before CP/M, I knew that CP/M was based on DEC's ideas.
As a 60+ year old programmer who's pretty familiar with writing code for PDP-11s (down to device driver level) I'm interested in the link from PDPs to CP/M, which (as with MSDOS) I've also written for at a low level. While the link from CP/M to QDOS/MSDOS is clear to me, the jump from PDP11 trap instructions to CP/M's BDOS invocation is less clear. Is is the general idea of system calls/returns, or a deeper connection I've missed?
What I remember reading is that Gary Kildall was a big RT-11 and OS-8 user and so it's more that the shell/command line was patterned after some things he was familiar with there. I don't think anybody has made the claim that CP/M's internals were patterned off of PDP OS internals as much. More interface conventions.
I didn't know that; having RT-11 at work and running CP/M at home, there was a 'sort of' similiarity there but not like the same kind of underlying structure between CP/M and DOS (hence the reason I was asking). Thanks!
I'm also a 60+ year old programmer (let's make that 60++), but I'm not clear what you are asking. I was quite proud of a Forth-like language I wrote using CP/M (Wordstar, assembler) back round about 1980 - but once it was loaded into memory (via CP/M) it didn't use CP/M BDOS at all, system calls or trap instructions.
Direct memory access, BIOS (such as it was). I was actually toying with a version that would be fully CP/M hosted, so that it could read and write CP/M files but then I got a proper paying programming job - previously I was a microbiologist, moonlighting, and who could resist the delights of a DecSystem10? And then an IBM 4381?
CP/M could probably be fairly described as "heavily inspired" by the likes of TOPS-10, right down to borrowing some command names and some architectural ideas.
DOS 1.0 could probably be fairly described as a CP/M clone -- it was intended to be binary compatible basically, such that translated (perhaps automatically - the 8086 had similar compatibility goals) 8080 CP/M programs would run directly on DOS without much if any change.
The PDP-10 - and TOPS-10 - were also used by Gates and Allen (and Davidoff) to write their version of BASIC.
The lineage is more like OS-8 -> TOPS-10 -> CP/M -> DOS, although TOPS-10 did a lot more than CP/M etc because it was running on a small mainframe and not a micro.
PDP-10s were also one of the foundations of ARPANET. And also used in early AI research. And also an influence on RMS.
There was also a separate TOPS-20 lineage. TOPS-20 was the successor to TOPS-10 and (more or less) the anti-UNIX. It was designed to be as friendly as possible with command completion and other niceties like versioning and a kind of trash can - although it was quite verbose and had some strange command names of its own. (Like EXPUNGE.)
Some of the philosophy of TOPS-20 made it into VMS. Cutler famously hated UNIX, but by the time he was done with NT the remains of VMS had been thoroughly Microsofted and it was hard to see any of the TOPS-20 lineage left in the UX.
DEC shot itself in the kneecaps when it killed the PDP-10 line in 1983 and went all-in on the VAX. The VAX was a perfectly fine computer, but culturally it wasn't in the same space. PDP-10s were almost proto-Macs in the mainframe market - very popular with academics and creative researchers.
The VAX felt more like a functional but unexciting proto-PC product. A lot of PDP-10 customers - and not a few PDP-10 engineers and developers - never forgave DEC for the move.
> The lineage is more like OS-8 -> TOPS-10 -> CP/M -> DOS, although TOPS-10 did a lot more than CP/M etc because it was running on a small mainframe and not a micro.
Gary Kildall had experience with a bunch of different DEC systems, definitely PDP-8s running OS/8 and PDP-11s running RT-11, he may have had some experience with PDP-10s as well. I would say he more took ideas from DEC operating systems in general rather than copying any one of them in particular, but if people want to cite particular ones, OS/8 and RT-11 are mentioned more often than TOPS-10.
He also used IBM VM/CMS at the Naval Postgraduate School, which is arguably where CP/M gets drive letters from – CMS uses single letters to identify disks, DEC operating systems generally used multi-character device names like DL0: or RKA0: instead.
> Some of the philosophy of TOPS-20 made it into VMS.
Can you give a specific example of this? VMS was mainly influenced by RSX-11. What did it get from TOPS-20 that it didn't get from RSX-11?
I don’t think DEC had much choice other than to kill the PDP-10 at that point. It was obvious that the non-legacy software world wasn’t a 36-bit one and never would be again. It was obvious it was taking increasingly incompatible hacks to extend the base 18-bit memory addressing (various combinations of magic segments). And while some may disagree, it wasn’t easy to make that architecture fast, hence the long standing performance plateau (the version codeveloped w VAX8600 never fully worked and XKL is only a proof of a faster system in much later technology but still much slower than other current CPUs). Nostalgia takes no prisoners.
Well IBM wanted CP/M, but couldn't get DR to talk to them, so they ask Bill Gates if he could do something. Between Bill Gates already knowing CP/M (he wrote the basic that everyone used including on CP/M systems) and IBM wanting CP/M it isn't a surprised what inspired MSDOS 1.0.
Except that Microsoft didn't write DOS 1.0; they bought it. It was a relabeled version of a CP/M clone originally called QDOS (quick and dirty OS) that was written by Tim Paterson, for a company called Seattle Computer Products, reportedly in about six weeks.
I was wondering why the PDP 10 wasn't mentioned in the article, it's historical significance is unquestionable (some of the first computers on the internet...).
I saw the comment earlier and this post today. However this paragraph confused me both times, so perhaps needs some editing:
So the PDP-7, PDP-8 and PDP-11 directly influenced the
development of CP/M, MS-DOS, OS/2, Windows 1 through to ME.
A different line of PDPs directly led to UNIX and C.
It is well known that Unix was written on a PDP-7, then PDP-11. In fact a few paragraphs above the post states the same thing. So, not a different line, unless you count a subset as that?
Wow reading this "The most significant minicomputer vendor was a company called DEC: Digital Equipment Corporation." Made me feel old. In college circa mid nineties SGI and DEC machines used to be the big machines. Both companies are gone.
I wonder if it is still possible to buy systems branded SGI. I guess HP owns the brand now, but it has been through a couple acquisitions at this point, so it would be a real zombie brand at this point.
Yes - nothing of interest left, apart from some very old patent troll lawsuits.
IMO it's more interesting just how dated the technology is. DEC and SGI made huge super-expensive machines (by modern standards) and I'm typing this on an iMac Pro which is somewhere between 1000 and 10000 times faster than a VAX 11/780 and would easily leave an SGI Octane in the dust.
Even knowing Moore's Law, I don't know how many people expected that kind of progress back in the 80s or 90s.
> I'm typing this on an iMac Pro which is somewhere between 1000 and 10000 times faster than a VAX 11/780 and would easily leave an SGI Octane in the dust.
Now just imagine what a modern SGI Octane with all its custom silicon implemented in 10nm, with a modern MIPS processor built with modern technologies could be, every component finely tuned to work with all others into perfect coordination.
How would it compare to a PC assembled from generic components?
I hope that technological symphony is again reached when shrinking nodes is no longer a cheap escape hatch. It seems like we'll soon be there if we aren't already, but increasingly exotic and expensive fabrication methods have been delaying that for much of the last decade already.
I suppose when '7nm' and smaller processes are economic enough for non-primary CPUs, hopefully also with rad hardened designs ready for use in the new space age, there will be interest in making both basic compute SoCs already optimized like this, and supercomputers constructed from variations on the same components.
The 6800, 6502, 6809, 68000 and ARM instruction sets were all heavily influenced by the PDP-11.
The auto post-increment/pre-decrement addressing modes of the 6809, 68000 and ARM exist on the PDP-11.
The set of 2's complement branch instructions and related flags for all of them is pretty much exactly the same (well 6502 does not implement the full set).
It didn't have to be this way- for example, the instruction mnemonics could have been the IBM 360 ones..
Even x86 was basically a glorified, oversized and rather inelegant clone of the PDP-11. Though most of the inelegance was a concession to practicality, or backwards compatibility. (Do you really need the complexity of memory-memory moves?) Or maybe they modelled it after the VAX. Hmm. Intel's employees would have been using some VAXen at the time they designed the 8086. Anyway. Very similar. Both by mnemonics, and the general architecture.
This is the start of a decompression routine for LZSA compression for both architectures. (I don't think the PDP-11 code was even modelled after the 8086. Just convergent implementation?) Source here: https://github.com/emmanuel-marty/lzsa
The only difference of note is the PDP-11 doesn't have string array operations (but it doesn't really need them with addressing modes like (r1)+) and so does an explicit check for end of input, that is implicit on the x86 before it loops back to ReadToken. Otherwise there is a near one-to-one translation of each instruction, often with the same mnemonics.
ReadToken: .decode_token:
movb (r1)+,r0 mov ax,cx
mov r0,r5 lodsb
mov dx,cx
bic #177617,r0
beq NoLiterals
asr r0 mov cl,4
asr r0 shr al,cl
asr r0
asr r0
cmp #7,r0 cmp al,07H
bne m1 jne .got_literals
... ...
With that said, they had similar design goals. Minimal (but not minimalist) hardware requirements, compact and expressive instruction set suitable both for direct assembly programming (as that was still dominant in the 70s) as well as a tolerably clean target for simple compilers. System/360 did not really have these design goals. So while even if designers had drawn inspiration from the System/360 instead, the architecture of minis like the PDP-11 in the 70s, and microprocessors of the the 80s, would probably still have been different from System/360. Folks wanted a hardware stack in 1978! Of course... maybe they only wanted it because they'd gotten used to having it on machines like the PDP-11.
> So DEC's PDP-8 and OS-8 directly inspired the entire PC-compatible industry, the whole x86 computer industry.
I disagree w/ the claim that the PDP-8 directly inspired x86. At the operating system level, maybe: OS/8 -> CP/M -> DOS. At the architecture level, no: PDP-8 -> 8080?
The x86 architecture is _nothing_ if not a slavish progression from 8080, 8085, 8086, 80186, 80286, 80386, ...
I said the 8086 is somewhat like the PDP-11, not the PDP-8! The PDP-8 was an extremely simple machine and quite unlike anything from the 70s really, mini or micro.
I would definitely agree the 8080 itself was not inspired or influenced by the PDP-11. The timing is just wrong for that, if nothing else. The earliest ancestor to the 8080 was designed in the late 60s, before the PDP-11 came out. And of course the 8086 was designed in the 8080's lineage, even source level compatible somewhat. I think you just misread me, but since I thought more about it I'll outline my argument more clearly. Nearly all the changes from the 8080 to the 8086 were changes that, in practice, made it more like the PDP-11s:
* The 8080 was an accumulator machine. While the 8086 retains some specialized registers and the superficial register file of the 8080, it's largely a general register machine. It can, for example add any two registers together, or add any register and memory together. It can use any of several registers for an index register.
* Segmentation is basically a poor man's split I/D + paging on the PDP-11. While there's no protection, it's similar enough that the 8086 was the first microcomputer UNIX was ported to.
* The 8080 had a single stack intended pretty much just for subroutine call/returns. Annoyingly it limited what you could push. The 8086 has a general stack, and a second stack pointer too. This is mimicking a common programming model on the PDP-11. As such, C is easy to implement on the 8086 and rather hard on the 8080. (Though Intel explicitly cited Pascal as the intent there at release, so this isn't that strong of a point, I suppose.)
* Similar orthogonal byte and word operations for most instructions.
* Even the 8086 assembly mnemonics were very similar to the PDP-11 (or VAX) mov/movb/bne/beq/cmp/inc/dec compared to mov/mov.b/jne/jeq/cmp/inc/dec.
I first encountered a VAX in the late 80's/early 90's on a project to port an ICL 2903 George assembler system onto the VAX into C (yes horrible idea and been better to redevelop, though somebody in marketing dropped the ball so).
I'd not done much C programming, but the environment on the VAX and the profiler was and felt so far ahead of anything I'd used before. This was the days when Borland C (think was turbo C back then) was a thing.
Fond memories and since then having touched many different systems, for me, was the one that stood out a the biggest wow, how brilliant is this moment.
This was in the days before GUI's saturated development environments and for me, even today, multiple shells and vi, still my comfort zone.
Sad that VAX never prevailed further, fond memories, as with many systems/environments that have come and gone, but when you start out programming with punched cards, much time passes and much has changed and those wow moments - well, been a while since I had one of those epiphany moments, though finding these forums I would rank up there as one of those.
If you are interested in this subject, definitely read Brian Kernighan's new book "UNIX A History and a Memoir".
And, sadly, the living computer museum had preserved pretty much all the important machines mentioned, running live (TOPS-20 on a Dec20, v7 on an 11/55, etc). But now it's closed.
Even today the VAX is, at its bus and core clocks, extremely well performing. It’s also probably much more secure than today’s designs not even including the government mandated backdoor technologies cleverly marketed as business management features.
84 comments
[ 4.9 ms ] story [ 159 ms ] threadNo. The Alpha was a RISC machine. The Pentium Pro was a demonstration that, with 3000 engineers at peak, you could actually get several instructions per clock out of x86. It was the first real superscalar microprocessor, one where what the CPU is doing inside is very different from what the programmer sees as the instruction set.
The VAX was a classic CISC machine. Way too complex an instruction set.
Amusingly, x86 turned out to be a good instruction set for superscalar machines. Not too many registers, so context switches were not so bad. Variable length instructions, so you didn't get "RISC bloat", which tended to double the size of code and cause cache misses. The fast but dumb one-instruction-per-clock RISC CPUs were outclassed by superscalar x86. You can build superscalar RISC machines, but once you've added a few hundred million transistors of superscalar logic, you've lost any simplicity advantage RISC offered.
The Pentium Pro came out in 1995. To say the x86 architecture was "all but dead" at that point is not supported by the historical record.
It's okay, Linux and guys like Mad Dog eventually got 'em (with license-free hardware-neutral software), though Apple (and the M1) are getting the last laugh.
SPARC had nothing to do with ARM, but was entirely Sun's own RISC project, and an attempt to find a way off Motorola CPUs (which powered Sun's earlier workstations).
VAX was the "Virtual Address eXtension" to PDP-11, which was released right around 1979/1980, was a 32-bit architecture, and additional processor instructions. VAX ended up being a much different beast, but you could still see that it was extended from the PDP-11 platform. DEC made a lot of tooling to make the transition from PDP-11 to VAX as smooth as possible for developers- they provided compilers that were source-compatible, etc., for FORTRAN, COBOL, C, BASIC, etc.
And a 'byte' on a pdp-10 was anywhere between 1 and 36 bits. We've lost some important ideas from the Olden Days.
Also, modern people should realize that electrical interfaces on old 1960s-70s mainframes were almost always locked down by license agreements (as in "touch the backplane in an 'unapproved way' and your institution could be charged thousands of dollars in 'service' fees.”) With mainframes locked down and costing so much money to operate, one couldn't exactly do anything particularly exciting with them beyond mundane information management tasks. ALL of the real action, including creation of UNIX, C-Language, controlling the public phone system switches, aerospace platforms, laboratory c&c, numerical control, industrial process automation, etc. was happening on "mini" computers that were relatively cheap, could be electrically interfaced to almost anything, impacted less users during system-level operations and (usually) were pretty easy to fix.
But IBM, CDC, Burroughs, Sperry, etc. had no real financial interest in creating "mini" computers, so employee spin-outs like DEC and, in turn, Data General happened. In DEC's case, they grew so successful they even tried to produce a couple of their own "sub-mainframes" like the PDP-6/10/20 (aka DECsystem10/20 series), but their core competency was hardware-level computer science until the VAX.
The VAX (and DG Eclipse) came in as the 1970s were ending, because IBM and other mainframe manufacturers were flying “too high” on sales that supported "information technology" needs, but DEC and DG were seeing erosion from VLSI-based microprocessors sold by Motorola, RCA and Mostek. DEC responded with LSI-11 but also divestiture to a new class of computers, decentralized systems that would ultimately be called "departmental computers" that could network with each other and thereby eliminate (or at least supplement) the need for expensive big iron mainframes. With newer and better PDPs in tow, DEC began to tear into IBM's mainframe market with cheaper and cheaper VAXen.
(Unfortunately, a kid named Bill Gates was dedicating himself to enable microprocessor-based computers to do the same to the VAX that VAX had done to mainframes, ironically using an old PDP-10 at Harvard to prototype his code…a decade or so later leading to DEC being acquired by Compaq and then destroyed by the mismanagement of Carly Fiorina.)
I was a longtime hardware product manager at DG starting a few years after the events of "the book" as it was called. I knew a lot of the people involved and even dotted-lined into Tom West for a while when the first x86-based NUMA servers were rolling out.
In what sense was DEC an employee spin-out from any of the mainframe outfits?
From my perspective, Ken and his Pinto were the antithesis of everything IBM and we loved him for it.
Edit: my mistake, yes Compaq was bought my HP and therefore it fell under the control of Fiorina, in the end.
But then the college that I attended (starting 1982) had a very traditional and conservative computer science department that revolved around the campus mainframe computer. It seemed boring. I also had a summer internship at a computer facility with a big mainframe. Boring.
The people who were doing what seemed like cool stuff with computers were in the physics department, hooking computers up to experiments and actually doing things. The math department went along for the ride, getting personal computers on the recommendation of the physics profs. I ended up majoring in math and physics as a result of this.
Of course computer science has come a long way, but that was how I saw it from my tiny isolated vantage point so many years ago. I missed out on the huge market growth for CS, though I've had a pretty good career anyway.
Small thing, but to have that finally explained after all these years… I never knew the explicit difference between a minicomputer and microcomputer for some reason.
So, yes, it was "single chip CPU", but that correlated with a bunch of other things...
It was a big challenge getting an entire CPU on a single chip back then. Arguably, every single microprocessor from the 4004 to the 386 was just restoring features that the minicomputers originally had.
The distinction is probably more around Andy Grove's horizontal stack of "commodity" microprocessors, OSs, etc. vs. the vertical stack of the micros where one company mostly made everything.
Memory management didn't make it into micros until the 386 generation. (At least on-chip memory management didn't.) In terms of this discussion, that's pretty late.
[1] https://www.amazon.com/Lions-Commentary-Unix-John/dp/1573980...
It persisted until at least 1982 where you could get one on a desktop. https://en.wikipedia.org/wiki/DEC_Professional_(computer)
I used the LSI-11 and LSI-11/23, but never saw one of those.
Edit - Oh and I think this was one of the machine families DEC would sell where the difference between models was only the glue in some of the expansion slots of the cheap models.
The irony here is that MS-DOS was routinely derided for having "stolen" from CP/M. Having used the PDP-10 and PDP-11 before CP/M, I knew that CP/M was based on DEC's ideas.
DOS 1.0 could probably be fairly described as a CP/M clone -- it was intended to be binary compatible basically, such that translated (perhaps automatically - the 8086 had similar compatibility goals) 8080 CP/M programs would run directly on DOS without much if any change.
The lineage is more like OS-8 -> TOPS-10 -> CP/M -> DOS, although TOPS-10 did a lot more than CP/M etc because it was running on a small mainframe and not a micro.
PDP-10s were also one of the foundations of ARPANET. And also used in early AI research. And also an influence on RMS.
There was also a separate TOPS-20 lineage. TOPS-20 was the successor to TOPS-10 and (more or less) the anti-UNIX. It was designed to be as friendly as possible with command completion and other niceties like versioning and a kind of trash can - although it was quite verbose and had some strange command names of its own. (Like EXPUNGE.)
Some of the philosophy of TOPS-20 made it into VMS. Cutler famously hated UNIX, but by the time he was done with NT the remains of VMS had been thoroughly Microsofted and it was hard to see any of the TOPS-20 lineage left in the UX.
DEC shot itself in the kneecaps when it killed the PDP-10 line in 1983 and went all-in on the VAX. The VAX was a perfectly fine computer, but culturally it wasn't in the same space. PDP-10s were almost proto-Macs in the mainframe market - very popular with academics and creative researchers.
The VAX felt more like a functional but unexciting proto-PC product. A lot of PDP-10 customers - and not a few PDP-10 engineers and developers - never forgave DEC for the move.
Gary Kildall had experience with a bunch of different DEC systems, definitely PDP-8s running OS/8 and PDP-11s running RT-11, he may have had some experience with PDP-10s as well. I would say he more took ideas from DEC operating systems in general rather than copying any one of them in particular, but if people want to cite particular ones, OS/8 and RT-11 are mentioned more often than TOPS-10.
He also used IBM VM/CMS at the Naval Postgraduate School, which is arguably where CP/M gets drive letters from – CMS uses single letters to identify disks, DEC operating systems generally used multi-character device names like DL0: or RKA0: instead.
> Some of the philosophy of TOPS-20 made it into VMS.
Can you give a specific example of this? VMS was mainly influenced by RSX-11. What did it get from TOPS-20 that it didn't get from RSX-11?
TOPS-10 predates OS-8
https://www.youtube.com/watch?v=R2Qh0O3Dt10
IMO it's more interesting just how dated the technology is. DEC and SGI made huge super-expensive machines (by modern standards) and I'm typing this on an iMac Pro which is somewhere between 1000 and 10000 times faster than a VAX 11/780 and would easily leave an SGI Octane in the dust.
Even knowing Moore's Law, I don't know how many people expected that kind of progress back in the 80s or 90s.
Now just imagine what a modern SGI Octane with all its custom silicon implemented in 10nm, with a modern MIPS processor built with modern technologies could be, every component finely tuned to work with all others into perfect coordination.
How would it compare to a PC assembled from generic components?
I suppose when '7nm' and smaller processes are economic enough for non-primary CPUs, hopefully also with rad hardened designs ready for use in the new space age, there will be interest in making both basic compute SoCs already optimized like this, and supercomputers constructed from variations on the same components.
The auto post-increment/pre-decrement addressing modes of the 6809, 68000 and ARM exist on the PDP-11.
The set of 2's complement branch instructions and related flags for all of them is pretty much exactly the same (well 6502 does not implement the full set).
It didn't have to be this way- for example, the instruction mnemonics could have been the IBM 360 ones..
This is the start of a decompression routine for LZSA compression for both architectures. (I don't think the PDP-11 code was even modelled after the 8086. Just convergent implementation?) Source here: https://github.com/emmanuel-marty/lzsa
The only difference of note is the PDP-11 doesn't have string array operations (but it doesn't really need them with addressing modes like (r1)+) and so does an explicit check for end of input, that is implicit on the x86 before it loops back to ReadToken. Otherwise there is a near one-to-one translation of each instruction, often with the same mnemonics.
With that said, they had similar design goals. Minimal (but not minimalist) hardware requirements, compact and expressive instruction set suitable both for direct assembly programming (as that was still dominant in the 70s) as well as a tolerably clean target for simple compilers. System/360 did not really have these design goals. So while even if designers had drawn inspiration from the System/360 instead, the architecture of minis like the PDP-11 in the 70s, and microprocessors of the the 80s, would probably still have been different from System/360. Folks wanted a hardware stack in 1978! Of course... maybe they only wanted it because they'd gotten used to having it on machines like the PDP-11.I disagree w/ the claim that the PDP-8 directly inspired x86. At the operating system level, maybe: OS/8 -> CP/M -> DOS. At the architecture level, no: PDP-8 -> 8080?
The x86 architecture is _nothing_ if not a slavish progression from 8080, 8085, 8086, 80186, 80286, 80386, ...
https://en.wikipedia.org/wiki/PDP-8#Description
https://en.wikipedia.org/wiki/Intel_8080#Registers
I would definitely agree the 8080 itself was not inspired or influenced by the PDP-11. The timing is just wrong for that, if nothing else. The earliest ancestor to the 8080 was designed in the late 60s, before the PDP-11 came out. And of course the 8086 was designed in the 8080's lineage, even source level compatible somewhat. I think you just misread me, but since I thought more about it I'll outline my argument more clearly. Nearly all the changes from the 8080 to the 8086 were changes that, in practice, made it more like the PDP-11s:
* The 8080 was an accumulator machine. While the 8086 retains some specialized registers and the superficial register file of the 8080, it's largely a general register machine. It can, for example add any two registers together, or add any register and memory together. It can use any of several registers for an index register.
* Segmentation is basically a poor man's split I/D + paging on the PDP-11. While there's no protection, it's similar enough that the 8086 was the first microcomputer UNIX was ported to.
* The 8080 had a single stack intended pretty much just for subroutine call/returns. Annoyingly it limited what you could push. The 8086 has a general stack, and a second stack pointer too. This is mimicking a common programming model on the PDP-11. As such, C is easy to implement on the 8086 and rather hard on the 8080. (Though Intel explicitly cited Pascal as the intent there at release, so this isn't that strong of a point, I suppose.)
* Similar orthogonal byte and word operations for most instructions.
* Even the 8086 assembly mnemonics were very similar to the PDP-11 (or VAX) mov/movb/bne/beq/cmp/inc/dec compared to mov/mov.b/jne/jeq/cmp/inc/dec.
It still works today.
I'd not done much C programming, but the environment on the VAX and the profiler was and felt so far ahead of anything I'd used before. This was the days when Borland C (think was turbo C back then) was a thing.
Fond memories and since then having touched many different systems, for me, was the one that stood out a the biggest wow, how brilliant is this moment.
This was in the days before GUI's saturated development environments and for me, even today, multiple shells and vi, still my comfort zone.
Sad that VAX never prevailed further, fond memories, as with many systems/environments that have come and gone, but when you start out programming with punched cards, much time passes and much has changed and those wow moments - well, been a while since I had one of those epiphany moments, though finding these forums I would rank up there as one of those.
And, sadly, the living computer museum had preserved pretty much all the important machines mentioned, running live (TOPS-20 on a Dec20, v7 on an 11/55, etc). But now it's closed.