次のページ 前のページ 目次へ

6. 別 OS のバイナリを実行する

6.1 FreeBSD のバイナリを Linux で実行する

iBCS パッケージが Linux 上での FreeBSD バイナリの実行をサポートし ています.しかし,これは古い上にメンテナンスもされていません.筆者は実 行することができませんでした.もし,うまく動かすことができた方がいらっ しゃればぜひ教えてください.

6.2 Linux のバイナリを FreeBSD で実行する

FreeBSD では Linux のバイナリ(a.out, ELF 形式の両方)を実行することがで きます.これを行うためには,以下の3つの手順を行う必要があります.

  1. Linux 互換を有効にします.これを行うには(FreeBSD 2.2.2の場合 --- 他のバージョンでは細かい部分が異なるかもしれません) /etc/rc.confを編集し,
    linux_enable="NO"
    
    の部分を
    linux_enable="YES"
    
    としてシステムを再起動します.Linux のバイナリサポートを呼び出す別の方 法として,/usr/bin/linuxコマンドを実行する方法があります.こ ちらの方法なら再起動する必要はありませんし,常に Linux バイナリサポー トをロードしておく必要はありません(つまりメモリを節約できます). 新しい FreeBSD カーネルを構築するならば,FreeBSD のカーネル設定ファイ ルに
    options         COMPAT_LINUX
    
    という行を追加するのを忘れないでください.
  2. Linux バイナリにライブラリがダイナミックリンクされている場合には, Linux の共有ライブラリをインストールする必要があります.これは, FreeBSD 2.2.{2, 5, 6} ではlinux_lib-2.4.tgzパッ ケージとして入っています(新しいバージョンが入手可能かもしれません).パッ ケージをインストールするには,次のコマンドを実行します.
    pkg_add <path_to_package>/linux_lib-2.4.tgz
    
    <path_to_package> はパッケージが置かれているディレ クトリです.
    pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_lib-2.4.tgz
    
    を実行するか /stand/sysinstall を再実行することでネットワーク からインストールすることもできます.``Configure'', ``Packages'' を入力 して,メニューを使います.スタティックリンクされた Linux のバイナリを 実行する場合には,以下のコマンドで実行します.
    brandelf -t Linux <スタティックリンクされたLinuxのバイナリの名前>
    
  3. 実行したい Linux のプログラムをインストールします.インストール 先は ext2fs ファイルシステムでも UFS ファイルシステムでも構いません. FreeBSD での ext2fs ファイルシステムの利用については, FreeBSD で ext2fs ファイルシステムをマウントするの章を参照して ください.

筆者はこの方法で Linux 版の Applixware 4.3 と Netscape 3.01 (どちらも ELF 形式)を FreeBSD 2.2.2 上で実行させることに成功しました.(もちろん, FreeBSD 用の Netscape 4 があることは知っています.) Linux 用の acroread と StarOffice 3, 4 も FreeBSD 上で動作しました.StarOffice 5 は Linux のネイティブスレッドに依存しており,現在は FreeBSD 上では動作 しません.この話題についての詳細な情報については,FreeBSD の関連ドキュ メントを参照してください.


次のページ 前のページ 目次へ