1

Я бегу арку Linux. Я хочу попробовать openbsd без перезаписи любых машин и без использования виртуальной машины (я не хочу использовать X11. Интерфейс VirtualBox неуклюжий, и я бы предпочел без него) Так что мой следующий логический вывод - создать chroot, установить в него openBSD и chroot в него для этого опыта openBSD, но с пространством ядра linux и перезагрузить компьютер. Я обеспокоен безопасностью, поэтому я не хочу выполнять много операций от имени пользователя root, я не хочу хранить неважные файлы.

Я думаю, что я хотел бы создать /mnt/openBSD rsync зеркало openBSD для ~/bsd, скомпилировать все и настроить для установки в /mnt /openBSD /[что угодно], но мне кажется, что я забыл что-то важное. Что я забыл?

1 ответ1

1

Я очень сомневаюсь, что это будет работать правильно. Поскольку обе операционные системы используют один и тот же двоичный формат (ELF), это "теоретически" должно быть возможным. Но на самом деле они используют только небольшое подмножество API (POSIX).

Исполняемый файл linux получает путь динамического компоновщика в раздел заголовка (обычно что-то вроде /lib/ld-linux.so). Это также исполняемый файл. Ядро операционной системы читает это при создании нового процесса, затем загружает и выполняет этот другой исполняемый двоичный файл. В среде chroot с openbsd такого компоновщика нет, потому что у bsd есть свой собственный компоновщик.

Кроме того, bsd имеет другой системный вызов и интерфейс вызова библиотеки, чем linux. Так что Linux не знает системных вызовов BSD. Интересно, что у bsd есть совместимость для бинарных файлов linux, но не обратная.

Вывод: если вы просто хотите "попробовать" openbsd, почему бы вам не попробовать живую USB-флешку openbsd?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .