24

The NPR.org news article and podcast How The World Has Changed! Science During The 40 Years Of 'Morning Edition' includes the photo below with the caption

Before the introduction of the personal computer, mainframe computers were the norm. The IBM System/370 mainframe computer, introduced in 1970, was one of the first computers to include "virtual memory" technology.

It says the /370 was "one of the first", and this answer to Did Cray computers use virtual memory? also mentions the /370.

Question: But was there a clear "first computer" to use virtual memory, or was it an incremental development with no clear first instance?

It may be helpful to differentiate the first commercial product from the first developmental demonstration.


enter image description here

Source: NPR, Credit: Getty Images

  • 1
    At the very core, virtual memory isn't some sort of breakthrough invention... it's using a slower speed memory in place of higher speed memory. RAM naturally already loads from the HDD, but now we're going the other way and make the computer think part of the HDD is RAM. – Nelson Nov 7 at 14:51
  • 10
    "Not a breakthrough"? I assume you have never needed to write overlay descriptions. :-) – another-dave Nov 7 at 16:07
  • 4
    I had a computer science professor around 1999 or therebouts who still bemoaned that virtual memory had won out over use of dropfiles (completely serializing/deserializing process state). My class at CSU Chico learned more about virtual memory in our systems architecture class than we did in our operating system courses... – Charles Duffy Nov 7 at 17:34
  • 5
    @Nelson "virtual memory" does not mean the same thing as paging or using a swapfile. That's a common misconception introduced by Windows 95's "Virtual memory" control panel which was used for configuring the swapfile. (You can use a swapfile or paging without using virtual-memory, and you can have virtual memory without using a swapfile or paging). – Dai Nov 9 at 4:32
26

The History section of the Wikipedia Virtual Memory page seems to have the details of this:

The concept of virtual memory was first developed by German physicist Fritz-Rudolf Güntsch at the Technische Universität Berlin in 1956 in his doctoral thesis, Logical Design of a Digital Computer with Multiple Asynchronous Rotating Drums and Automatic High Speed Memory Operation; it described a machine with 6 100-word blocks of primary core memory and an address space of 1,000 100-word blocks, with hardware automatically moving blocks between primary memory and secondary drum memory. Paging was first implemented at the University of Manchester as a way to extend the Atlas Computer's working memory by combining its 16,384 words of primary core memory with an additional 98,304 words of secondary drum memory.[8] The first Atlas was commissioned in 1962 but working prototypes of paging had been developed by 1959.5 In 1961, the Burroughs Corporation independently released the first commercial computer with virtual memory, the B5000, with segmentation rather than paging.

Unfortunately, all the good sources appear to be paywalled. Elke Jessen's "Origin of the Virtual Memory Concept" from IEEE Annals of the History of Computing (2004, 26 (4), pp. 71–72) is likely to be accurate, if you can get hold of a copy.

  • 6
    Per Brinch Hansen's The evolution of operating systems paper covers the Atlas and the B5000, describing the Atlas as introducing demand paging and the B5000 as introducing virtual memory, which would make the B5000 the answer to this question. This paper isn’t behind a paywall ;-). – Stephen Kitt Nov 7 at 5:37
  • 1
    My tutor at University had worked on the Manchester Atlas. He was firmly convinced it was the first computer with demands paging. – JeremyP Nov 7 at 8:17
  • 1
    @StephenKitt - I'm not convinced of the primacy of the B5000 here, based on Brinch Hansen's (excellent) survey. Demand paging a la Atlas implies virtual memory, and was demonstrated (per Wikipedia) in 1959. We don't know when VM first was demo'd at Burroughs. Question for the OP: is the answer to be "first system to ship"? – another-dave Nov 7 at 13:48
  • @another-dave yes, I’m not sure what distinction Per Brinch Hansen was drawing between the two, but the Atlas Supervisor paper (paywalled) describes a paging system which really does implement virtual memory. – Stephen Kitt Nov 7 at 15:18
  • 1
    Is this the Atlas paper you mean? The Atlas Supervisor, by Kilburn, Payne, Howarth. I'm somewhat familiar with Atlas in general, and it's always been my understanding that Atlas had the first hardware VM implementation. – another-dave Nov 7 at 16:03
