Двоичная совместимость с Linux
Краткий обзор
FreeBSD предоставляет двоичную совместимость с несколькими другими UNIX–подобными операционными системами, включая Linux. Возможно, вы спрашиваете себя, зачем FreeBSD нужно уметь работать с приложениями, написанными для Linux? Ответ на этот вопрос достаточно прост: многие компании и разработчики производят программное обеспечение только для Linux, так как эта операционная система очень быстро завоевала огромную популярность в компьютерном мире. Пользователям же FreeBSD приходится обращаться к этим компаниям и разработчикам с просьбами выпустить версии своих программ специально для FreeBSD. Проблема в том, что большинство производителей программного обеспечения не осознают, насколько бы увеличился их рынок сбыта, выпускай они также FreeBSD–версии, и продолжают разрабатывать только под Linux. Что же делать пользователям FreeBSD? В этой ситуации на помощь приходит двоичная совместимость FreeBSD с Linux.
Вкратце, эта совместимость позволяет пользователям FreeBSD работать с 90% приложений для Linux без каких-либо модификаций последних. Среди этих приложений: StarOffice, Linux–версия Netscape, Adobe Acrobat, RealPlayer®, VMware™, Oracle, WordPerfect®, Doom, Quake, и многие другие. Есть сведения, что в некоторых ситуациях эти Linux–программы показывали более высокую производительность при работе под FreeBSD, чем под Linux.
Конечно, существуют некоторые особенности Linux, которые не поддерживаются в полной мере под FreeBSD. Например, не будут работать приложения Linux, использующие специфичные вызовы i386, такие как переключение в виртуальный режим 8086.
|
|
При чтении этой главы вы узнаете:
• Как включить двоичную совместимость с Linux в вашей системе.
• Как установить дополнительные совместно используемые (shared) библиотеки Linux.
• Как установить приложения Linux в систему FreeBSD.
• Детали реализации совместимости с Linux в ОС FreeBSD.
Перед прочтением этой главы вам потребуется:
• Узнать как устанавливать дополнительное программное обеспечение сторонних разработчиков (Гл. 4).
Установка
Двоичная совместимость с Linux не включена по умолчанию. Простейший способ включения этой функциональности заключается в загрузке KLD–объекта linux (''Kernel LoaDable object''). Вы можете загрузить этот модуль, набрав следующее, как пользователь root:
# kldload linux
Если вы хотите, чтобы совместимость с Linux была включена постоянно, необходимо добавить в /etc/rc.conf следующую строку:
linux_enable="YES"
Для проверки того, загружен ли модуль, может быть использована команда kldstat(8):
% kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.ko
Если по какой-либо причине вы не хотите или не можете загрузить KLD, вы можете статически включить поддержку Linux в ядро, добавив опцию options COMPAT_LINUX в файл конфигурации ядра. Затем соберите и установите новое ядро, следуя описанию в Гл. 8.
|
|
Установка необходимых библиотек Linux
Установить все требуемые библиотеки можно двумя путями: либо используя порт linux_base, либо установив их вручную.
Установка с помощью порта linux_base
Этот метод является самым простым, и мы рекомендуем воспользоваться именно им. Процесс аналогичен установке любого другого порта из Коллекции Портов (/usr/ports/). Просто выполните следующие команды:
# cd /usr/ports/emulators/linux_base-fc4
# make install distclean
Теперь вы можете работать с приложениями для Linux. Некоторые программы, возможно, будут сообщать о несоответствии подверсий некоторых системных библиотек. Однако обычно это не вызывает каких-либо неудобств.
Замечание: Возможно наличие нескольких версий порта emulators/linux_base, соответствующих различным версиям разных дистрибутивов Linux. Вы должны установить порт, наиболее близко соответствующий требованиям приложений Linux, которые будут установлены.
Установка библиотек вручную
Если у вас не установлена коллекция портов, можно установить требуемые библиотеки вручную. Вам понадобятся совместно используемые библиотеки для Linux, которые нужны программам, и runtime–компоновщик. Вам также потребуется создать ''теневой корневой каталог'', /compat/linux, где будут расположены Linux–библиотеки. Если Linux–программе нужно загрузить какую–либо совместно используемую библиотеку, FreeBSD сперва будет пытаться найти ее в этом дереве. Так, если программа загружает, например, /lib/libc.so, FreeBSD попытается открыть /compat/linux/lib/libc.so, и если такого файла не существует, будет пытаться открыть /lib/libc.so. Разделяемые библиотеки должны находиться в теневом дереве, а не в каталогах, выдаваемых загрузчиком Linux ld.so.
|
|
Обычно вам придется добавлять совместно используемые библиотеки, от которых зависят Linux–программы, только при нескольких первых установках приложений Linux на вашу систему FreeBSD. По мере работы, у вас в системе накопится достаточный набор совместно используемых библиотек Linux для запуска новых Linux-программ без дополнительных действий.
Дата добавления: 2018-10-26; просмотров: 194; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!