как я могу использовать один и тот же virbr0 как в qemu :///системе, так и в qemu :///сеансе?

Это разные подходы к одной и той же общей проблеме с несколько разными областями :выполнения двоичных файлов, созданных для разных архитектур.

Когда вы получаете бинарный файл для запуска, вам нужны три вещи :библиотеки, которые ему нужны (, если они есть, включая его динамический загрузчик ), поддержку системных вызовов, которые он делает, и возможность интерпретировать содержащиеся в нем машинные инструкции. Multilib и multiarch обращаются к первым.

Multilib работает с таблицей известных вариантов для каждой архитектуры. Первоначально это относилось к вариантам ABI, , например. на MIPS, но в настоящее время наиболее распространенным его использованием является поддержка 32 -бит на x86 :обычно он определяет lib32как 32 -битный каталог библиотеки (и это определение для x86 -конкретный ). Таким образом, установка с несколькими библиотеками может предоставить 64-битный -загрузчик в /libи 32-битный -в /lib32. На стороне компилятора вы указываете -m32для создания 32-битного -битного двоичного файла с использованием мультибиблиотеки.

Мультиархитектура является более общей, :ее определения не зависят от архитектуры хоста. Все библиотеки находятся в подкаталоге lib, соответствующем их целевой архитектуре; /usr/lib/x86_64-linux-gnu/, /usr/lib/i386-linux-gnuи т. д. На стороне компилятора вы используете соответствующий кросс-компилятор -.

Какой подход вы используете для запуска 32 -битного двоичного файла, зависит от дистрибутива. Debian и его производные теперь используют multiarch, другие дистрибутивы используют multilib.

1
16.08.2020, 21:32
1 ответ

на самом деле нет необходимости добавлять сеть в сессию. Напрямую использовать virbr0 нормально.

1
18.03.2021, 23:12

Теги

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