Article View: comp.sys.amiga.tech
Article #96Flame about AmigaDOS 1.4
From: Marc Plumb
Date: Mon, 19 Jun 1989 06:11
Date: Mon, 19 Jun 1989 06:11
82 lines
4054 bytes
4054 bytes
Okay, Mr. Beats... you say you want to put hard links in 1.4
("Filing System Enhancements for V1.4," DevCon), but I
can't figure out how you do it. Or should I be talking to
Randell? Or someone else? Anyway, other FS hackers might
be interested, so...
My idea was to make a FileHandle work like a Unix file handle,
in that you can read, write, etc. to it, but it doesn't have a name.
This works great with hard links. Locks do have names, but there
is no Unix equivalent, so they can have whatever semantics you like
without confusing port efforts.
Now you go and give us this LockFromFH() call, which turns a FileHandle
into a lock... which we can turn into a pathname. Please tell me
what is ther result of the following operations:
Create file a/b.
Make links c/d and e/f to a/b.
Open files a/b, c/d, and e/f - call these file handles 1, 2, and 3.
Delete link a/b. While you're at it, delete directory a, rename
directory c to x, file x/d to x/y, and file e/f to foo/bar/baz/quux/f.
Print the path names for file handles 1, 2, and 3.
What path name do you expect to come from these? My idea was to associate
a given *pathname* with a lock, so you couldn't delete a *link* that had
locks on it (although you could rename it), but to leave FileHandles alone
and nameless. You could, in fact, delete an open file's last link and have
Unix behaviour. (I hear cheers...)
But now I'm all confused. I still don't know whether a comment goes with a
link or a file. Obviously, links have different pathnames but all the
same file size. What about comments?
And do locks through different pathnames compare equal using SameLock()?
Other points...
Personally, I still think a late-binding PATH: device is cleaner than
AssignPath(), and more flexible to boot.
Please don't screw up ExAll(). ExNext() is the real fuck-up, and you
need to *get rid* of it to really clean things up, so ExAll() is only
a convenience - it doesn't solve any problems I can think of.
So please don't add any more kludges to directory scanning.
What in the heck is a buffered seek, as opposed to a normal seek?
Why dies GetProgramDir return a lock on the *directory* instead of one on
the *executable*, which would seem to be much more useful, as it would
also give you the name and let you add extra junk to the one file after
the end of the LoadSeg() hunks.
What does a struct NotifyRequest do? Why won't even Amiga-Amiga NFS's
support it? It's a *really* useful thing, and would be great if
it's done properly.
Is NameFromLock() guaranteed to be atomic? A sequence of ParentDir() and
Examine() calls, can, if the names of various componenets are being
changed on the fly, produce a "pathname" that never existed, although
each component did at one time. Does NameFromLock() avoid this race
condition?
The ability to abort DOS calls is great!
And having a better message system would be *really* nice.
You could somehow tell AmigaDOS which interface I'm using, and it
would send the apropriate packet. Messy for you, but do *NOT*
require that every handler support the old packets, or nobody will
bother with the new kind.
How about creating a special daemon process whose job it is to
load libraries into the system. So my task can call OpenLibrary()
without worrying about the location, and if the library isn't
resident, a message gets sent to this daemon, which loads it for
me and has any wierd stuff AmigaDOS wants. Or just fix the relavent
AmigaDOS calls not to need a process...
And finally, how do I get more info on the 1.4 DOS plans?
Thnaks all!
--
-Colin Plumb
Technical Details
Message-ID:
<1989Jun19.021152.18130@ziebmef.uucp>Path:
arc1-ca.pugleaf.net!utzoo!attcan!ncrcan!ziebmef!mcpShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!ncrcan!ziebmef!mcp From: mcp@ziebmef.uucp (Marc Plumb) Newsgroups: comp.sys.amiga.tech Subject: Flame about AmigaDOS 1.4 Summary: LockFromFH() conflicts with hard links Message-ID: <1989Jun19.021152.18130@ziebmef.uucp> Date: 19 Jun 89 06:11:51 GMT Reply-To: mcp@ziebmef.UUCP (Colin Plumb) Organization: Ziebmef Public Access Unix, Toronto, Ontario Lines: 82