First of all, congratulations on your work.

Secondly, I have a question. I was going through the paper TR-2006-43.pdf where it is mentioned that unrelated processes could have hardware barriers between them, whereas processes that share data may not have hardware barriers.

Isn't the situation similar, if not entirely, to the way things are today? unrelated processes do not share data or data are copied between them; on the other hand, application servers are a single process where all applications are within the same address space.

So my question is: is it worthwhile to turn the whole concept into a separate O/S built from scratch? would it not make more sense to use the knowledge gained by the singularity project to built a programming language with the advanced safety features of singularity as well as an application server which would host such processes?

I am aware that the singularity project goes beyond processes all the way down to the kernel. But maybe the singularity application server could offer 'drivers' and 'kernel' support to the singularity modules, i.e. the application server could be a virtualization environment even for the hardware.

The reason is that there is already much running code out there, and it would be shame to 'dump it all'.