5 ms·
Containers and the direction they're evolving is the revenge of Tenenbaum: https://en.wikipedia.org/wiki/Tanenbaum–Torvalds_debate https://en.wikipedia.org/wik
by api 10y ago
Containers and the direction they're evolving is the revenge of Tenenbaum:
https://en.wikipedia.org/wiki/Tanenbaum–Torvalds_debate https://en.wikipedia.org/wiki/Tanenbaum–Torvalds_debate
My take on that debate: They were both right, but they were optimizing for different things.
Tenenbaum was right in a theoretical sense and an eventual sense. Microkernels are better. Separation of concerns is better.
Torvalds was right in the early-mid 1990s and right in a pragmatic sense. More monolithic (or vertically integrated) kernels are easier to build and ship and are faster on smaller machines. A microkernel made little pragmatic sense on a early-mid 90s box. But keep in mind that these machines were far less powerful than a Raspberry Pi. My first Linux machine was a 66mhz 80586 clone with 32MB of RAM.
Once you have machines with dozens or even hundreds of cores, NUMA, and that host massively diverse multi-tenant work loads, microkernels start making a whole lot of sense. Once you have to containerize apps for security, they make sense too. They also make sense if we want to eliminate reboots, etc. They make much more pragmatic sense now than they did in the 90s.
Ultimately microkernels or microkernel-like systems will win.
- mwcampbell 10y agoWhat do containers have to do with microkernels? If we're talking about BSD jails, Solaris/Illumos zones, and Linux cgroups + namespaces, there are basically two scenarios: Either multi-tenancy is handled through hardware virtualization (mainstream cloud providers), or all of the containers are run on a shared monolithic kernel (Joyent's Triton, running Linux binaries in containers via LX-branded zones on Illumos). I suppose the former scenario could be seen as a vindication of microkernels, if you consider the Xen hypervisor a microkernel. But that has nothing to do with containers.
- MustardTiger 10y ago>What do containers have to do with microkernels? Xen is becoming a major OS, and it is a microkernel OS.
- vertex-four 10y agoContainers are not VMs.
- SwellJoe 10y agoBut, they can be (and are) used in similar ways. I think it's reasonable to talk about VMs and containers in the same conversation.
- vertex-four 10y agoSure, but the conversation brought up microkernels in relation to containers specifically - which is nonsensical.
- bnolsen 10y agosounds like the mainframe has been reinvented...
- ktRolster 10y agoYeah, technology-wise, we're approaching what we had in the 1970s before microcomputers. Except now it's all a lot cheaper.
- pjmlp 10y agoTo really be back to them, we need to replace C and C++ with the safer systems programming languages that those mainframes already enjoyed in the late 60's. ESPOL, NEWP, Algol-68RS are a few examples. That is going to take a while, maybe a few developer generations still.
- api 10y agoGo, Rust, Swift
- pjmlp 10y agoSwift is the only one being actively pushed into developers by an OS vendor. Apparently Genode OS has now integrated Rust, but they still aren't using it. It would be nice if the Android team recognised the work being done by the Go team and integrated Go into its OS at very least on the NDK, but I don't see it happen. Specially after seeing their reaction about Java alternatives at this Google IO. The attitude "nothing but Java" is still the official one. On Windows I would like to see .NET Native become more relevant and bring System C# goodies to mainstream Windows.
- SwellJoe 10y agoBut...isn't Java a "safer systems language" in much the same way Swift is? So, it's a lot like Swift in that regard, in that Google is pushing it. And, there are other JVM languages, including some that are at least as nice as Swift. Kotlin looks really promising. I'm not sure why Java should be excluded if we're talking about systems languages other than C/C++ that are safer.
- pjmlp 10y agoMicrokernels have already won. That is what most cars, factory control units, avionics and many other embedded real-time OSes are. Every phone also has a tiny OS running their radio band unit, which happens to be OKL4. Just the Linux crowd seems to be unaware of them.