From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <3bc5f5191c3aaadeb1b46d76b436772b@vitanuova.com> Date: Fri, 26 May 2006 15:29:31 +0100 From: rog@vitanuova.com To: 9fans@cse.psu.edu Subject: Re: [9fans] this is not an advocacy question In-Reply-To: <200605260010.55740.corey_s@qwest.net> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 551afbce-ead1-11e9-9d60-3106f5b1d025 the main technical difference is that inferno is designed to operate in a single, flat memory space. it relies on a well behaved virtual machine to avoid processes stamping on each others' memory (hence the use of Limbo rather than C - no difficult pointer arithmetic to check). this avoids the need for an MMU, and also makes it easy to run hosted under other systems without the poking around with page table entries. it makes a number of things simpler (it goes without paging and swapping) and potentially faster. although i run plan 9 on my laptop, i have inferno on a USB keyfob which i can plug into any random machine (windows, linux, ...) and get access to a relatively sane environment. i use it to connect back to plan 9 machines, or to data-bridge across uncooperative local networks. i'm using it now from a linux box to write this email. > ( is "Styx" just a renamed 9P2000? ) they differ in the way that authentication takes place, although the protocols themselves are identical (as witness the fact that i'm now doing a "cpu" from inferno to plan 9 i.e. plan 9 is importing a namespace exported by inferno). inferno's authentication is end-to-end, and takes place outside the protocol; in fact it's protocol agnostic: once the authentication is done, all traffic over the connection is secured, regardless of what's sent. the authentication is public key based - the two parties involved mutually authenticate - no online third party is required (nice when you're getting two random boxes to talk to one another behind a firewall). plan 9 relies on an accessible third party ("authentication server"); it sometimes does in-band authentication (Tauth - not as secure, but historical), and sometimes end-to-end. if no authentication is used, there is no difference at all. > Is it accurate to say that "Styx" is a conformant implementation > of 9fs2000 that is written in Limbo rather than C? ( similar to v9fs > under linux? ) being a protocol, Styx is not written in any particular language (well, technical English, i suppose). programs that talk styx/9p have been written in C, limbo, java, ... > I've become very interested in distributed computing, as approached > from a Plan9 perspective, and I am very much appreciating the general > "keep it small, clean/correct and focused" mentality/objective which > is very apparent. when learning about the distributed systems aspects of inferno and plan 9, most skills are transferrable. having said that, i'd recommend learning limbo because it makes for a very clean interface to the system. the concurrency aspects in particular are compelling compared with the same interface in C, and when dealing with distributed systems they're a real boon. IMHO it's a "sweet spot" language; many aspects of the syntax and semantics are exactly right. as geoff suggested, it's not a bad idea to try both. whatever you do, enjoy! it's a nicely elegant world, and well worth playing with, even if all you do is take away some of the good ideas and approaches to doing things.