Singularity is as much like Inferno as it is like a Java OS.
It ships around bytecodes as the stored form of programs,
and that's where the similarities end.  They don't jit the code,
instead treating it as a high-level program and compiling it
with a traditional optimizing compiler.

Yes, they have channels for communication, but that idea
predates Inferno and Plan 9 by quite a bit.  Also, the channels
are two-way with defined protocols running on them (not just
message types).

The real new research in Singularity is how far they are pushing
type information into the deepest reaches of the system.

Some of the kernel core (i.e., the low-level assembly, the garbage
collector, the debugger) is written in unchecked languages,
but most of it (including, for example, the scheduler and all the
device drivers) is written in checked languages.  Safe device drivers
alone would fix a huge fraction of the Windows crashes.

They push the type-checking further in other areas too.
The channels are two-way, with defined protocols running over
them.  Each reference to a channel is marked as to which half
of the protocol it is expected to run, and then the code using the
channel is verified to make sure it respects the protocol as far
as receiving or sending at the right points in time, sending only
the allowed set of messages, and handling all the possible
messages received.

All this is toward the goal of reliability and dependability, as they
clearly state in the introduction.  Inferno and Plan 9 are reliable
mainly because they don't have many bugs.  Neither actually
take steps to providing some form of safety guarantees.
Plan 9 is running C code, and when Inferno is jitting, it doesn't
insert bounds checks on array references, so it can crash easily too.

There is more, but I suggest you actually read the paper instead
of dismissing it by saying "Plan 9" or "Inferno" at first glance.
I find this to be perhaps the ugliest side of 9fans.

Apologies to those who did read the paper.
Russ

Reply via email to