From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: Date: Tue, 13 Dec 2005 12:43:27 -0500 From: Russ Cox To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu> Subject: Re: [9fans] MS Research reinvents Inferno? In-Reply-To: <1134493372.4921.0.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <1134493372.4921.0.camel@localhost.localdomain> Topicbox-Message-UUID: c2fc6fac-ead0-11e9-9d60-3106f5b1d025 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