Unikernels: rise of the virtual-library operating system

by
in code on (#3QG)
Mssrs. Anil Madhavapeddy and David J. Scott over at the Association for Computing Machinery (ACM) ask: What if all layers in a virtual appliance were compiled within the same safe, high-level language framework? Good question, and I suspect we'll find out soon enough, because the trend in virtualization seems to be leading us in this direction.
While operating-system virtualization is undeniably useful, it adds yet another layer to an already highly layered software stack now including: support for old physical protocols (e.g., disk standards developed in the 1980s, such as IDE); irrelevant optimizations (e.g., disk elevator algorithms on SSD drives); backward-compatible interfaces (e.g., POSIX); user-space processes and threads (in addition to VMs on a hypervisor); and managed-code runtimes (e.g., OCaml, .NET, or Java). All of these layers sit beneath the application code. Are we really doomed to adding new layers of indirection and abstraction every few years, leaving future generations of programmers to become virtual archaeologists as they dig through hundreds of layers of software emulation to debug even the simplest applications?
This project intends to reduce the different layers of software and operating system to simple-API systems that can be installed and used like virtual appliances, perhaps [ed. note: this is my analogy, not the author's] the way Busybox reduces the POSIX standard to a simpler and smaller binary executable.

Continued: "Let's dumb down all the APIs/ABIs and make a single one so it's easy to use!" (Score: 2, Insightful)

by Anonymous Coward on 2014-07-12 22:41 (#2FT)

Oh, and if you think POSIX is hard to use? You can just go right back to your rubies and pythons, because you obviously don't know C.

I think the people that came up with this didn't know C, and then said POSIX was complicated and hard to use, so they roll their own. Any programmer knows this is a rookie mistake.
Post Comment
Subject
Comment
Captcha
Enter the number seventy three thousand nine hundred and nineteen in digits: