The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: bakul@bitblocks.com (Bakul Shah)
Subject: [TUHS] Charles Forsyth on putting Unix on a diet.
Date: Fri, 27 Oct 2017 23:38:23 -0700	[thread overview]
Message-ID: <20171028063838.265B2156E7D7@mail.bitblocks.com> (raw)
In-Reply-To: Your message of "Fri, 27 Oct 2017 19:34:11 -0700." <921D6FFC-DD60-406F-B90E-EC40DB638624@orthanc.ca>

On Fri, 27 Oct 2017 19:34:11 -0700 Lyndon Nerenberg <lyndon at orthanc.ca> wrote:
Lyndon Nerenberg writes:
> > I wish there was a way to evolve plan9 into a modern Unix.
> > Making an existing modern Unix diet into a lean OS is close to
> > impossible.
> 
> But if you try to turn Plan9 into a lean UNIX, you lose everything that
> Plan9 advocates.  In particular, I don't see how you can possibly
> integrate namespaces into UNIX in any meaningful way.  Without those,
> it's no longer Plan9, and therefore a pointless endeavour.

As you may know I have been a 9fan for a long time & would
love if plan9 became mainstream. But I just don't see any hope
of a wider acceptance of Plan9.  My perception is that plan9
itself has not evolved a lot in 20-30 years. May be its
original structure is good enough or may be it just hasn't had
a large enough set of innovative users. The small group of
plan9 users continue to mostly use the stuff built by the Bell
lab guys.  I think it would be a real shame to see plan9
become a relic. The road not taken. Would be nice if we can do
something about it.

IMHO, the best hope to keep it alive is to pull a reverse C++
trick!  C++, which is now a much more complex beast of a PL,
initally got accepted because "it was compatible with C".  So
the idea here is to provide a Unix compatible (complex) API as
a library to allow running a lot of existing s/w and entice
people to write new s/w to a simpler but more composable API.

It won't make plan9 advocates happy and it won't have a
"plan9" API but this seems doable to me.  Start with the Plan9
kernel so you've already got process centric and mountable
namespaces. Next "port" linux or freebsd API. Write a set of
library functions that implement various Unix API calls by
calling on the plan9 API. Mutate the latter as necessary.  [As
an example, if 9P is found lacking, enhance it or replace it]
This is not unlike implementing linux API on top of a
microkernel. Concurrently port some kernel resident critical
subsystems from Unix to become user mode programs
communicating via 9p (or its child). All the while keeping an
eye on performance and complexity.

If done right, I think we can do away with containers & jails
for cloud based s/w, without any loss of security.o

So that is my pipe dream!

> > A unix kernel boils down to a few subsystems: device drivers +
> > device switch, scheduling, VM, networking and network switch,
> > filesystems + filesystem switch, interrupt handling, process
> > management. Some graphics support. A bunch of this can be
> > pushed out of the kernel without much loss of efficiency.  And
> > may be the original design decisions of Unix need to be
> > revisited for 21st century hardware.
> 
> The release of the 10th Edition UNIX source is much more enlightening. 
> Here you can see a fully functional UNIX with what, 29?, system calls? 
> And you can see the genesis of many of the Plan9 concepts (/proc,
> dial(), mk, mux, etc).

I don't know much about it.

In a separate message you wrote:

> But as a thought experiment, I have long wondered how one might approach
> the UNIX kernel with the view of removing ioctl(2).  What would the
> aftermath look like?  That's probably the most invasive attack Plan9
> could take on UNIX.  It would be very interesting to see what falls out.
>  It might be practical to attempt this with 10th Edition, just to see
> ...

That is the "dieting" approach. Much harder as you have to
constantly watch out you haven't broken anything.  But if you
start with plan9, ioctl() is already gone! However, it can be
implemented as a library function for dusty decks.


  parent reply	other threads:[~2017-10-28  6:38 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-27 10:36 Noel Chiappa
2017-10-27 13:03 ` Clem Cole
2017-10-27 13:23   ` Steve Nickolas
2017-10-27 21:51     ` Andy Kosela
2017-10-27 23:04       ` Larry McVoy
2017-10-27 23:15         ` Steve Simon
2017-10-27 23:39           ` Tim Bradshaw
2017-10-28  2:00       ` Bakul Shah
2017-10-28  2:34         ` Lyndon Nerenberg
2017-10-28  2:42           ` Lyndon Nerenberg
2017-10-28  6:38           ` Bakul Shah [this message]
2017-10-27 21:43   ` Dave Horsfall
  -- strict thread matches above, loose matches on Subject: below --
2017-10-28 13:11 Norman Wilson
2017-10-27 21:30 Norman Wilson
2017-10-27 22:49 ` Chris Torek
2017-10-26 14:57 Doug McIlroy
2017-10-26 22:07 ` George Michaelson
2017-10-25  2:51 Dan Cross
2017-10-25  3:14 ` Larry McVoy
2017-10-26 17:27 ` Larry McVoy
2017-10-26 22:12   ` George Michaelson
2017-10-27  3:49     ` Steve Nickolas
2017-10-27  6:55       ` arnold
2017-10-27  7:30   ` Derek Fawcus
2017-10-27  9:44     ` David Arnold

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=20171028063838.265B2156E7D7@mail.bitblocks.com \
    --to=bakul@bitblocks.com \
    /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).