Re: Filesystem mounting
Posted: Fri Nov 25, 2011 3:05 am
Gosh, it has been a loooooong time... I'll try to explain it from a user's perspective, in relation to Linux terms.
On Linux, you have your USB stick under e.g. /dev/sdb1. In order to actually use it, it has to be "mounted" somewhere. Modern Linux setups do that automatically, using the volume label as subdirectory name to /media, e.g. /media/USB_STICK and display external drives in your filesystem navigator. Back when this discussion was hot, this wasn't automatic, so you have to see this in relation to those times.
It is not immediately obvious which directory in the filesystem resides on which mounted device. You can peruse the mount list to figure it out, but since a mount point can be a subdirectory of a different mount point, things can get confusing.
On AmigaOS (of course any concept I am talking about in praise is inspired by that noteworthy) things are handled a bit differently.
Let's say we plug our USB stick into an Amiga (that actually has USB ports...). Let's say, for the sake of comparability, that the system recognizes the device as "sdb1:". (Not going into details about device driver handling here, that's a different ballgame. Let's just assume.)
Thus, "sdb1:" is the physical name of the device. It's somewhat specific to the system setup. Another Amiga might recognize the stick under a different device name (just like another Linux box might call the stick "/dev/sdc1" or somesuch). In any case, I can access that stick under that name, without "mounting" it somewhere ("sdb1:/foo/file.txt").
A device also has a logical name, assigned at formatting (i.e., the volume label). Being specific to the device, and any other Amiga would recognize the device under that same name. I can access the stick under that name, too ("USB_STICK:/foo/file.txt").
The third way to access something is through an "assign". I can "assign" a "device name" to a directory, or a list of directories:
With either of the above, "FOO:/file.txt" would be the third way to access that peculiar file.txt on the stick. It is possible to have an assign pointing to more than one directory. (Searching in all of them, writing to the first one in the list.) Where a Linux user would mount a specific drive to /var/log, an AmigaOS user would simply assign LOG: to the desired location, i.e. "doing it the other way around".
I won't go into the pro / con discussion, this is long enough as it is. Just a couple of things I liked very much about this concept:
On Linux, you have your USB stick under e.g. /dev/sdb1. In order to actually use it, it has to be "mounted" somewhere. Modern Linux setups do that automatically, using the volume label as subdirectory name to /media, e.g. /media/USB_STICK and display external drives in your filesystem navigator. Back when this discussion was hot, this wasn't automatic, so you have to see this in relation to those times.
It is not immediately obvious which directory in the filesystem resides on which mounted device. You can peruse the mount list to figure it out, but since a mount point can be a subdirectory of a different mount point, things can get confusing.
On AmigaOS (of course any concept I am talking about in praise is inspired by that noteworthy) things are handled a bit differently.
Let's say we plug our USB stick into an Amiga (that actually has USB ports...). Let's say, for the sake of comparability, that the system recognizes the device as "sdb1:". (Not going into details about device driver handling here, that's a different ballgame. Let's just assume.)
Thus, "sdb1:" is the physical name of the device. It's somewhat specific to the system setup. Another Amiga might recognize the stick under a different device name (just like another Linux box might call the stick "/dev/sdc1" or somesuch). In any case, I can access that stick under that name, without "mounting" it somewhere ("sdb1:/foo/file.txt").
A device also has a logical name, assigned at formatting (i.e., the volume label). Being specific to the device, and any other Amiga would recognize the device under that same name. I can access the stick under that name, too ("USB_STICK:/foo/file.txt").
The third way to access something is through an "assign". I can "assign" a "device name" to a directory, or a list of directories:
Code: Select all
assign FOO: USB_STICK:/foo
assign FOO: sdb1:/foo
I won't go into the pro / con discussion, this is long enough as it is. Just a couple of things I liked very much about this concept:
- SYS: is always the boot device (i.e., you are independent of either physical or logical name of the boot device).
- PROGDIR: is specific to a running process, and always points to the directory the executable is located in (giving access to config files etc.).
- WORK: is your home directory.
- C: is a multi-assign that worked equivalent to $PATH / %PATH%. LIBS: worked similar for shared libraries.
- "File Handlers" could be implemented that provided "devices" that weren't, like HTTP:. (Should be obvious what that one did.)
- The desktop displayed all logical devices, giving easy access to your hard drive partitions, external drives, RAM disk etc.; you could always add assigns as desktop icons for shortcuts.
- "Deferred" assigns wouldn't give you an error if a target device didn't exist at the time of the assign. Instead, the system would prompt you to "Please insert volume FOO: in any drive" when such an assign was accessed. (We are talking floppy times here, you might see where this might be handy.)