Вопрос: Что ограничивает компьютеры Windows 7 x64 до <= 192 ГБ оперативной памяти?


Я знаю, что материнские платы, BIOS и т. Д. Могут устанавливать верхние пределы того, сколько оперативной памяти мы можем установить или использовать на отдельных машинах. Однако, что определяет максимальную ОЗУ для Windows 7 x64?

Это фундаментальное архитектурное ограничение ОС? Различные версии Windows 7 имеют разные максимальные значения RAM (версия для начинающих <= 2 ГБ, Professional <= 192 ГБ). Это что-то, что может быть действительно изменено?

Для сравнения, Ubuntu 64x обеспечивает до 1024 ГБ оперативной памяти.


114
2018-02-03 22:21


Источник


возможный дубликат 64-битная ОС и оперативная память - Ƭᴇcʜιᴇ007
Они выбирают физические ограничения. Когда была выпущена Windows 7, не было аппаратного обеспечения, поддерживающего более 192 ГБ памяти на нерыночном рынке - Ramhound
установите Windows 8, здесь Pro / Enterprise может использовать оперативную память 512 ГБ. - magicandre1981
Сравнение Windows с Ubuntu / Linux в любом деле / ​​области - шутка, правильно? :] Есть тысячи вещей и функций, Ubuntu / Linux имеет, что Windows не хватает. Это как спросить, почему монохромный принтер не может печатать в цветах, если цвет может быть! :] - trejder


Ответы:


Короткий ответ: лицензия

Исключая аппаратное обеспечение из уравнения, это в основном искусственное ограничение программного обеспечения:

Предел [The] извлекается из реестра, вызывая функцию с именем ZwQueryLicenseValue, который сам вызывается из внутренней процедуры, которую опубликованные названия файлов символов Microsoft называются как MxMemoryLicense,

Источник: Лицензионная память в 32-разрядной версии Windows Vista

Дополнительная информация

Конечно, данные лицензии, хранящиеся в реестре даже в недокументированном формате, могут быть легко изменены пользователями, и у них будет стимул попробовать, так как Microsoft взимает значительно разные цены за разные лицензии. Поэтому у Microsoft есть продуманная схема проверки того, что данные лицензии остаются такими же, как Microsoft. Ядром является хранилище данных о том, были ли изменены данные лицензирования, и с этой целью экспортирует еще две функции, ExGetLicenseTamperState а также ExSetLicenseTamperState,

Источник: Лицензирование программного обеспечения

ExGetLicenseTamperState

Эта функция [недокументированная] запрашивает ядро, были ли изменены данные лицензии.

Внутреннее использование - в таймере, который повторяется примерно каждый час. Если обнаружено состояние тампера 4, то Windows останавливается. Код проверки ошибок SYSTEM_LICENSE_VIOLATION (0x9A), с 0x1B как первый аргумент.

Источник: ExGetLicenseTamperState

Практический пример

Предположим, у вас есть компьютер с 32 Гигабайт оперативной памяти, и вы устанавливаете Windows 7 Home Premium x64 (64-разрядная версия). В этом случае вы будете ограничены 16 гигабайтами. Если вы будете использовать Windows Anytime Upgrade, и обновить до более дорогого издания, внезапно ограничение будет установлено на 192 GiB.

Вывод

Все выпуски Windows 7 используют один и тот же исходный код. Основное различие - количество функций / ограничений, которые либо включены, либо отключены. Профессиональные и более высокие клиентские версии не имеют верхнего предела того, сколько оперативной памяти они могут обрабатывать, и имеют только лицензию на то, что Microsoft гарантирует для поддержки.

Кроме того, в лицензионном соглашении Windows 7 явно говорится, что вы не можете «использовать программное обеспечение для коммерческих услуг хостинга программного обеспечения», намекая, что Microsoft предполагает, что если вам нужно больше оперативной памяти, с которой лицензирована самая высокая версия клиента, то то, что вы действительно хотите, является сервером лицензия. Серверный экземпляр Windows 7 (то есть Windows Server 2008 R2) может использовать до 2 тибайт ОЗУ в выпусках Enterprise и Datacenter.

