9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Uriel <uriel99@gmail.com>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net>
Subject: Re: [9fans] Using the Acme Editor
Date: Thu, 21 Aug 2008 09:42:47 +0200	[thread overview]
Message-ID: <5d375e920808210042y15e4f4f9l24d16d3a113bfa33@mail.gmail.com> (raw)
In-Reply-To: <1A65C224C4D988F3504822E7@computer>

On Wed, Aug 20, 2008 at 11:46 PM, Eris Discordia
<eris.discordia@gmail.com> wrote:
> Thank you, sqweek. The second golden Golden Apple with καλλιστι on it is
> totally yours. The first one went to Russ Cox.
>
>>  You don't care who mounts what where, because the rest of the system
>> doesn't notice the namespace change.
>
> So essentially there shouldn't be a problem with mounting on a single
> "public" namespace as long as there is one user on the system. mount
> restriction in UNIX systems was put in place because multiple users exist
> some of whom may be malicious. Virtualization and jailing will relax that
> requirement.

Mount restrictions on unix are needed (among other reasons) because of
a broken security model (ie., suid).

Virtualization and jailing are hacks to work around the inherent
limitation that in unix resources can not be easily
abstracted/isolated and are plagued by the 'only root can do X'
restriction ('only root can become another user', hence su/sudo, only
root can open certain ports, etc.) which Plan 9 cleanly does away
with.

Linux could do many things plan9 can do, if it got rid of all suid
programs (by perhaps using the cap device implementation for the linux
kernel, if that is ever accepted in mainline linux), but until then...

