> The other source of bloat is the kitchen-sink effect.
This is the "user space" bloat.
Resiliency is one of those things that's baked into every layer of the stack seems to be cumulative. Research into lock-free algorithms in order to improve efficiency requires correctness and there are still places in the OS level and user space that would benefit from it.
Lock-free algorithms don't help much with performance. Locks are very cheap and your PC spends very little time spin-locking. Even interrupts and thread-switching (which is much more expensive) aren't that big of a deal nowadays.
I don't think performance is at odds with resiliency. You can have one, both, or neither. Resiliency you get by eliminating entire categories of problems with strong conceptual abstractions. As you pointed out, virtual memory that protects applications from interfering with one another is one such example. Other examples are transactional databases (ACID), and perhaps software transactional memory. Statelessness also has fantastic resilience properties and is a big driver behind the success of web applications.
Take sqlite for instance. sqlite is very resilient, gives you transactions that you can roll back, and on top of that, storing small files in a sqlite database can be faster than using the filesystem directly. You get resilience AND performance AND a boost in productivity.
This is the "user space" bloat.
Resiliency is one of those things that's baked into every layer of the stack seems to be cumulative. Research into lock-free algorithms in order to improve efficiency requires correctness and there are still places in the OS level and user space that would benefit from it.