4 ms·
And as an even deeper correspondence: Once your language is memory-safe and capability-secure, you don't even need a kernel, let alone a microkernel. Rather tha
by catern 10y ago
And as an even deeper correspondence: Once your language is memory-safe and capability-secure, you don't even need a kernel, let alone a microkernel. Rather than use hardware address spaces to separate and modularize components (the primary idea behind microkernels), you just pass capabilities around to your components. One component can't crash the whole system, because all it can access is the APIs you pass in to it. If you want to add isolated processes to your OS, just implement actors in your language: They're equivalent.
Of course, you can always have a bug in your APIs that allows an attack or bug to propagate. But that was always the case even without capability-safety. Capabilities can't give you everything for free. :)
- nickpsecurity 10y agoJX Operating System does something like this within a JVM. It runs on a microkernel but I think the mediation is app/language level.
- pjmlp 10y agoThat was the approach taken by Mesa/Cedar, Modula-2+ Topaz, Modula-3 SPIN OS, Oberon Native Oberon, ....