metatrop
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору По отношению к вопросу выбора CPU для работы в VirtualBox (или ином виртуально-машинном ПО) процессоры можно делить на следующие множества: 1) Не поддерживается аппаратная виртуализация вообще (Intel VT-x). Возможна только программная динамическая компиляция. Так на Pentium 4 можно в VirtualBox запустить XP/2003/7 32-bit. Запустить в software x64 ОС VirtualBox не позволяет. На таких старых процессорах надо использовать VirtualBox 4.x или 5.x, т.к. в новейших версиях VirtualBox режим software эмуляции уже не поддерживается (его как бы заменила - с ограничениями по номенклатуре процессоров - вложенная аппаратная виртуализация; прежде вложенная виртуализация могла быть только программной). 2) Не поддерживается Extended Page Tables (EPT, NPT/RVI у AMD; SLAT). Виртуальные машины будут работать медленнее, вложенной аппаратной виртуализации не будет (только программная посредством старых версий VirtualBox). EPT поддерживают процессоры Intel, начиная с Nehalem, и не поддерживают Core2 и более старые. 3) Не поддерживается "Unrestricted Guest". Реальный режим 80x86 будет работать медленнее (в программной эмуляции), но главное, что вложенной аппаратной виртуализации в VirtualBox не будет, даже если поддерживается EPT. Unrestricted Guest требует задействования механизма EPT. Вопрос о поддержке "Unrestricted Guest" процессорами в теории решается относительно просто: она есть, начиная с Westmere (под конец 1st gen/Nehalem, 2010 год). Таким образом, у Core i5-750 с памятью DDR3 её ещё нет, не говоря уже о более ранних Core2 с памятью DDR2. Но она есть в мобильном Core i5-520M (Nehalem-Westmere-Arrandale), во всех Sandy Bridge (2nd gen, 2011) и далее. 4) Не поддерживается "VMCS Shadowing". Вложенная аппаратная виртуализация в VirtualBox будет, но более медленной, или даже гораздо более медленной. К стыду разработчиков программ наподобие AIDA64, они не показывают, поддерживает ли процессор "Unrestricted Guest" и "VMCS Shadowing". И то, и другое можно посмотреть в логе VirtualBox (VMCS Shadowing только в версиях 6+). Хотелось бы, однако, знать о таких вещах заранее, до приобретения процессора. Если ныне задать вопрос о поддержке VMCS Shadowing какому-нибудь YandexGPT, то получаешь ложные ответы: поддерживается, мол, на самом младшем Core i7-4130, да ещё с "разъяснением": потому что это Haswell. Думается, и ChatGPT ответил бы не лучше, если специально не обучен этому вопросу, потому что адекватный критерий не является "общеизвестным знанием". Мыслить же, предполагать, проверять, отбрасывать неверные предположения т.н. "искусственный интеллект" не способен, поскольку в основе своей имитирует вовсе не работу сознания, а некий аналог бессознательного доступа к ассоциативной памяти у человека... Среди различных мнений в сети можно встретить такой критерий, что VMCS Shadowing будто бы поддерживается на старших моделях и не поддерживается на младших. Он ошибочен. В частности, поддержка есть на i7-4790 и i9-9900K, но отсутствует на более скоростных i7-4790K и i9-9900KF. Насколько удалось выяснить, надо смотреть характеристики процессора на ark.intel.com и искать там пункт о поддержке vPro. Вообще vPro - это довольно тревожная "зонтичная" характеристика, которая включает такие опасные вещи, как возможность удалённого доступа к машине по бесконтрольному каналу через сетевую карту (Intel) или Wi-Fi. С потенциальным управлением извне работой дополнительного процессора, скрытого где-то на системной плате, который умеет включать и выключать основную машину, и даёт доступ в принципе ко всему. Всё это дело нельзя запретить, из "принципиальных" соображений. К счастью, в большей мере это вопрос выбора системной платы, т.е. одной лишь поддержки vPro центральным процессором тут недостаточно. И вот в числе прочего vPro сигнализирует о поддержке VMCS Shadowing, но только при условии, что процессор - Haswell (4th gen) или выше. Это относится к процессорам Intel, включая серверные Xeon. Что там у AMD - сказать сложно; хорошо, если не так всё запутано. ============= Некоторые другие ускоряющие виртуализацию расширения процессоров: VPID, MBEC/GMET. Особняком идёт поддержка VT-d - потенциально интересная давняя вещь, со времён Core2 встречающаяся у продвинутых моделей во всех линейках процессоров, и сейчас вроде бы ставшая повсеместной. Позволяет дать виртуальной машине в полное прямое пользование один из видеоадаптеров (много у кого есть в наличии один iGPU встроенный в процессор + одна дискретная видеокарта). Но VirtualBox такое пока не поддерживает. Все эти характеристики, что интересно, не относятся к команде CPUID. VT-d - биты в регистре MSR 0x3A. Unrestricted Guest - это бит #5 регистра MSR 0x485. VMCS Shadowing - "Support for an enlightened VMCS interface is reported with CPUID leaf 0x40000004", но это только если изнутри виртуальной машины. https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/nested-virtualization из кода VirtualBox 6.1.46 вроде бы следует, см. SUPDrv.cpp: supdrvQueryVTCapsInternal(), что поддержка VMCS Shadowing определяется через MSR 0x482 и 0x48B. | Всего записей: 327 | Зарегистр. 17-09-2010 | Отправлено: 18:57 01-10-2023 | Исправлено: metatrop, 19:24 01-10-2023 |
|