Поскольку технология движется быстро, то, что было приемлемо вчера, может быть недостаточно завтра. Чтобы догнать, Windows 8 подняла ограничения на 128 гигабайт и 512 гигабайт для выпусков Core и Pro / Enterprise соответственно. Это относится только к 64-разрядным версиям: 32-разрядные версии по-прежнему ограничены 4 гигабайтами. Версия сервера, Windows Server 2012, может адресовать до 4 тибайт ОЗУ в более высоких версиях.

дальнейшее чтение


185
2018-02-03 22:26



Это лучший ответ, потому что он ссылается на хороший источник с анализом. - Kevin Panko
Просто небольшая защита: исходный код может быть одинаковым, но это не обязательно тот же код, который был бы там без поддержки. В качестве примера была проделана большая работа по повышению масштабируемости, когда у вас много процессоров (см. «Глобальный диспетчерский замок» здесь: tomshardware.com/news/microsoft-windows-server,6589.html). Этот код почти наверняка одинаково во всех выпусках, однако более высокие версии Windows поддерживают больше процессоров. Но поддержка большего количества процессоров заняла больше внимания. Справедливо ли взимать плату за эту работу? - Mark Sowul
одним словом: min (license_limit, physical_limit) - akira
@ Продукты AndonM.Coleman, такие как Windows, которые продают столько копий, затраты на разработку для каждой лицензии незначительны по сравнению с большинством других затрат на лицензию. Я вижу онлайн-статьи о том, что Windows 8 продала более 100 миллионов лицензий в течение первых 6 месяцев. В течение жизни Windows 8 / 8.1 я ожидаю, что стоимость разработки для каждой лицензии будет меньше, чем затраты на производство розничной коробки и содержимого в коробке. Новые версии Windows обычно не записываются с нуля. Windows 8 / 8.1 / 2012 все очень похожи, и аналогичные под капотом для Vista / 7/2008. XP / 2003/2000 также могут быть сгруппированы - BeowulfNode42
Не поймите меня неправильно, новые версии сделали на них работу, чтобы сделать их лучше, чем старые версии. Но такие вещи, как управление памятью, практически идентичны между версиями. Несколько хитростей часто делаются по мере того, как новое оборудование выделяет проблемы, которые раньше не были очевидны при тестировании. Но основной код остается неизменным в группе продуктов. - BeowulfNode42


Microsoft лицензирует это таким образом. Вероятно, они хотят, чтобы вы пошли и заплатили за продукт Windows Server, лицензированный для работы с большими ресурсами. То же самое происходит с другими продуктами, такими как SQL Server. У SQL Server Express есть ограничения, поэтому, если вам нужно больше ресурсов, вы должны купить продукт, который его разрешает.


53



Он он, Windows Server доступен бесплатно для студентов (DreamSpark), так что для нас более целесообразно это получить, чем купить копию Windows ... (без аффилиации) - gparyani
это одна из причин того, что 32-разрядные Windows XP и выше могут поддерживать PAE, но MS ограничивает ограничение на 4 ГБ ОЗУ - phuclv
@MattH ограничение до 3 ГБ связано с тем, что верхний Gig - это память, сопоставленная с периферийными устройствами - ratchet freak
@MattH Это распространенное заблуждение. В качестве примера рассмотрим официальный Системные требования для Windows Server 2008: «Максимум (32-битный систем): 4 ГБ (стандартный) или 64 ГБ (Enterprise и Datacenter) ». В этом случае 4 ГБ - ограничение лицензии, а 64 ГБ - Расширение физического адреса limit (при условии, что чипсет поддерживает переназначение). - and31415
Причина, по которой потребительская 32-разрядная Windows отказывается использовать более 4 ГБ адресного пространства, заключается в том, что существует слишком много устаревших 32-битных драйверов, которые не знают PAE и будут вызывать BSOD, если они будут использоваться с ним. Это был бы кошмар поддержки, если бы это позволило MS. - Andrew Medico