From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <20100217143303.GC10816@nibiru.local> <0ffee4ba13816a49a6360ce6668e65f2@quintile.net> Date: Wed, 17 Feb 2010 08:28:17 -0800 Message-ID: <3e1162e61002170828i451c9d81ka5061e492db6e6b4@mail.gmail.com> From: David Leimbach To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=000e0cd6adc27ab3fa047fce561a Subject: Re: [9fans] Binary format Topicbox-Message-UUID: d515718e-ead5-11e9-9d60-3106f5b1d025 --000e0cd6adc27ab3fa047fce561a Content-Type: text/plain; charset=ISO-8859-1 On Wed, Feb 17, 2010 at 8:14 AM, Stuart Morrow wrote: > On 2/17/10, Steve Simon wrote: > >> And another important feature of shared libraries is, that when > >> some lib is updated, importing programs dont have to be recompiled. > >> What's the Plan9 solution here ? > > > > We recompile the relevant executables. > > also, plan 9 uses filesystems for many things that other systems use dlls > for. > if there's a bug fixed in a 9p server, existing programs can still > talk to it without a recompile. > > stu > A lot of "plug in" functionality you'll find on other platforms that requires a shared library approach can be implemented via a file system service technique. Instead of using the C runtime and calling conventions + a shared library loader to call on some routines that the program in question did not originate, it can use 9P via the file system to make what equates to RPC calls to another process that serves the file system itself. This actually buys one a lot in terms of the following: 1. Isolation of concerns 2. Isolation of faults 3. Composition/Debugging/Testing of solutions via a ubiquitous API/tools How much more convenient can it get when almost all the tools you need are a shell, cat/cp/echo etc, and some namespaces in order to build a complex system from smaller, simpler parts. I don't know why everyone doesn't want to build software this way. This is the same philosophy Erlang and Haskell (and other functional programming languages) encourage just to write programs. Dave --000e0cd6adc27ab3fa047fce561a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Wed, Feb 17, 2010 at 8:14 AM, Stuart = Morrow <morrow.stuart@googlemail.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
On 2/17/10, Steve Simon <steve@quintile.net> wrote:
>> And another important feature of shared libraries is, that when >> some lib is updated, importing programs dont have to be recompiled= .
>> What's the Plan9 solution here ?
>
> We recompile the relevant executables.

also, plan 9 uses filesystems for many things that other systems use = dlls for.
if there's a bug fixed in a 9p server, existing programs can still
talk to it without a recompile.

stu

A lot of "plug in" functi= onality you'll find on other platforms that requires a shared library a= pproach can be implemented via a file system service technique. =A0Instead = of using the C runtime and calling conventions + a shared library loader to= call on some routines that the program in question did not originate, it c= an use 9P via the file system to make what equates to RPC calls to another = process that serves the file system itself. =A0

This actually buys one a lot in terms of the following:=

1. Isolation of concerns
2. Isolation o= f faults
3. Composition/Debugging/Testing of solutions via a ubiq= uitous API/tools

How much more convenient can it get when almost all the= tools you need are a shell, cat/cp/echo etc, and some namespaces in order = to build a complex system from smaller, simpler parts.

I don't know why everyone doesn't want to build software this = way. =A0This is the same philosophy Erlang and Haskell (and other functiona= l programming languages) encourage just to write programs.=A0
Dave
--000e0cd6adc27ab3fa047fce561a--