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.