Вопрос или проблема
Я рассматриваю доступные публичные дистрибутивы Solaris и пытаюсь определить, какую архитектуру поддерживает каждый из них. Может ли кто-нибудь прокомментировать, поддерживают ли они i386 (32-бит) и/или X64 (64-бит)?
Сайт Oracle:
https://www.oracle.com/solaris/solaris10/downloads/solaris10-get-jsp-downloads.html
Illumos:
https://dlc.openindiana.org/isos/hipster/20161030/
Я спрашиваю, потому что у меня есть старое программное обеспечение, которое необходимо скомпилировать с поддержкой только 32-бит.
Ответ или решение
Вопрос о поддержке i386 и X64 архитектур в дистрибутивах Solaris требует тщательного анализа каждой из доступных версий. Solaris, как операционная система, изначально была разработана компанией Sun Microsystems, и с тех пор, после поглощения Sun компанией Oracle, продолжает существовать в двух главных направлениях: Solaris от Oracle и Illumos-based дистрибутивы (например, OpenIndiana).
Oracle Solaris
Oracle Solaris 10, как упомянуто в вашем вопросе, исторически поддерживала обе архитектуры — как i386, так и X64. Однако, начиная с Solaris 11, Oracle официально прекратила поддержку 32-битных архитектур на уровне установки системы. Это связано с тем, что большинство современных серверных систем и приложений не только оптимизированы для работы на 64-битных процессорах, но и требуют их для эффективной работы.
Теоретически, можно запустить 32-битные приложения на 64-битной версии Solaris, поскольку она сохраняет библиотечную поддержку для 32-битных бинарников. Это достигается благодаря режиму совместимости, встроенному в Solaris, что позволяет запускать 32-битные приложения в 64-битной среде. Однако для установки самой операционной системы вы сможете использовать только 64-битные процессоры.
Поэтому, если ваша цель — компиляция и запуск 32-битного программного обеспечения в среде Solaris, то скорее всего, вам придется воспользоваться более ранними версиями Solaris или же специальными методами и средствами компиляции и выполнения 32-битных приложений на 64-битной платформе.
Illumos и OpenIndiana
Illumos является ответвлением от OpenSolaris, который был разработан после того, как Oracle закрыла исходные коды Solaris. Illumos и его дистрибутивы, такие как OpenIndiana, созданы сообществом разработчиков open-source, и одна из их целей — поддержка различных архитектур и аппаратных средств.
OpenIndiana изначально предлагалась как альтернатива с поддержкой как 32-битной, так и 64-битной архитектур, особенно в ранних версиях. Однако с развитием технологий и ростом популярности 64-битных систем, разработчики также начали двигаться в направлении оптимизации и улучшения поддержки 64-битной архитектуры. На текущий момент большинство последних версий OpenIndiana оптимизированы под 64-битные системы, хотя поддержка 32-битных приложений на уровне библиотек и совместимости сохраняется.
Применение
Если у вас есть необходимость в поддержке i386 исключительно для компиляции и выполнения специфического ПО, возможно, вы можете рассмотреть следующие подходы:
-
Использование виртуальных машин: Создание 32-битной виртуальной машины на вашей текущей системе возможно через ПО типа VirtualBox или VMware, устанавливая туда более старую версию Solaris 10, которая поддерживает 32-битную архитектуру.
-
Кросс-компиляция: На вашей 64-битной системе вы можете установить и использовать инструменты, позволяющие кросс-компиляторную сборку 32-битного приложений. Это требует установки пакетов и библиотек, необходимых для 32-битной сборки.
-
Использование Docker или иных контейнеризационных технологий: В некоторых случаях можно использовать контейнеры для запуска старых версий ОС или библиотек, необходимых для 32-битного приложения. Однако, учитывая специфичность Solaris, это может потребовать дополнительной настройки.
-
Сообщество и форумы: Используйте ресурсы сообщества, такие как форумы и списки рассылки, чтобы получить информацию о текущем опыте пользователей, работающих с подобными сочетаниями архитектур и ПО.
-
Проверка совместимости ПО: Убедитесь, что ваше ПО действительно требует запуска на 32-битной системе. Возможно, современная версия или обновление может обеспечить совместимость с 64-битными системами.
В вашем случае, важно утверждение о том, что в современных дистрибутивах поддержка 32-битной архитектуры ограничивается библиотеками и программной эмуляцией, в то время как полноценная система вероятнее потребует специальной настройки или использования более старых версий дистрибутива.