Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> if you want to write different components in multiple languages, each component can be its own VM and they can communicate over the (virtualized) network

Those "components" and "virtualized network" really resemble "processes" and "IPC" to me. Except that in MirageOS/Foo-on-Xen/etc each process has its own device drivers. And, indeed, those beg either for putting into a sort of shared component.

But... aren't we almost reinventing microkernels here? With the only distinction of using shared libraries instead of server processes?



Yes, we are. I wouldn't say re-inventing, though. Hypervisors are effectively an optimization of microkernels: modern ISAs (e.g. x86-64) have special instructions to make "hypercalls" faster than plain-old context switches, so any modern implementation of a microkernel would be forced by practicality to act as a hypervisor.

Though, there's another advantage that comes specifically from thinking of each process as a separate "machine": each process gets to participate fully as an Internet peer, with its own unique, public-routable IPv6 address.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: