What is Fork Server Helper? |
Fork Server Helper is a system service that helps you avoid problems with Macintosh resource forks when working in heterogeneous network environments. The tool is capable of converting between different resource fork representations that are used by different file sharing standards. Additionally, the application can be setup to modify permission settings of shared files, for example to create an unsafe "scratch area" on the file server which will allow easy file exchange among a group of cooperative users. The service can be run manually or - if an operating system prior to Mac OS X 10.5 is used - it can also run automatically in the background. All features of the software can be controlled from a single launch window that is easy to use.
Mac OS X is almost unique in its tight integration of different industry standards for file sharing. The operating system supports the following file sharing technologies:
Mac OS X is capable of supporting all three file sharing standards both as a server and a client. Especially with Apple's XServe hardware and the Mac OS X Server product lines, very powerful solutions for file sharing in heterogeneous networks are available.
However, if both of the following two conditions are met, subtle problems with file sharing can arise:
Forks are different streams of data that are stored under one single file name. The user sees only one file which actually consists of multiple streams of data. Classic Macintosh applications usually create files with two forks: the data fork which contains the actual user data, and the resource fork which contains additional information, e.g. type and creator codes, thumbnail images, comments, etc.
Problems arise in this situation because the three file sharing standards supported by Mac OS X use a different way of handling and encoding Macintosh resource forks:
If you now mix different file sharing protocols when accessing the same set of files, the resource forks cannot be interpreted correctly, because each protocol uses a different method to handle them: As a result, you can no longer open the shared files in their respective applications. Additionally, the forks may be lost completely when transferring the files, or the special file names of the additional fork representations cause problems in third-party applications.
Note that this is not a "bug" in NFS, Windows or Mac OS X. With the exception of AFP, the different file sharing technologies simply have not been designed for the exchange of Macintosh resource forks. The ability to re-interpret or re-convert different fork emulations between different file sharing protocols is rather a missing feature than a defect. With the further spreading of Apple technologies in heterogeneous networks, it can be expected that such features will be implemented in future server products. Until then, Fork Server Helper will assist you in avoiding the problems.
Sidenote: In an obvious attempt to discredit Apple's XServe product, two Berlin (Germany) based companies claimed in a press release on February 10, 2003, this missing feature would be "a serious bug" in Mac OS X 10.2 Server. A critical analysis of their claims shows that they have not understood the true nature of the problem outlined above.
Historical sidenote: Because Macintosh forks cause performance degradation and architectural problems in heterogeneous environments, Apple planned to discourage the use of resource forks in November 2001. Among other guidelines, this recommendation was published in Apple Technical Note TN 2034. Due to strong protests of classic Macintosh developers, Apple was forced to withdraw the document after a few days. The contents of TN 2034 is kept under lock and key until today.
The different handling of Macintosh forks is not the only problem when mixing different file sharing protocols. Another problem is based on the fact that each protocol uses a different security policy and different features when defining access permissions. While the Darwin core of Mac OS X is based on simple but effective Unix file permissions, CIFS/SMB is capable of supporting additional features like user access lists. AFP and CIFS/SMB also support automatic propagation of file permissions from folders to enclosed files which is not a native feature of the underlying Darwin system.
During the upgrade from Mac OS X 10.1 to 10.2, Apple changed the Window Server's default permission mask for the creation of new files. As a result, applications run under the graphical Aqua user interface of Mac OS X 10.2 now enforce stricter permission settings, e.g. files created by one user cannot automatically be read by all users (It does not matter if the file is stored on a local disk or on a file server.)
In some Internet forums, users mistakenly claim this change to be a bug in Mac OS X Jaguar. The opposite is true: Mac OS X 10.2 corrects a bug of Mac OS X 10.1 where default permissions were too lax. This change was requested by many users, especially at schools and universities where network users cannot be assumed to behave cooperatively when accessing files. Jaguar now uses the correct default settings which are standard among Unix systems. This also makes sure no serious security problems arise when using common off-the-shelf Unix software.
While most of those permission problems can be solved by fine-tuning settings in the AFP and Samba file servers on Mac OS X, many users are confused by the different security policies. They expect an easier solution.
As a workaround for the problem, Fork Server Helper can optionally be used to enforce a customizable permission setting for all files in selected shared folders. With this feature, cooperative users of a small workgroup can create a "scratch area" on the server which allows them to quickly exchange documents without having to take care of permission settings.