What is the problem that is being solved?

There is active research and new proposals for new exotic ways of organizing hardware. NUMA is one of these still new and shiny ideas. However, with existing operating systems built with existing hardware in mind, it is really hard to drive adoption for this new hardware ideas. This means that even if a hardware innovation was unequivocally better for the long term, it might lose to the status quo because existing OSes could decide not to support it and the cost of adoption for each individual application would therefore be bigger for the short term than the cost of using an inferior system.

What are the key results?

The authors present virtualization as a compromise to the dilemma above. Although what they propose is more like an operating system for operating systems rather than a virtual machine monitor as we know them today. The advantage of their approach is that it requires minimal changes from the operating system. These changes are not generally specific to the hardware but are general for the virtualization environment. This means that the cost of implementing the necessary changes can be amortized over all kinds of hardware that the OS can now be run on through the virtualization system. Particular features of Disco worth noting are its ability to share memory across virtual machines, the way it avoids redundant TLB flushes. It achieves pretty good performance, given the fact that the hardware at the time had no support for virtualization and everything had to be done in software. It, however, uses some tricks, such as mapping specific often used functionality to special instructions, that is hardware dependant and therefore not practical to do at scale.

What are some of the limitations and how might this work be improved?

I think one limitation of the Disco approach is that it tries to do too much: the main differentiator of a vmm from the OS is that vmm must be much much simpler and so most sacrifices for functionality to gain simplicity are worth taking here. For example, sharing text pages across virtual machines is one such functionality that Disco implements instead of opting for simpler approach of treating applications as black boxes. Their urge to optimize for storage is understandable given hardware constraints of the time but I think the fundamental difference between vmm and OS is deductible form first principles and so even in their time one could argue against this kind of functionality.

How might this work have long term impact?

Not much, if we do not count VMWare. But vmware is closer to Xen architecture than that of Disco so it is fair not to count it here. I think one of the reasons this work did not take if is that its idea and use-case for virtualization became less relevant. Most current operating systems have well defined hardware abstraction layers and adding one for the new shiny hardware would be more or less as much work as integrating the new hardware through something like Disco. On the other hand the traded performance one would gain by opting for a simpler Disco virtualization instead of full virtualization diminished over time with increasing hardware speed.