12

IBM's original virtual memory machine was the System/360 Model 67, released in 1965, which was a variant of the Model 65 modified to add the address translation logic necessary to add virtual memory support. So virtual memory support at least predates the System/370 by that much.

References:

  • 3
    IBM was definitely a late-comer to the concept, though. – another-dave Nov 7 at 13:55
  • 1
    I'm still trying to locate a confirmatory citation, but IBM purchased the Manchester Virtual Memory patents from the NRDC which was a substantial source of funding at Manchester . – Brian Tompsett - 汤莱恩 Nov 9 at 12:38
4

Let me introduce yet another supplier of a Virtual Memory System. Tens of thousands of programmers (I'm guessing here) used VAX's VMS, which allowed RAM to be swapped in and out for temporary storage on disc. The PDP 11, which used VMS, sold over 600,000 units from the early 1970s until the 90s. Research on this machine is easy because so many people used them.

I programmed the PDP 11 once, back in the early 1970s and it was the friendliest, neatest little computer ever. My sometimes unreliable memory tells me I also programmed the IBM 650 in the mid 1960s, which was NOT all the above. I remember the engineer clearing the 650's memory by holding a bar magnet, wrapped in chamois leather, on the surface of the still-rotating drum memory! The Symbolic Optimizing Assembler Program placed each machine code instruction on the drum so that it's sector was just coming "over the drum's horizon" as the previous instruction finished executing. (I'm not too sure I believe that myself, but I remember being told it. It certainly makes a believable story.) This 650 was installed in IBM, Greenock, Scotland where they made IBM's card punches and verifiers.

  • 2
    You could page memory in a semi-virtual manner on a PDP-11, which used RSX-11. Although you had to explicitly do it through system calls. I wrote compilers on the PDP-11 which did this. I don't believe the PDP ever supported VMS, that came in with the VAX. – Chenmunka Nov 8 at 16:00
  • 2
    VMS was never available for the PDP-11, although the VAX-11 could also run PDP-11 instructions. I agree on the friendliness of the PDP-11 hardware and all (well most) of its operating systems I ever used on it. – Deepstop Nov 8 at 16:05
  • 1
    Former PDP-11 & VAX programmer here. Sure, VMS was a Virtual Memory System, but it was started about 17 years after Atlas was running. VMS wasn't even DEC's first system with virtual memory support; I imagine that honour goes to TOPS-10. – another-dave Nov 8 at 18:03
  • Yes, but the Manchester Virtual Memory operating systems could also run on the VAX and PDP/11 range of computers! – Brian Tompsett - 汤莱恩 Nov 9 at 12:36
  • 1
    There is an amusing (and interesting) story including optimising drum memory locations as part of the jargon file: See catb.org/~esr/jargon/html/story-of-mel.html – Peter Smith Nov 9 at 14:19
2

I'd suggest that the fact that there are two different "VM" interpretations muddies the water. Burroughs et al. had "virtual memory" implemented by transparent swapping between core and disk.

The IBM 370 had "virtual machines" allowing multiple operating systems to be run on the same physical hardware (i.e. a single copy of CP hosting multiple copies of CMS).

There is clearly overlap between the ideas, but it's probably safe to say that while having an MMU capable of handling multiple virtual machines probably implies that it would be easy to implement virtual memory, the reverse doesn't necessarily apply.

In any event: IBM was fairly late to the party as far as virtual memory is concerned.

MarkMLl

  • I'm still trying to locate a confirmatory citation, but IBM purchased the Manchester Virtual Memory patents from the NRDC which was a substantial source of funding at Manchester . – Brian Tompsett - 汤莱恩 Nov 9 at 12:38
  • The question here is explicitly about virtual memory; I don’t think there’s much confusion here with virtual machines. – Stephen Kitt Nov 10 at 17:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.