6 ms·
"Operating systems typically interpret instructions written in high-level programming languages and oversee their execution on a device’s hardware." What is th
by beza1e1 16y ago
"Operating systems typically interpret instructions written in high-level programming languages and oversee their execution on a device’s hardware."
What is that supposed to mean?
- rch 16y agoOne place to start: http://www.antlr.org/wiki/display/ANTLR3/The+difference+between+compilers+and+interpreters http://www.antlr.org/wiki/display/ANTLR3/The+difference+betw...
- efnx 16y agoAwesome article, thanks.
- wmf 16y agoYeah, that's definitely not how I would have explained it. I would say that a traditional OS provides high-level abstractions (think of system calls like open() or fork() — they're very complex compared to the underlying hardware) while the exokernel provides very low-level primitives like memory pages, disk blocks, CPU time, etc. Throughout history, people have discovered that their OS doesn't provide the right abstractions to allow some apps to take advantage of the hardware's performance potential. The traditional solution was to add features to the OS (Web server not fast enough? sendfile() to the rescue!), but the exokernel proposes the radical alternative of providing simpler, maximally flexible abstractions and letting apps (or libOSes) implement whatever behavior they want.
- deleted 16y ago[deleted]
- aliguori 16y agoExokernel was basically a very early form of a hypervisor. It's not totally novel as hypervisors have been around for a very long time but what makes the Exokernel interesting is that it doesn't try to run unmodified guests but rather runs paravirtual guests. It's basically a very early (pretty much a full decade) predecessor to Xen.