FreeBSD・Linux・商用UNIX


FreeBSD・Linux・商用UNIXの違い

UNIXは、PC-UNIXと商用UNIXとに分けられます。厳密な意味で UNIXと言えるのは、商用UNIXのうち、AT & T Bell Laboratory のライセンスを受けたものだけです。以後、これをUNIX®と 表記します。PC-UNIXは、厳密には、UNIX®ライクOSと言う ことになります。また、BSD系UNIXは、厳密には、BSD Operating System と言うことになります。

PC-UNIXで有名なものは、まず第一にLinux、第二に FreeBSDが挙げられます。LinuxはSVR系のPC-UNIXです。 FreeBSDはBSD系のPC-UNIXで、4.4BSD Operating System の流れを汲みます。

AT & T Bell Laboratoryのライセンスを受けた UNIX®は、一部BSD系UNIXの要素を取り込み、SVR系UNIXと なりました。SVR3とSVR4とがあります。SVR3とは、 System V Release 3(しすてむ ふぁいぶ りりーす すりー) の略で、SVR4とは、System V Release 4(しすてむ ふぁいぶ りりーす ふぉー)の略です。SVR3 UNIX®には、 IBM製のAIXがあり、SVR4 UNIX®には、Hewlett Packard製の HP-UXやSun Microsystems製のSolarisがあります。

商用UNIXもLinuxもSVR系ですが、FreeBSDだけが BSD系となっています。SVR系とBSD系には、違いがあります。 例えば、Solarisのshutdownコマンドはスクリプトですが、 FreeBSDのshutdownコマンドはバイナリです。他にも、 ディレクトリ レイアウトの違いもあります。この項では、 アプリケーションの設定ファイルのパスの違いについて 解説したいと思います。


アプリケーションの設定ファイルのパスが違う

この項で扱うFreeBSDの環境は、 FreeBSD(98) 4.11-RELEASE-Rev01 p26 です。UNIXでは一般に、設定ファイルは、/etc以下で一元管理 されます。ところが、FreeBSDのports/packagesコレクション によってインストールされるアプリケーション ソフトウェアの 設定ファイルは、主に/usr/local/etcに置かれます。 HP-UXやLinuxでは、/etc/sasldb2となりますが、 FreeBSDでは、/usr/local/etc/sasldb2となるのです。 WebリソースでUNIXアプリケーションの設定を学ぶ際は、 例えば「FreeBSD」と「Cyrus」のand検索で辿り着いたページの 設定はそのまま使えます。しかし、「Cyrus」と「設定」の and検索で得られたページでは、環境がHP-UXやLinuxや Solarisだったりするので、/etcを/usr/local/etcに 読み換える必要があるかも知れません。

Apacheのhttpd.confを例に採り、さまざまなUNIXで 設定ファイルがどのようなパスに置かれているか調べて みました。結果を表に纏めると、以下のようになります。

UNIX別のhttpd.confのパス
UNIXの名称 Apacheのバージョン httpd.confのパス
Vine Linux 2.5 Apache /etc/httpd/conf/httpd.conf*1
Turbo Linux 7 Server Apache 2.0.52 /usr/local/apache2.0.52/httpd.conf*2
FreeBSD(98) 4.11-RELEASE-Rev01 p26 Apache 1.3.37_2 /usr/local/etc/apache/httpd.conf
FreeBSD/i386 6.2-RELEASE-p12 Apache 2.2.4_2 /usr/local/etc/apache22/httpd.conf
NetBSD/pc98 1.4.3A Apache 1.3.3.2 /usr/pkg/etc/httpd/httpd.conf
Solaris 8 Apache /etc/apache/httpd.conf
Solaris 10 Apache 2 /etc/apache2/httpd.conf*3
HP-UX Apache /opt/apache/conf/httpd.conf 又は
/opt/hpws/apache/conf/httpd.conf
*1  Fedoraな ど、Red Hat系のLinuxは、このパスになるようです。
*2  ソースから自分でコンパイルする と、このパスになるようです。
*3  SUSE系Linuxも、この パスになるようです。

まとめ

FreeBSDとNetBSDでそれぞれ/usr/local/etcと/usr/pkg/etc の下の方にhttpd.confがあるのが特異な点です。BSD系UNIXは ディレクトリ レイアウトが特殊なのでしょう。