>>  Uh, what now? You either have an interesting definition of home
>> computer or some fucked up ideas about plan 9. You only need a cpu
>> server if you want to let other machines run processes on your
>> machine. You only need an auth server if you want to serve resources
>> to a remote machine.
>
> Neither statement is true. On a home computer you certainly need a term.
> You'll need a cpu for a number of tasks. And you'll need auth if there's
> going to be more than one user on the system, or if you need a safe way of
> authenticating yourself to your computer. A single glenda account doesn't
> quite cut it. If you're going to access your storage you'll need some
> fs('s), too.
>
> The bottom line is: term is _certainly_ not enough for doing all the tasks a
> *BSD does, and requiring a home computer to do all these tasks is far from
> inconceivable. One *BSD system is almost functionally equivalent to a
> combination of term, cpu, auth, and some fs('s).

A plan9 terminal can run programs, and can have a local storage file
system, with multiple users. As for authentication, in such use case
unix auth is little more than a farce of security theater which could
easily be implemented in plan9 (and I think some people has) if you
wanted to keep your three year old child from accessing your account
but is futile for much else.

>> incantation, that's beside the point. In 9p, the abstraction is a file
>> tree, and the interface is
>
> auth/attach/open/read/write/clunk/walk/remove/stat.
>
> ioctl and VFS are suspiciously similar even though they serve less generic
> functions.

Try to do ioctl over the network.

>> network operations - everything is done via /net. Thanks to private
>> namespaces, you can transparently replace /net with some other crazy
>> [compatible] filesystem, which might load balance over multiple
>
> How does that differ from presenting of a network interface by a block
> device on UNIX? And why should avoiding system calls be considered an
> advantage? Your VFS layer could do anything expected from /net provided that
> file system abstraction for the resources represented under /net is viable
> in the first place.

Here is a reason: Because Plan 9 has no network-related syscalls, and
applications contain no networking code (even when they are still
network transparent thanks to 9P), when ipv6 was added to plan9, no
changes were required to either any syscalls or any applications. On
the other hand on unix they are still to this day adding ipv6 support
to certain apps (and every app that needs to access remote resources
needs its own networking code that is aware of each protocol it wants
to support, etc).

When ipv6 needs to be replaced, the pain in the unix software
ecosystem will be even greater, while in plan9 it will be virtually
painless.

There are also the benefits of allowing different applications
(namespaces) use different network stacks without requiring full
virtualization of the whole OS (the few unix systems that have been
able to implement this functionality have done so after many years of
painful efforts and the result is incredibly clunky and complex), and
I don't think any unix systems allows a single application (or
namespace) to access *multiple* network stacks concurrently... and
remote network stacks? don't think so either.

>
>> implemented on any system, which is true [to an extent]. But it's
>> apparent than no others have the taste to do it as elegantly as plan 9 -
>
> It's not a matter of taste. There are situations, many situations actually,
> where the file system abstraction is plainly naive. Sticking with it for
> every application verges on being an "ideology."
>
> The VFS approach is by no means inferior to Plan 9's everything-is-a-file,
> but on UNIX systems it is limited to resources that can be meaningfully
> represented as file systems. Representing a relational database as a file
> system is meaningless. The better representation is something along the
> lines of the System::Data::DataGrid class on Microsoft .NET framework.

Ah, interesting example, isn't it sad that every database system on
unix (or windows) needs to include its own networking code, its own
authentication, etc.?

Peace

uriel

  parent reply	other threads:[~2008-08-21  7:42 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-20 21:46 Eris Discordia
2008-08-20 22:41 ` Pietro Gagliardi
2008-08-20 22:54   ` [9fans] aquarela only uses /rc/bin/9fs? Benjamin Huntsman
2008-08-20 22:58     ` Steve Simon
2008-08-20 23:09       ` Benjamin Huntsman
2008-08-20 23:19         ` Steve Simon
2008-08-20 23:31           ` Benjamin Huntsman
2008-08-20 23:41           ` Benjamin Huntsman
2008-08-21 15:39       ` Benjamin Huntsman
2008-08-20 23:15 ` [9fans] Using the Acme Editor Geoffrey Avila
2008-08-21  7:42 ` Uriel [this message]
2008-08-21 10:58   ` erik quanstrom
2008-08-21 13:25     ` john
2008-08-21 13:31     ` David Leimbach
2008-08-21 16:59   ` Eris Discordia
2008-08-21 17:14     ` ron minnich
2008-08-21 10:36 ` erik quanstrom
  -- strict thread matches above, loose matches on Subject: below --
2008-08-24 17:13 Eris Discordia
2008-08-25  3:57 ` Michaelian Ennis
2008-08-24 16:52 Eris Discordia
2008-08-24  8:20 erik quanstrom
2008-08-21 17:36 Eris Discordia
2008-08-21 20:39 ` ron minnich
2008-08-21 22:11   ` Eris Discordia
2008-08-22  2:58     ` Federico G. Benavento
2008-08-22  6:13     ` Andrew Simmons
2008-08-22  9:41       ` hiro
2008-08-21 17:20 Eris Discordia
2008-08-21 16:39 Eris Discordia
2008-08-21 17:11 ` ron minnich
2008-08-21 18:29   ` hiro
2008-08-20 23:49 Eris Discordia
2008-08-20 13:01 Eris Discordia
2008-08-20 13:22 ` Sander van Dijk
2008-08-20 12:56 Eris Discordia
2008-08-20 18:08 ` sqweek
2008-08-20 18:58   ` erik quanstrom
2008-08-20 19:47     ` sqweek
2008-08-20 12:36 Eris Discordia
2008-08-20  9:44 Eris Discordia
2008-08-20  9:34 Eris Discordia
2008-08-20 11:56 ` Robert William Fuller
2008-08-20 12:25   ` Eris Discordia
2008-08-20  9:03 Eris Discordia
2008-08-20  8:33 Eris Discordia
2008-08-20  8:29 Eris Discordia
2008-08-20  8:04 Eris Discordia
2008-08-20  1:39 Eris Discordia
2008-08-20  2:08 ` Pietro Gagliardi
2008-08-20  2:13 ` Iruata Souza
2008-08-20  8:08   ` Eris Discordia
2008-08-20  5:02 ` sqweek
2008-08-20  9:15   ` Eris Discordia
2008-08-20  9:44     ` Sander van Dijk
2008-08-20  9:53     ` sqweek
2008-08-20 10:12     ` matt
2008-08-20 12:27       ` Bruce Ellis
2008-08-20 16:23     ` Iruata Souza
2008-08-20  8:10 ` Steve Simon
2008-08-20  0:30 Eris Discordia
2008-08-20  3:34 ` geoff
2008-08-20  3:43   ` Pietro Gagliardi
2008-08-20  3:48     ` Bruce Ellis
2008-08-20  8:42   ` Eris Discordia
2008-08-20  0:10 Eris Discordia
2008-08-20  2:29 ` a
2008-08-20  8:01 ` Steve Simon
2008-08-19 23:51 Eris Discordia
2008-08-20  0:30 ` Pietro Gagliardi
2008-08-20  1:31 ` Iruata Souza
2008-08-20  1:43   ` Eris Discordia
2008-08-20  2:00     ` Pietro Gagliardi
2008-08-20  7:03       ` Eris Discordia
2008-08-20  7:36         ` bb
2008-08-21  0:03     ` Dan Cross
2008-08-24  7:27 ` John Waters
2008-08-24 18:14   ` Eris Discordia
2008-08-25  5:43     ` John Waters
2008-08-19 22:00 Eris Discordia
2008-08-19 22:12 ` andrey mirtchovski
2008-08-19 23:14   ` Eris Discordia
2008-08-20  3:12   ` Skip Tavakkolian
2008-08-20  3:17     ` andrey mirtchovski
2008-08-20  8:31     ` Eris Discordia
2008-08-19 22:14 ` Francisco J Ballesteros
2008-08-19 22:26   ` Steve Simon
2008-08-19 23:27   ` Eris Discordia
2008-08-19 23:36     ` Jonathan Cast
2008-08-20  0:42       ` Eris Discordia
2008-08-20  2:08     ` a
2008-08-20  8:06       ` Eris Discordia
2008-08-20  3:26     ` Skip Tavakkolian
2008-08-20  3:31       ` Bruce Ellis
2008-08-20  8:41       ` Eris Discordia
2008-08-19 22:25 ` Pietro Gagliardi
2008-08-19 22:31   ` Pietro Gagliardi
2008-08-19 22:46     ` Federico G. Benavento
2008-08-20  0:31       ` Eris Discordia
2008-08-19 23:03     ` Benjamin Huntsman
2008-08-20  0:34       ` Eris Discordia
2008-08-20  0:58         ` Benjamin Huntsman
2008-08-19 22:34 ` erik quanstrom
2008-08-20  3:11 ` Skip Tavakkolian
2008-08-19 15:52 Wendell xe
2008-08-19 16:01 ` ron minnich
2008-08-19 16:11 ` erik quanstrom
2008-08-19 21:23   ` Lyndon Nerenberg
2008-08-19 16:31 ` Robert Raschke
2008-08-19 21:00   ` Steve Simon
2008-08-19 17:50 ` Ramon de Vera
2008-08-19 17:58 ` Russ Cox
2008-10-22 12:37   ` Rudolf Sykora
2008-10-23 18:26     ` Rudolf Sykora
2008-10-23 20:17       ` yy
2008-10-24 17:51     ` Russ Cox
2008-10-24 18:17       ` Rudolf Sykora
2009-04-05 16:19       ` Rudolf Sykora
2008-08-19 20:22 ` Pietro Gagliardi
2008-08-19 21:24   ` Iruata Souza
2008-08-20  0:28     ` David Leimbach
2008-08-20  3:54 ` Pietro Gagliardi
2008-08-20  3:56   ` Bruce Ellis
2008-08-20  8:48   ` Eris Discordia
2008-08-20  9:21     ` matt

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=5d375e920808210042y15e4f4f9l24d16d3a113bfa33@mail.gmail.com \
    --to=uriel99@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).