Fun_People Archive
2 Mar
Microsoft invents symbolic links!
Content-Type: text/plain
Mime-Version: 1.0 (NeXT Mail 3.3 v118.2)
From: Peter Langston <psl>
Date: Thu, 2 Mar 100 11:55:02 -0800
To: Fun_People
Precedence: bulk
Subject: Microsoft invents symbolic links!
X-Lib-of-Cong-ISSN: 1098-7649 -=[ Fun_People ]=-
X-http://www.langston.com/psl-bin/Fun_People.cgi
From: Dan Franklin
This is from http://www.microsoft.com/presspass/features/2000/02-28w2k.asp
Microsoft Research Innovations Enhance Windows 2000
REDMOND, Wash., Feb. 28, 2000 -- Three years ago, Bill Bolosky and
two Microsoft colleagues were brainstorming technology advances when
an idea occurred to them -- why not save operating system disk space
by storing duplicate files as links that point to a single file housed
in a central location?
Not only would this save storage space, they reasoned; it would also
result in substantial performance improvements. Moreover, it would
make it faster for information technology (IT) managers to install
computers for new employees since they'd no longer be required to
copy massive amounts of data each time they set up a new desktop.
Symbolic links, as described in the first paragraph, can be traced back at
least as far as Multics (i.e., between 25 and 35 years ago). UNIX symbolic
links are modelled on the ones in Multics.
The use of network file systems and symbolic links to reduce administrative
copying, as described in the 2nd paragraph, has been used by Sun virtually
since the inception of NFS. Maybe Apollo did it before them.
The one innovation seems to be the creation of a filesystem, the Single
Instance Store, that identifies identical files automatically via
signatures, removes the extra copies, and creates copy-on-write links for
them. I'm sure this will work perfectly.
Not discussed in the article is the implementation of symlinks itself - a
not-so-new notion called "reparse points" by Microsoft. Instead of
embedding symlinks into your filesystem, you embed specially identified
executable code that the kernel calls to determine the rest of the
filename. This is much more general than symlinks, and is obviously better
because of all the advantages:
1. Harder to detect loops
2. A very nice security hole for attackers
3. If the reparse code has a bug, you can crash the whole OS
4. OS version incompatibilities can be embedded in shared filesystems -
better upgrade EVERYBODY to win2k, guys!
and, best of all,
5. They STILL haven't implemented symlinks. That is, according to my
informant, there is no tool that just inserts a "reparse point" to point to
another place in the filesystem. Unless it's in the NT Resource Kit for
Win2k; he hasn't found it yet, but you never know.
© 2000 Peter Langston