Что позволяет BSD выполнять двоичные файлы Linux, но не наоборот?

Вы, вероятно, используете подобные vi привязки клавиш в zsh, не зная это.

Zsh выбирает режим ввода с клавиатуры по умолчанию путем рассмотрения $VISUAL и $EDITOR. Если они посмотрят vi-выход (как "энергия"), то это выберет подобную vi привязку вместо подобной emacs привязки.

C-p привязка, которой это находится только в подобной emacs ключевой таблице по умолчанию. Вы, очевидно, свободны связать ключи к тому, что Вы любите в подобных vi ключевых таблицах также, как "интервал" предположил. Но возможности, что Вы действительно хотите emacs режим вместо этого, которого можно достигнуть путем выполнения следующего где-нибудь в конфигурации:

bindkey -e

... предпочтительно перед реализацией другой связанной с клавиатурой конфигурации.

Как всегда, полное изложение о строчном редакторе zsh (zle) может быть найдено в соответствующем разделе справочника zsh. Это описывает, как режим по умолчанию выбран, а также какие действия связываются с какой ключи по умолчанию в различных контурных картах.

42
08.12.2014, 04:13
1 ответ

Рыночные силы.

Специально для Linux гораздо больше программ, чем для * BSD. Большая часть исходного кода программного обеспечения достаточно переносима, чтобы его можно было скомпилировать на обоих, но многие производители программного обеспечения, которые поставляют двоичные файлы Linux, не заботятся о том, чтобы сделать это для BSD, поскольку они имеют меньшую долю рынка, чем Linux по всем направлениям. ¹

Если часть программного обеспечения доступна только в двоичной форме для другой ОС, эмуляция ABI - это один из способов заставить его работать, что и делают BSD.²

Когда-то давно, когда x86 Unix занимала большинство рынка по сравнению с Linux, в Linux была добавлена ​​функция iBCS , позволяющая запускать двоичные файлы, созданные для SCO Unix и тому подобное. Интерес к этой функции снизился по мере увеличения рыночной доли Linux, так что во время серии разработок Linux 2.3 было позволено прийти в упадок .3 Судебные процессы SCO помогли вывести эту функцию из Linux. , но я считаю, что это вторично по сравнению с потерей рыночной силы, которая породила эту функцию.

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

Сегодня такая вещь мало востребована. Сколько вам известно двоичных программ для BSD, которые также не созданы для Linux? Должны быть некоторые, но я предполагаю, что большинство из них предназначены для встроенных BSD, таких как Junos . Такая функция не будет создана, если она не позволяет запускать в Linux важный набор программ, которые иначе не запустились бы.


Сноски:

  1. Я не считаю OS X здесь BSD , поскольку это отдельная проблема двоичной совместимости. FreeBSD, OpenBSD и NetBSD используют ELF на x86, тогда как OS X использует совершенно другой исполняемый формат . Динамическое связывание также сильно отличается в OS X от традиционных x86 BSD.

    См. этот вопрос для получения дополнительной информации о двоичной совместимости Linux и OS X.

  2. FreeBSD ; OpenBSD ; NetBSD

  3. Как и в случае некоторых видов акул , программа, которая перестает двигаться вперед, умирает. Мы называем это явление гнилью , а не удушьем, когда оно происходит с программным обеспечением, но причина и следствие те же.

  4. Контраст NDISwrapper ,что позволяет Linux запускать только двоичные драйверы сетевых карт, написанные для Windows XP. Выявлена ​​потребность, и потребность удовлетворена. Где это нужно для запуска двоичных файлов, предназначенных только для BSD?

56
27.01.2020, 19:35

Теги

Похожие вопросы