James Hague: "But all the little bits of complexity, all those cases where indecision caused one option that probably wasn't even needed in the first place to be replaced by two options, all those bad choices that were never remedied for fear of someone somewhere having to change a line of code... They slowly accreted until it all got out of control, and we got comfortable with systems that were impossible to understand."
Counterpoint by John Cook: "Some of the growth in complexity is understandable. It's a lot easier to maintain an orthogonal design when your software isn't being used. Software that gets used becomes less orthogonal and develops diagonal shortcuts." If there's ever been a system in
dire need of a complete redesign, it's UNIX and its derivatives. A mess doesn't even begin to describe it (for those already frantically reaching for the comment button, note that this applies to other systems as well).
Member since:
2006-10-08
To wrap them into what exactly?
For CLI programs, I think one can see the interface as an essential part of the engine. You cannot separate them at this low level.
First of all, please try to use the proper terminology. There are no folders. Those are called directories. A folder is the name of a visual representation of a directory.
Then, the disk isn't "labeled as /". Depending on support, disks and their partitions can actually be labeled (e. g. "bootdisk", "datadisk1", "datadisk2"). / is the root of the file system hierarchy. This is not neccessarily a hard disk! For example, if you boot from a DVD or a USB stick into a RAM disk like environment, there are no hard disks at all. And now you introduce hard disks to that system. Depending on if you apply some RAID technology, a disk, a part of a disk or a compound of disks might be mounted at /home in that hierarchy.
Depending on the system you're using, /mnt might be reserved for specific operations, e. g. as a temporary mount point for the system operator. Using the "everything is rooted in /, but mounts can be done everywhere" concept, you are free do even mount several disks "combined" into one directory, e. g. you have /opt/stuff containing files of many disks. This enables you to separate functionality of the system into different media (or as a memory file system), and you can easily enforce specific mount options for security (e. g. no execution possible) or access (e. g. can only be read) or speed. You can even swap the set of installed programs or databases based upon mount point (just changing which device gets mounted).
As you see from my examples, UNIX has been designed to have lots of drives. Flexibility is the key.
What's the difference? I don't see anything significant here. I see you show a "drive as a prefix" habit such as the "drive letters" you find in DOS and "Windows", but why should they be tied to be the 1st element of a path? What if symbolic links enter the stage? How should that be processed?
You see that the flexibility of "mount wherever you need it" is superior to this approach.
However, the representation to the user is a totally different thing. For example, if you attach a disk to the system, an icon pops up on the desktop, you click it and see what's on the disk. Need to deal with device names or paths? No.
The space is the command line separator. If filenames do contain spaces, quoting or escaping is needed.
If you compare to VMS, you'll find a slightly different approach: Here command options or qualifiers are often found as associations, e. g. instead of calling "dostuff in.txt out.txt" you do "dostuff /in=in.txt /out=out.txt" which is more verbose, but you could omit the spaces.
Correct. You shouldn't use spaces in file names. Using _ is possible, and many GUI programs simply substitute the _ to an actual space in display. However, there are "tricks" that a good programmer has to implement to make scripts work with malformed filenames that don't just contain spaces, but also other possible characters, such as quotes, newlines, and backspaces.
This makes it easy to compare to "Windows" which is also interpreted as being "one thing". :-)