Single address spaces: design flaw or feature?
The best argument is this: We&#x27;ve done it. We did it on hardware which was cutting-edge in the 1960s. It worked acceptably then.<p>This stuff is literally a half-century old now. IBM did it with CP&#x2F;CMS back in the mid-1960s on the original System&#x2F;360 hardware. Thumbnail sketch: CP (Control Program) is now called VM (Virtual Machine). It is a hypervisor. CMS is the Conversational Monitor System, once the Cambridge Monitor System. It&#x27;s about as complex as slime mold and&#x2F;or MS-DOS: Single address space, no hardware protection. CP allowed people to run multiple instances of CP and CMS as guests. CMS provided a command line and an API, CP provided separate address spaces and multiplexed the hardware.<p>As for &quot;write everything in OCaml&quot;, we did that with Lisp and Smalltalk back in the 1970s and 1980s. Hell, we&#x27;re writing IBM PC emulators in Javascript that run acceptably fast most of the time, and that&#x27;s heavyweight full hardware emulation, which is a lot more complex than a unikernel would (or should) be.