3 ms·
There's a lot of scope to simplify the developer stack. The web was never meant to be used for apps and it shows, badly. For the operating system layers, if yo
by thu2111 6y ago
There's a lot of scope to simplify the developer stack. The web was never meant to be used for apps and it shows, badly.
For the operating system layers, if you build a machine that doesn't expose an ISA, in which all code is run via a polyglot VM like the GraalVM/JVM, then you can more easily design a competitive CPU because suddenly you can use flat, direct physical address space mappings with an ISA that is throwing out old instructions whenever you need to. No need for an MMU, TLBs and all the other page table walking logic, IPC can be drastically simplified.
Singularity / Midori was the most complete exploration of this concept, by Microsoft Research. Unfortunately they kind of went down a few bad R&D paths, in particular, by trying to match the performance of C++ code and relying too much on formal methods - i.e. all stuff interesting to implementors - instead of researching things interesting to developers.
That's why the right way to re-invent computing is top down, not bottom up. Take an existing Linux distro and start to replace bits one step at a time, starting with the desktop environment, the app and data models, network protocols etc. But all the drivers and filesystem goop remains the same - limited potential for innovation there. That said, if you want to, these days you can reimplement drivers in userspace using whatever framework you like, reducing Linux to basically a fat microkernel.