3 ms·
Are we essentially witnessing the death of the operating system? Docker builds what amounts to giant statically linked binaries including images of an OS as su
by api 11y ago
Are we essentially witnessing the death of the operating system?
Docker builds what amounts to giant statically linked binaries including images of an OS as support, while unikernels relegate the OS to library status.
In both cases this is starting to look like the way you deploy to embedded devices: build image, flash image to device. I mean that is some serious full-circle going on there... we've been trying to get away from that kind of thing since computers were invented.
- vezzy-fnord 11y agoUnikernels are essentially the far less interesting cousin of exokernels, in that they nominally preserve the libOS angle but are limited to application deployment under a bare-metal hypervisor. Much of the motivation for microkernel research, too, was for applications to be able to control their workloads at a finer granularity while retaining a full OS environment. Scout and SPIN were such examples. Something as simple as making page replacement and eviction a userland server where each library or application can implement its own policy over the RPC interface, can yield great benefits.
- lotyrin 11y agoNo, just realising the ones we have based on assumptions from the 70s don't match what we really want. My phone has an operating system that mostly pretends that it's a mainframe. With just a little hardware, I could hook some circa 1978 VT100s up to it and a team of average *nix web backend developers could even be productive. My "workstation" pretends to be several tens of machines doing all sorts of different things. These boundaries exist for no reason other than to map to organizational concerns -- my CPU does all kinds of computational gymnastics so I can "keep things tidy". The model is just wrong. Things are immutable that shouldn't be. Things are mutable that shouldn't be. Things aren't distributed that should be. Things aren't durable that should be. Things are shared that shouldn't be. Things are isolated that shouldn't be. Config management, containers, orchestration, stuff like adding BPF to the kernel, Docker, Hadoop, Mesos -- all very cool, but all very much bandaids. We're working on it but because we're human we can't go straight for the goalpost, we have to play politics, cheat by modeling the future using what we already have today and lead by example.
- macavity23 11y agoInteresting comment, but you're missing a critical reason we can't go straight for the goalpost - we don't know where it is! Yes, our computation architecture is sub-optimal for the situation we find ourselves in, but we only know that now because we're here, and these things take a long long time to make it from idea to usable hardware. Sooner or later computation will have been around for long enough that everything will settle on a common boring architecture (how much steam engine innovation has there been recently?) but until then we'll always be using the systems designed to solve the problems of 10-15 years ago. To paraphrase Rumsfeld, you don't build on the platform you want, you build on the platform you have.
- jacques_chester 11y ago> Are we essentially witnessing the death of the operating system? It depends what you mean by "death". Chester's First Law applies. Some code, somewhere, is responsible for the services traditionally provided by an OS.
- the_why_of_y 11y agoDefinitely not. Where do the hypervisor calls of your unikernel end up? In the OS that is running in the Dom0. If anything this is not the death of the OS, it is the death of POSIX as an application API.