下一页 上一页 目录

6. 运行外部二进制文件

6.1 在 Linux 下运行 FreeBSD 二进制文件

iBCS 软件包支持在 Linux 下运行 FreeBSD 二进制文件;但是它已经很旧且无人维护。我无法使其工作。如果您在这方面有更好的运气,请告诉我。

6.2 在 FreeBSD 下运行 Linux 二进制文件

FreeBSD 能够运行 Linux 二进制文件,包括 a.out 和 ELF 格式。要做到这一点,您必须执行以下三个步骤

  1. 您必须启用 Linux 兼容性。要做到这一点(在 FreeBSD 2.2.2 中 --- 细节可能在其他版本中有所不同),您必须编辑您的 /etc/rc.conf 文件并更改
    linux_enable="NO"
    
    改为
    linux_enable="YES"
    
    并重启。另一种加载 Linux 二进制文件支持的方法是执行命令 /usr/bin/linux。这样您不必重启,并且不必始终加载 Linux 二进制文件支持(即,您节省内存)。记住添加以下行
    options         COMPAT_LINUX
    
    到 FreeBSD 内核配置文件,如果您构建新的 FreeBSD 内核。
  2. 如果您的 Linux 二进制文件是动态链接的,您必须安装 Linux 共享库。这些库包含在 FreeBSD 2.2.{2,5,6} 中,作为软件包 linux_lib-2.4.tgz(可能有更新的版本)。运行以下命令来安装软件包
    pkg_add <path_to_package>/linux_lib-2.4.tgz
    
    <package_path> 是软件包存储的目录。您也可以通过网络加载它,通过
    pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_lib-2.4.tgz
    
    或者重新运行 /stand/sysinstall。进入 “配置”,“软件包” 并使用菜单。如果您运行的是静态链接的 Linux 二进制文件,您应该执行以下命令
    brandelf -t Linux <name_of_statically_linked_linux_binary>
    
  3. 安装您想要运行的 Linux 程序。程序可以安装在 UFS 或 ext2fs 文件系统上。有关在 FreeBSD 下使用 ext2fs 文件系统的更多信息,请参阅 在 FreeBSD 下挂载 ext2fs 文件系统 章节。

我已经使用此方法在 FreeBSD 2.2.2 下成功运行了 Linux 版本的 Applixware 4.3 和 Netscape 3.01(均为 ELF 格式)(是的,我知道有 Netscape 4 的原生 FreeBSD 版本。)Linux 版本的 acroread 和 StarOffice 3 和 4 在 FreeBSD 下也运行良好。StarOffice 5 依赖于原生 Linux 线程,目前在 FreeBSD 下无法工作。阅读 FreeBSD 文档以获取有关此主题的更多信息。


下一页 上一页 目录