* * * * *
Files filing
I was hanging out with Mark [1] and Jeff and one of the topics of
conversation was over filesystems.
Okay, I'll admit up front we tend to be a bit geeky.
Anyway, a conversation about filesystems. I don't like the way Unix handles
the filesystem, slapping everything under one tree, but I came from a rather
heavy MS-DOS, VMS and AmigaOS background where you had volume labels (okay,
so the support under MS-DOS was rather weak and ineffectual). Under AmigaDOS
(for instance) if I have a floppy with a name of “StarControl” (which I
actually do) and I insert it, I now have a volume I can look through called
“StarControl:”. And if there is a program on that disk (which there is) it
can reference files from the volume “StarControl:” such as
“StarControl:config” or “StarControl:scenarios/galactic war”. And, copy
protection concerns aside, I can copy the files off the floppy disk onto the
harddrive (“Captain Napalm:”) into a games directory and then set the volume
“StarControl:” to be equivalent to “Captain Napalm:games/star.control” and
have everything work without problem.
“Ahha!” said Mark. “That's all great and everything but what if you insert
two floppies with the same name?” Erm … ah … <cough> <cough> “And what if,”
he continued, “I have a lot of volumes? There could be name clashes. Like
both the C compiler and Pascal compiler looking for files from volume
Compile?” Erm … uh … look! The Sweedish Bikini team!
“And why have a different syntax for the the volume name and then the rest of
the filesystem?” asks Mark, avoiding my transparent attempt at changing the
subject. “Do you allow slashes in the volume name?”
“Sure,” I said.
“And do you allow colons in filenames?”
“I'm sadistic enough of a programmer to say yes.”
“AAaaaaaaaaaaaaaaiiiiiiiieeeeeeeeeeeeeeeeeee,” he said. But point taken.
Mark, on the other hand, like the One Tree, Über Alles approach to a file
system. Other machines on the network would appear under, say, /net. But that
seems wrong to me. Each local machine is the top of their respective trees
when it seems like it should be the other way around.
“But if I'm on a non-networked machine, just where should the root be? Should
it be under /net/machinename?” Mark asked.
“No,” I repled. “It should have a volume name.”
[1]
http://www.conman.org/people/myg/
Email author at
[email protected]