У меня есть 64-битная машина с установленными Windows 7 32-бит и Ubuntu 32-бит в качестве двойной загрузки. Могу ли я запустить 64-битное программное обеспечение поверх этих 32-битных ОС, или они являются "узким местом", ограничивающим истинные возможности базового оборудования?
решение1
Теоретически я думаю, что нет.
Но один из способов обойти эту проблему — запустить программное обеспечение на 64-разрядной виртуальной машине, размещенной на вашей 32-разрядной ОС, поскольку вы упомянули, что ваша машина сама по себе 64-разрядная.
решение2
Ваша операционная система — это ваш интерфейс к базовому оборудованию. Приложения в современных операционных системах не имеют прямого доступа к оборудованию и могут использовать его только через системные вызовы через ядро.
Поэтому, если ваше ядро (ОС) поддерживает только 32-битные операции, приложения, использующие 64-битные, работать не будут.
Что касается виртуальных машин, ваше оборудование не обязательно должно быть 64-битным, чтобы симулировать 64-битную среду внутри 32-битной ОС. Вот пример8-битный микроконтроллер AVR, работающий на 32-битном ядре Linuxс помощью эмулятора. Эмуляция занимает много времени, поэтому около 24 МГц, которые получают чипы, уменьшаются до чего-то в диапазоне килогерц (на самом деле 10 кГц).
Итак, да, запуск 64-битного ПО внутри 32-битной ОС (внутри виртуальной машины) на любом оборудовании создаст узкое место. Лучше установить 64-битную ОС, если у вас есть оборудование.