9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: David Leimbach <leimy2k@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] linux stats in last year from linuxcon
Date: Tue, 22 Sep 2009 08:04:42 -0700	[thread overview]
Message-ID: <3e1162e60909220804m3a3a26b9pa8fca2061f37d893@mail.gmail.com> (raw)
In-Reply-To: <696697023ebf5da42e6983939dacfacb@quanstro.net>

[-- Attachment #1: Type: text/plain, Size: 3393 bytes --]

On Tue, Sep 22, 2009 at 7:47 AM, erik quanstrom <quanstro@quanstro.net>wrote:

> > Are these systems more complex to reason about though?   Probably :-).
>  But
> > when you've only got 7 system calls (per the original L4 specifications
> I've
> > read over) you don't really have a lot to debug.  Just gotta make sure
> you
> > chose the correct primitives to compose all the software you need to
> write
> > on the system.
>
> that functionality doesn't disappear, does it?  where ever it goes,
> the bugs will follow.
>

That's absolutely correct.  However, if you can test a piece in isolation
from other noise, you can rule out certain areas as being suspect in the
process of diagnosing issues.


>
> if the argument is that it's easier to debug if it's not in the kernel,
> i think that argument requires some proof.
>
>
The argument is that if something is logically separable from a larger
system, and independently testable, then once you've verified it is correct,
and that the "glue" is correct that is used to compose a larger system, that
you can more readily decide where to look for problem sources.

This is actually the basis of pure functional programming.  Pure functions
can not deviate in the values they produce because they have a property
called referential transparency.  Not all code can be written this way
obviously, but if you can build a small system, test that it works, then
compose with another small system to do more processing, you can "glue"
those things together to build something more complex.

Think Unix/Plan 9 pipelines of small commands and you get the point.  I
believe this concept took a little mind-bending to get to as well, but seems
almost obvious now. You can think of sort, uniq, and grep as pure functional
routines, which you run some I/O through.  If the inputs are the same, the
outputs (damn well better) be the same.

Back in the "old days" (20 years ago?) Microkernels were going to make it so
that all software was organized this way.  It's just not practical to do so
though.  They wanted servers for disk access, servers for network etc.
 Basically it looked like what GNU Hurd was after... and we see how well
that's done.

You'll find systems based on the L4 microkernels today that implement a
single address space (like Inferno I suppose? or Singularity) and you'll
find stuff like L4-Linux, mostly being used as a way to bridge other OSes to
Linux's drivers, or just to run multiple instances of Linux as in a
virtualization like system like VMWare's high end products provide (they're
basically using a microkernel too for their high-end hypervisors).


> > However some of the more practical academics (yeah I know it's like jumbo
> > shrimp or military intelligence) have spun very interesting things off
> like
>
> we used to call these people research fellows at corporate
> labs.  sadly, their astroid has landed.
>

Yeah :-(.   It's a sad time.  Microsoft, for as much as they've been bashed,
is keeping that dream alive for some.  They seem to understand that R&D is
actually important to keeping on top of things.

I feel a little "icky" to admit it but I really like Visual Studio and F#.
 I was amazed at how quickly I was able to learn C# and write GUI programs
compared to say, Xcode and Cocoa.

Dave








>
> - erik
>
>

[-- Attachment #2: Type: text/html, Size: 4527 bytes --]

  reply	other threads:[~2009-09-22 15:04 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-21 16:22 ron minnich
2009-09-21 16:44 ` Patrick Kelly
2009-09-21 17:04   ` erik quanstrom
2009-09-21 17:29     ` Patrick Kelly
2009-09-21 17:02 ` tlaronde
2009-09-21 17:20   ` Patrick Kelly
2009-09-30 13:22   ` Ethan Grammatikidis
2009-09-21 17:41 ` Jack Norton
2009-09-21 17:53   ` Patrick Kelly
2009-09-21 19:32     ` David Leimbach
2009-09-21 19:42       ` Patrick Kelly
2009-09-22  1:12         ` andrey mirtchovski
2009-09-22  1:26           ` Patrick Kelly
2009-09-22  2:33             ` erik quanstrom
2009-09-22  2:52               ` andrey mirtchovski
2009-09-22  2:58               ` Patrick Kelly
2009-09-22  3:02                 ` erik quanstrom
2009-09-22  6:15               ` Tim Newsham
2009-09-22 14:23                 ` erik quanstrom
2009-09-22 16:57                   ` Tim Newsham
2009-09-22 13:48               ` Eric Van Hensbergen
2009-09-22 14:44                 ` David Leimbach
2009-09-22 14:39               ` David Leimbach
2009-09-22 14:47                 ` erik quanstrom
2009-09-22 15:04                   ` David Leimbach [this message]
2009-09-22 15:14                     ` erik quanstrom
2009-09-22 16:26                       ` David Leimbach
2009-09-22  3:36           ` ron minnich
2009-09-22  3:38             ` ron minnich
2009-09-22 14:17           ` J.R. Mauro
2009-09-22 14:47             ` David Leimbach
2009-09-22 20:14             ` Richard Uhtenwoldt
2009-09-22 20:47               ` Jack Norton
2009-09-22 22:31                 ` Patrick Kelly
2009-09-23  1:55                 ` David Arnold
2009-09-24 14:21                   ` Patrick Kelly
2009-09-24 15:46                     ` Jacob Todd
2009-09-24 15:56                     ` Iruata Souza
2009-09-28  3:35                       ` Patrick Kelly
2009-09-22 20:55             ` Chad Brown
     [not found] <<Pine.BSI.4.64.0909220654020.23231@malasada.lava.net>
2009-09-22 17:13 ` erik quanstrom
2009-09-22 18:27   ` David Leimbach
2009-09-22 22:13   ` Tim Newsham
2009-09-22 22:25     ` Tim Newsham
2009-09-22 22:44       ` Jason Catena
     [not found] <<012201ca3fec$c58f6020$50ae2060$@com>
2009-09-28  3:38 ` erik quanstrom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3e1162e60909220804m3a3a26b9pa8fca2061f37d893@mail.gmail.com \
    --to=leimy2k@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).