Проработав 9 месяцев на рабочем ноутбуке на Windows 10 - решил обновить домашний комп с Win7 на Win10.
Установив дома сборку Windows 10 x64 build 17763 RS5 1809 (10.0.17763.316) от товарища ovgorskiy обнаружил, что BlueStacks версий 0.9.х.х не запускается - вылетает при запуске либо виснет на инициализации.
В Core.log есть такая строка:
Невозможно запустить службу. System.SystemException: Cannot start VM ---> System.ComponentModel.Win32Exception: Недостаточно ресурсов памяти для обработки этой команды
А в Hypervisor.log такая:
SLG This CPU has SMEP support enabled
Предположительно, BlueStacks не запускается из-за технологии
SMEP (Supervisor Mode Execution Prevention).
Ковыряясь во внутренностях BlueStacks, пытаясь докопаться до причины, обнаружил, что BlueStacks поддерживает три различных режима виртуализации:
- LEGACY
- LEGACY SMP - Symmetric Multi Processing, симметричная многопроцессорность.
- HVM - Hardware Virtual Machine, аппаратная виртуализация.
Если ОС 32-битная, то возможны два режима - LEGACY и LEGACY SMP. Если ОС 64-битная, то возможен еще один режим - HVM.
Режим LEGACY задается по умолчанию в процессе установки BlueStacks.
Режимы переключаются правкой двух параметров в реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\BlueStacks\Guests\Andr oid\Config:
- LEGACY:
- "ForceVMLegacyMode" = 1
- "EnableVMSmpMode" = 0
- LEGACY SMP:
- "ForceVMLegacyMode" = 1
- "EnableVMSmpMode" = 1
- HVM:
В режиме HVM BlueStacks запустился. Процессор определяется верно, но как одноядерный 32-битный.