Next-Generation Cloud: The Rise of the Unikernel
xenproject.org
xenproject.org
http://odl.sysworks.biz/disk$vaxdocdec953/decw$book/d33vaa48...
https://news.ycombinator.com/item?id=9259292
Or Service Virtual Machines: http://alt.folklore.computers.narkive.com/LXzjsdU7/was-vm-ev...
Or Exokernels: http://pdos.csail.mit.edu/exo.html
https://groups.google.com/forum/#!msg/alt.folklore.computers...
ACM Fellow for Reinventing Virtual Machines: https://groups.google.com/forum/#!topic/alt.folklore.compute...
It was less "reinvention" and more "making them actually useful." From the ACM announcement[1]:
Although the concept of virtualization was first explored in the 1960s in the context of mainframe computers, it languished until Mendel Rosenblum and his students at Stanford University rediscovered the idea as a simulation tool for new multiprocessor architectures.
It goes on to point out how they created a vibrant industry and research area around the technology and spurred a shift to virtual-machine-based architectures.
[1] http://awards.acm.org/award_winners/rosenblum_4094918.cfm
(Seriously. One of the people I quoted claimed elsewhere, without any hint of irony, that IBM invented personal computing by putting CP-40 on System/360 mainframes, to give everyone their own personal guest system on the shared hardware. Yes, and the Ancient Romans invented radio by reflecting sunlight with mirrors; after all, it's all EM radiation!)
(Although, to be fair, most people run a Linux dom0.)
Linux, NT, BSD, and other modern kernels implement all kinds of complexity around user/group management, ACLs, security policies, file types and permissions, and so on.
If we're moving to unikernels and containers and similar, all that has been replaced with stupid simple access control systems like API access tokens or login/password pairs for cloud service control panels. Your AWS access token is now a single security credential for your entire infrastructure.
Of course I'm sure the cycle of reincarnation will continue. Things like Docker or the AWS API will grow in complexity until they at least subsume the entire feature set of Unix UID/groups, Unix/NT ACLs, SELinux, etc.
It would simply feel like standing still, for an overhwelming majority.
To be clear, ZeroVM isn't a Unikernel. Instead, it is a virtualization technology based on NaCL[2] that is designed to quickly create throw-away VMs. The idea is that the VMs is created to service a single request, and disposed of afterwards.
Obviously this model has challenges, but it is similar to the model proposed on slide 24 of the OP slidedeck. The security benefits of this are real, even if the programming model is challenging.
I wonder if this tech would let you have bare metal speed in a cloud environment.
Maybe this is where garbage-collected language would be useful.
Press ESC on the front page and see the amount of GC ram reclaimed from Erlang's VM.
Memory Usage: 12MB -- is also kind of a baffling number.
I don't know how AWS will meter it yet (yup, I love AWS) but I sure hope they're following this trend. AWS support would put so much energy behind this path forward.
Disclaimer: I am the founder