4 ms·
If it is indeed a union mount mechanism, then that's truly a remarkable feature. Reading the documentation makes it sound like something akin to an symbolic lin
by stutonk 6y ago
If it is indeed a union mount mechanism, then that's truly a remarkable feature. Reading the documentation makes it sound like something akin to an symbolic link but perhaps not in the actual filesystem; I still can't tell if it's implemented in the kernel/FS or just the shell (or to what extent the two are integrated). If it's just the shell then this seems to be a shining example of where the POSIX interface is holding us back. In Linux, they've tried to implement union mounts a number of times (as UnionFS, aufs, and OverlayFS) because it's almost too complicated to get right for Unix-style filesystems and you need a bunch of kernel-level code. Do you happen to know if it was possible to create the ASSIGNs programmatically? Does deleting/renaming files in the ASSIGN work like you'd hope?
- BruceEel 6y agoYes, it was indeed implemented at OS-level, you could point at the assigned name/alias from, say, a paint program and find the files/dirs you'd expect to see. Changes to files/dirs too worked as expected as far as I can recall (disclaimer: most recent Amiga experience -> 1994). It was also possible to create assigns programmatically with calls to the Amiga DOS library, see "dos.library/AssignPath" in http://amiga.nvg.org/amiga/reference/Includes_and_Autodocs_2._guide/node059A.html http://amiga.nvg.org/amiga/reference/Includes_and_Autodocs_2... NAME AssignPath -- Creates an assignment to a specified path (V36) SYNOPSIS success = AssignPath(name,path) D0 D1 D2 BOOL AssignPath(STRPTR,STRPTR) FUNCTION Sets up a assignment that is expanded upon EACH reference to the name. This is implemented through a new device list type (DLT_ASSIGNPATH, or some such). The path (a string) would be attached to the node. When the name is referenced (Open("FOO:xyzzy"...), the string will be used to determine where to do the open. No permanent lock will be part of it. For example, you could AssignPath() c2: to df2:c, and references to c2: would go to df2:c, even if you change disks. The other major advantage is assigning things to unmounted volumes, which will be requested upon access (useful in startup sequences). INPUTS name - Name of device to be assigned (without trailing ':') path - Name of late assignment to be resolved at each reference RESULT success - Success/failure indicator of the operation SEE ALSO AssignAdd(), AssignLock(), AssignLate(), Open()