Bri*_*ian 4 linux freebsd ubuntu
一般而言,在 FreeBSD 上构建的二进制文件是否可以在 Linux 操作系统上运行,尤其是 Ubuntu?
理论上,您可以让操作系统运行为其他操作系统制作的二进制文件。在实践中,它需要工作,而且不会发生很多,因为人们不想为它做工作。
有一些事情可能会妨碍您:
因此,假设您想在 Intel Linux 机器上运行 Intel FreeBSD 二进制文件。芯片是一样的,不需要仿真。但是系统调用接口不同。必须有人为 Linux 内核编写代码才能意识到,当您运行 FreeBSD 二进制文件时,要使用不同的系统调用表。由于它们都是 UNIX,因此这变得更容易一些,很多代码可以相同。
但是你需要这些库。这些理论上可以从 FreeBSD 发行版复制,然后动态加载器就会知道 FreeBSD 库的这个特殊位置。如果有任何配置文件路径,或硬编码的输出路径,这也必须处理。
所以,它是可行的,但它需要工作。很多工作。因此,这项工作通常只针对不受欢迎(或太新)的操作系统完成,以便为更流行或成熟的操作系统运行二进制文件。
最初,Microsoft NT 能够运行 OS/2 命令行应用程序,并且具有运行 POSIX 应用程序的一些理论上(半途而废)的能力。随着 OS/2 变得无关紧要,这种能力已被取消,人们喜欢 NT 而不是 NT,而不是任何可以运行 POSIX 的东西。我没有足够的资格说运行 Windows 95 应用程序的 Windows 7 是否被视为从另一个操作系统运行,或者只是运行一些融入 Win7 的古老代码。
Mac OSX 可以运行 MacOS 7/8 二进制文件,如果它们被编码为一种叫做 Carbon(一组兼容性库)的东西。这有助于迁移到 MacOSX。他们还需要对 PowerPC 芯片进行仿真。
由于 Linux 比 FreeBSD 更常见,因此确实不需要很多人在 Linux 上模拟 FreeBSD。FreeBSD 上的应用程序在 Linux 上不可用的情况很少见。所以没有人做过这项工作。但是,FreeBSD有能力运行 Linux 二进制文件。由于 Linux 是一个移动目标,当 Linux 内核发生很大变化时,需要更新仿真,或者需要新的库。