1

Мне было интересно ... 64-битные ОС могут запускать 32-битные приложения, верно? Windows использует WoW64 для достижения этого права?

У меня вопрос, когда эти приложения запускаются, они используют 64-битные или 32-битные адреса? Мне было интересно это из-за использования памяти ...

3 ответа3

4

Внутренне каждая программа видит около 2 ГБ пространства памяти (есть флаг, который можно установить, чтобы получить 3 ГБ), и, следовательно, никогда не нужно 64-разрядные указатели (32-разрядные указатели будут работать нормально). ОС может обрабатывать все 64-битное управление реальной памятью изнутри.

Не совсем уверен, что это связано с использованием памяти.

3

32-разрядные приложения могут видеть только 32-разрядные адреса. WoW64 имитирует 32-битную среду внутри 64-битной памяти для 32-битных приложений.

0

Ваш вопрос не очень конкретен, поскольку вы не различаете адреса виртуальной памяти и адреса физической памяти.

Да, программы x86 будут использовать больше памяти и ресурсов. У них будет 32-разрядное виртуальное адресное пространство, но под ним диспетчер памяти (MM или MMM) будет использовать указатели x64. Не так, как это требует много усилий, хотя.

Безусловно самая большая стоимость ресурса - водители. В ядре произошли существенные изменения, многие из которых были связаны с безопасностью, что потребовало переписывания больших частей драйверов.

Внутренне каждая программа видит около 2 ГБ пространства памяти (есть флаг, который можно установить, чтобы получить 3 ГБ), и, следовательно, никогда не нужно 64-разрядные указатели (32-разрядные указатели будут работать нормально). ОС может обрабатывать все 64-битное управление реальной памятью изнутри.

Я считаю, что это неправда. Каждая программа видит 4 ГБ (32-битное виртуальное адресное пространство), но ядро разделяет физическое адресное пространство пополам. Два 2ГБ, с которыми вы знакомы, относятся к адресу физической памяти.

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