Introduction to Gate
savo.la
savo.la
Now that containers are supplanting VMs, we've largely abandoned that migration capability. Instead the approach seems to be to make containers disposable, spinning up a new container and shutting down the old one. Migrating minimal, per-application VMs is still possible but not very popular.
Gate reduces OS state and cleverly moves across CPU architectures by leveraging webasm, but IP address forwarding is still a pain across networks.
It always occurred to me that something like this would be doable (even with older webasm-like systems like NaCl), but the network/IP forwarding bit and non-local storage problem still seemed like it might make it more trouble than it was worth.
Nonetheless, I would like to revive the approach of a distributed OS on a cluster of machines where you wouldn't really care which machine your code was actually running on, and could easily add more compute/memory/storage/interconnect in a modular manner. Live hardware and kernel upgrades seems like a nice feature as well.
The mechanics required to implement migration unlock many other architectural wins. I don't think process migration has been abandoned at all. I think for too long it was controlled by the OS, these new VM environments liberate migration by being able to run it from userland.
All of https://en.wikipedia.org/wiki/MOSIX was predicated on globally addressable resources within a cluster. In an SDN environment, connections don't even need to be _forwarded_ because they are already an abstraction for user code.