Запуск двоичных файлов FreeBSD в Linux

В общем, будут ли бинарники, построенные на FreeBSD, работать на операционных системах Linux, особенно Ubuntu?

5
задан Brian
15.05.2023 15:03 Количество просмотров материала 3424
Распечатать страницу

2 ответа

вы не можете запускать двоичные файлы, собранные для FreeBSD на Linux (см. этот вопрос). Они в основном являются различными операционными системами, разделяя только небольшое подмножество API (совместимость POSIX).

однако, если у вас есть исходный код, вы можете создавать двоичные файлы для Linux во FreeBSD; термин "кросс-компиляция". Например, программы для Windows часто компилируются в системе Linux.

8
отвечен grawity 2023-05-16 22:51

теоретически, вы можете запустить бинарные файлы операционной системы, созданные для других операционных систем. На практике это требует работы, и это не происходит, потому что люди не хотят делать работу за него.

есть несколько вещей, которые могут встать на пути:

  • Разные Фишки
  • различные системные вызовы
  • различные библиотечные вызовы
  • файлы / пути различны.

Итак, допустим, вы хотите запустить Intel Двоичный файл FreeBSD на машине Intel Linux. Чип будет таким же, эмуляция не требуется. Но интерфейс syscall отличается. Кто-то должен был написать код для ядра Linux, чтобы понять, что когда вы запускаете двоичный файл FreeBSD, использовать другую таблицу syscall. Это сделало немного проще, так как они оба UNIX, много кода может быть одинаковым.

но тогда вам понадобятся библиотеки. Теоретически их можно скопировать из дистрибутива FreeBSD, а динамический загрузчик тогда знайте это особое место для библиотек FreeBSD. Если бы были какие-либо пути файла конфигурации или жестко закодированные выходные пути, с этим также пришлось бы иметь дело.

Итак, это выполнимо, но это требует работы. Очень много работы. Таким образом, работа обычно выполняется только для непопулярной (или слишком новой) ОС для запуска двоичных файлов для более популярной или установленной ОС.

первоначально Microsoft NT мог запускать приложения командной строки OS/2 и имел некоторую теоретическую (наполовину) способность запускать приложения POSIX. Эта способность была отброшена, так как OS / 2 стала неактуальной, и людям понравился NT для NT, а не что-то, что могло запускать POSIX. Я не достаточно квалифицирован, чтобы сказать, считается ли Windows 7 запуск приложений Windows 95 запуском из другой ОС или просто запускает какой-то древний код, объединенный в Win7.

Mac OSX может запускать двоичные файлы MacOS 7/8, если они были закодированы для чего-то под названием Carbon (набор библиотек совместимости). Это помогло при миграции на MacOSX. Они нуждались в эмуляции для Чип архитектуры PowerPC, а также.

поскольку Linux более распространен, чем FreeBSD, нет необходимости для многих эмулировать FreeBSD на Linux. Было бы редкостью, если бы приложение на FreeBSD не было доступно на Linux. Так что никто не сделал эту работу. Но, есть возможность для FreeBSD для запуска двоичных файлов Linux. Поскольку Linux является движущейся целью, эмуляцию необходимо обновлять, когда ядро Linux сильно меняется, или ему нужны новые библиотеки.

7
отвечен Rich Homolka 2023-05-17 01:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх