Originally posted by: chcarnage
Originally posted by: Nothinman
Because it's a mishmash of Apple history and unix semantics. They should have just jumped straight to UFS (since they chose Mach and FreeBSD as their core), but instead they decided to extend HFS. It apparently works, but it's not the best solution from a technical standpoint. That and the stupid directory names like /Users is really annoying.
When Apple introduced Extended HFS, OS X was still three years away. It is possible to install OS X on UFS formated volumes, the only downside is that you can't use the Classic Environment then (and any peripherals that only have drivers for MacOS 9). But OS X is fully UFS compatible.
OS X is not fully UFS compatable. It's dependant on HFS+ for many applications to work properly.
The thing is is that UFS does not support resource forks, which are nessicary for Apple applications. To use UFS you'd have to deal with all these hidden files and whatnot to gain compatability and even then it's not 100%
It's probably have improved somewhat since I used it though. (around 10.2.4-6)
The reason Apple has UFS, I beleive, is because HFS+ is not completely POSIX compliant and certain file symantics are required for certain types of Unix-related services and such that Apple wants to support on the OS X server.
For instance HFS+ is case insensitive. Unix stuff has always been case sensitive. This is a problem for many things.
I still don't get why it isn't the best solution from a technical standpoint. A strong points of HFS+ is instant defragmentation of files up to 32 MB and I don't know any technical drawback (but am not that savvy on the topic). Could you please name the technical downside (doesn't have to be a practical example).
HFS+, at least it seems to me, is old file system technology. Like FAT32. It's generally fairly fragile compared to more modern things like NTFS or Ext3.
A big example of this is the fact that HFS+ does not support journalling features, which it needs.
Journalling is nessicary so that a OS knows weither or not the directory system is in a consistant state when your recovering (rebooting) from a crash or power failure. It keeps track of directory changes and file changes in a way that reduces chances for a non-repairable file system or severe data loss. Things like Ext3 even takes this a step further and supports features for data journalling.
During the OS 10.2 series Apple introduced a journalling feature for HFS+ implimented on a BSD-style VFS. This was disabled by default, but I beleive it's standard for 10.3 and newer versions. This provides a sort of protection, but at a cost of performance. On machines without much cpu to spare then you can have a severe performance drop. On newer machines it's less of a issue.
The VFS itself is fairly irritating in the way that Apple does stuff. When you log into a shell your not actually seeing the HFS+ file system as it realy is. Instead it's a sort of emulated thing using the bsd vfs stuff. For instance the file seperators are : instead of / like in other unixes and full paths begin with the volume name instead of the root directory.
Normally this isn't a big issue, but when your trying to write scripts and such it can be confusing going from the 'Mac OS Aqua' stuff to the 'Darwin Unix' stuff.
Also in my experiance the file system is fairly fragile. Out of the macs I helped out with file system damage was the only consistant problem. Otherwise they were very reliable machines.
Except you have to realy realy be carefull of apple updates. You almost NEVER want to update your machine when there are big updates aviable. You wait a couple weeks to a month for other users to find workaround and give apple a chance to fix bugs they introduce.
If Apple was to introduce a new filing system with all the advanced featues of something like ext3/XFS/ntfs with improved I/O performance and high reliability I think that more people would want to use it as a server system. At least that's the way I look at it.
Apple has done a lot of other things very right though. The main reason I personally choose Linux over OS X is the freedom aspect of it. (that and Debian rocks) Apple is open when it's convient for them and is actually quite a bit more closed then Microsoft for other aspects. Otherwise I feel that Apple has a much better 'end user experiance' then Windows or especially Linux, but that Linux would still make a superior server and has better security.
On the /user thing, speaking of Unix compatibility, isn't this structure the way most *nixes handle it? The advantage is that each user only messes up his own account, given the proper rights. Also I was simple for me to import a user account from one Mac to another.
Well actually it's /home/ directories were you keep your user's files and preferences. Traditionally. But they have user's files and preferences in /Users directory. Why? I have no clue. There is a /usr/ directory traditionally in Unix, but that is mostly for various program's directories and such.
In unix-land people tend to take the directory system very seriously. It works, it's traditional, and it's seems very stupid to change it for seemingly no good reason.
Apple has added all sorts of things and changed things for seemingly no good reason.
It may seem like a small thing, but having files located in predictable locations because of their purpose and design is a handy thing to have. When I go into /home/ I know what to expect. When I see a error involving a file in /usr/local/lib I know what sort of things are their without having to look at anything.
It's not a huge issue, but it does raise the PITA rating a notch or two.