[cap-talk] cap-talk Digest, Vol 66, Issue 46

Leo Meyerovich lmeyerov at eecs.berkeley.edu
Sun Sep 27 13:13:50 PDT 2009


Before anyone is insulted, I should clarify that I am both a (browser) 
security and performance nut :) Going back... 

> I disagree with this statement 
> - With an OS limited to type safe /Memory safe languages with language based
> isolation , increased reliability and security it's not a case of not liking
> the structure it just seems like it's a waste of resources for zero gain.
>   

Memory and type safe languages, historically, have been victim to 
attack. The problem is exasperated by their egg-like design: hard shell, 
gooey insides. Using them eliminates sources of error.. but there is 
still a sizeable TCB that has bitten us in practice. Minimizing it is an 
active research area, not a solved problem.

> - I think every day users originally hated this architecture . MS dragged
> them screaming into NT/Windows 2000 which forced HW upgrades etc. But now
> it's the norm. Slow OS  even if more reliable or secure fail in the
> marketplace (except for niches) eg JavaOS/Workplace OS/Taligen.
>   

Users hate most change. Further, going directly against the described 
sentiment, the most recent incarnation of partitioning  was essentially 
one of the two main features of Google Chrome. Finally, for the intended 
mainstream use case, this design ended up being correct in trading off 
performance for reliability and relying upon Moore's Law to make up the 
difference. I wouldn't say it is safe, but nor is 'verified' hardware -- 
not a useful statement. We're actually still seeing new benefits with 
the shift to multicore.

> - It doesn't help when critical components like device drivers fail .
> Forcing you into either 
> 	a) accepting the lower reliability , 
> 	b) Go the Mach3/Minix way and suffer a big performance hit. (yes L4
> made some gains but the Increasing cost of memory compared to CPU  favours
> monolithic structures in the long term using HW mem protection) 
> 	c) Isolate most drivers . But grouping critical things into a single
> user space defeating the isolation benefits (OSX)
>   

Don't throw out the baby with the bathwater. You missed what's actually 
being done: special casing the special case. MS is heavily invested in 
at least two low-level verification projects that are reaching 
surprising maturity (and are already being used internally, at least). 
There are other approaches as well; drivers don't invalidate the overall 
design.

Finally, first, as in my original message, for some domains (say where 
you'd consider running TinyOS), the considerations change considerably, 
though I suspect economic incentives dominate (with implications in 
kernel dev time, app dev time, app perf). Second, abstraction/isolation 
layers do not preclude ocap reasoning; it simply argues for partitioning 
your system into a tree where every child node is separated from the 
parent. Every node, if you wanted, could be an ocap system. What it 
means for going up/down the tree -- an end-to-end ocap system -- I don't 
know, but as this architecture reflects OS design for PCs, I'm guessing 
someone here does.

- Leo




More information about the cap-talk mailing list