Here are some typical examples:
| Solaris | SuSE | OpenBSD |
|---|---|---|
| /var/apache/conf | /etc/apache | /var/www/conf |
| /etc/init.d/httpd stop | /sbin/init.d/httpd stop | apachectl stop |
| /usr/openwin/blahblahblah | /etc/X11/xdm | /usr/X11R6/lib/X11/xdm |
| /etc/inet/dnscache | /var/dnscache | /service/dnscache/root |
| /etc/init.d/dns stop | /sbin/init.d/named stop | svc -t /service/dnscache |
In short, UNIX integrators have thrown away the efficiencies of the mass market. Diehard UNIX fans adapt; most users and system administrators give up in disgust.
I'm not going to take this any more. I demand cross-platform compatibility:
| Solaris | SuSE | OpenBSD |
|---|---|---|
| /usr/local/apache/conf | /usr/local/apache/conf | /usr/local/apache/conf |
| apachectl stop | apachectl stop | apachectl stop |
| /usr/X11R6/lib/X11/xdm | /usr/X11R6/lib/X11/xdm | /usr/X11R6/lib/X11/xdm |
| /service/dnscache/root | /service/dnscache/root | /service/dnscache/root |
| svc -t /service/dnscache | svc -t /service/dnscache | svc -t /service/dnscache |
The tremendous benefits of cross-platform compatibility come from a package's interface being exactly the same on every system. It is a relatively minor benefit for different packages to have similar interfaces. Breaking cross-platform compatibility for the sake of cross-package similarity is a horrible idea.
I used to think that UNIX integrators introduced frivolous incompatibilities because they simply didn't understand the costs. But I've realized that the problem runs deeper: they like the costs. UNIX integrators are competing with each other for new UNIX users; each integrator wants its users to stick to its system. As in Garrett Hardin's ``Tragedy of the Commons,'' every integrator sees an immediate benefit in introducing an incompatibility, even though these benefits eventually add up to a giant loss.