9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "rob pike" <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] mv vs cp
Date: Tue,  9 Oct 2001 08:25:17 -0400	[thread overview]
Message-ID: <20011009122525.2C9E119A27@mail.cse.psu.edu> (raw)

> walk away from symlinks because it was hard to get right, more than
> because  philosophically they were 'wrong'? 

Symlinks were put in to make it possible to link directories from user
mode and to have cross-file system links.  Plan 9 does both those
things another way.  I have never felt the need for symbolic links in
Plan 9.

They also have some ugly properties.  I find the delayed evaluation
mystifying sometimes.  Also, although they are used to implement
cross-system links, they live on a single file system.  For example,
/usr/rob might be a link to /home/rob even though /usr and /home live
on different disks or even different servers, which means /usr has a
file that talks about /home, a file on a different machine.  Besides
the creepiness of that, the delayed evaluation can bite you hard, the
permanence of the link can be troublesome, and this little piece of
name space stored as a time bomb somewhere in the network rather than
in the client's representation of its resources is poor compartment-
alization and therefore lousy design.  And why on earth does ls
default to showing you the link rather than what it points to?

This does not imply that Plan 9's name space was designed in reaction
to symbolic links, of course, but at least some of us did observe that
symbolic links were little more than a disgusting hack and that there
had to be a better way.  Ken was already thinking about that way when
all this was happening back in the early '80s.  I believe that the
design he came up with, Plan 9's name space, is indeed better,
although it has some problems of its own and doesn't exactly cover
symlinks (the lack of permanence of the mount table comes to mind).
The unification of all naming operations into a single data structure
(the mount table), the well-defined evaluation, and the clean
separation of file servers and name spaces, and most important the
user-modifiable, per-process name space were all improvements.

As I said in my `dot-dot' paper, Unix still hasn't recovered from all
the problems wrought by the introduction of symbolic links.  It is a
lesson, although not a new one, that the ugly, supposedly temporary
hack of symlinks became a permanent fixture of the system, and one
that people argue for passionately, mistaking the addressing of the
issue for a true solution to the problem (c.f.  Plan 9's # notation).

-rob



             reply	other threads:[~2001-10-09 12:25 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-09 12:25 rob pike [this message]
2001-10-09 16:18 ` Thomas Bushnell, BSG
  -- strict thread matches above, loose matches on Subject: below --
2001-10-11  3:19 anothy
2001-10-11  3:00 okamoto
2001-10-11  2:18 Russ Cox
2001-10-11  1:06 okamoto
2001-10-10 13:18 forsyth
2001-10-10  1:45 okamoto
2001-10-09 17:16 presotto
2001-10-09 16:59 rog
2001-10-09 16:39 forsyth
2001-10-10  8:49 ` Thomas Bushnell, BSG
2001-10-09 12:05 forsyth
2001-10-09  1:46 okamoto
2001-10-09  5:46 ` Richard
2001-10-08 16:54 presotto
2001-10-08 16:11 anothy
2001-10-08 14:46 rob pike
2001-10-08 15:00 ` Alexander Viro
2001-10-08 15:14   ` Markus Friedl
2001-10-08 16:22 ` Lucio De Re
2001-10-08 13:03 rob pike
2001-10-08 14:40 ` Lucio De Re
2001-10-08 13:00 rob pike
2001-10-09  9:04 ` Douglas A. Gwyn
2001-10-09 11:43   ` George Michaelson
2001-10-10  8:57     ` Douglas A. Gwyn
2001-10-10 11:50       ` Borja Marcos
2001-10-10 11:53         ` Borja Marcos
2001-10-08  6:54 nigel
2001-10-08  5:05 jmk
2001-10-08  5:45 ` Mike Haertel
2001-10-08  6:27   ` Lucio De Re
2001-10-08  6:25 ` Lucio De Re
2001-10-08  9:50 ` Douglas A. Gwyn
2001-10-08  9:51 ` Thomas Bushnell, BSG
2001-10-08 15:37 ` Richard
2001-10-08 16:02   ` William Josephson
2001-10-07 21:20 nigel
2001-10-07 19:11 presotto
2001-10-08  7:33 ` Skip Tavakkolian
2001-10-07 18:53 presotto
2001-10-07 16:23 jmk
2001-10-08  4:28 ` Lucio De Re
2001-10-08  4:49   ` Alexander Viro
2001-10-08  6:10     ` George Michaelson
2001-10-08  6:34       ` Alexander Viro
2001-10-08  6:49         ` George Michaelson
2001-10-08  7:00           ` Lucio De Re
2001-10-08  7:13             ` George Michaelson
2001-10-08  7:44               ` Alexander Viro
2001-10-08  7:28             ` Alexander Viro
2001-10-08  6:54       ` Lucio De Re
2001-10-08  7:10         ` George Michaelson
2001-10-08  8:28           ` Lucio De Re
2001-10-08  9:51     ` Thomas Bushnell, BSG
2001-10-08 10:30       ` Alexander Viro
2001-10-09  9:03         ` Thomas Bushnell, BSG
2001-10-09  9:33           ` Alexander Viro
2001-10-09 15:58             ` Thomas Bushnell, BSG
2001-10-09 16:43               ` davel
2001-10-10  8:49                 ` Ralph Corderoy
2001-10-10  8:49                 ` Thomas Bushnell, BSG
2001-10-10  9:48                   ` davel
2001-10-11  9:10                     ` Thomas Bushnell, BSG
2001-10-11 10:54                       ` davel
2001-10-12  9:19                         ` Thomas Bushnell, BSG
2001-10-09 16:46               ` Alexander Viro
2001-10-10  8:50                 ` Thomas Bushnell, BSG
2001-10-10 10:29                   ` Alexander Viro
2001-10-10  1:05               ` erik quanstrom
2001-10-10  2:15                 ` david presotto
2001-10-10  4:54                   ` Skip Tavakkolian
2001-10-10  8:30                 ` davel
2001-10-08 10:34       ` Boyd Roberts
2001-10-08  9:50   ` Douglas A. Gwyn
2001-10-08 11:13     ` Lucio De Re
2001-10-08  9:42 ` Thomas Bushnell, BSG
2001-10-07 12:43 presotto
2001-10-07 13:01 ` Lucio De Re
2001-10-07 17:26 ` philw
2001-10-07  7:02 forsyth
2001-10-07  6:35 Russ Cox
2001-10-08  9:41 ` Thomas Bushnell, BSG
2001-10-07  6:29 Lucio De Re
2001-10-07  6:42 ` Quinn Dunkan
2001-10-07  9:17   ` Lucio De Re

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=20011009122525.2C9E119A27@mail.cse.psu.edu \
    --to=rob@plan9.bell-labs.com \
    --cc=9fans@cse.psu.edu \
    /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).