Resposta curta: a licença
Excluindo o hardware da equação, é principalmente uma restrição de software artificial:
[The] limit is retrieved from the registry by calling a function named
ZwQueryLicenseValue
, which is itself called from an internal procedure which Microsoft's published symbol files name asMxMemoryLicense
.Source: Licensed Memory in 32-Bit Windows Vista
Informações adicionais
Of course, license data stored in the registry even in an undocumented format might easily be changed by users, which they would have some incentive to try since Microsoft charges significantly different prices for different licenses. Microsoft therefore has an elaborate scheme for checking that the license data remains as Microsoft wants it. The kernel is the repository for whether the licensing data has been tampered with, and to this end exports two more functions,
ExGetLicenseTamperState
andExSetLicenseTamperState
.Source: Software Licensing
ExGetLicenseTamperState
This [undocumented] function asks the kernel whether the license data has been tampered with.
The internal use is in a timer that recurs approximately every hour. If the tamper state is found to be
4
, then Windows stops. The bug check code isSYSTEM_LICENSE_VIOLATION
(0x9A
), with0x1B
as the first argument.Source: ExGetLicenseTamperState
Um exemplo prático
Digamos que você tenha um computador com 32 GiB de RAM e instale o Windows 7 Home Premium x64 (64 pouco). Nesse caso, você estaria limitado a 16 GiB. Se você fosse usar o Windows Anytime Upgrade e atualizasse para uma edição mais cara, de repente o limite seria definido para 192 GiB em vez disso.
Conclusão
Todas as edições do Windows 7 compartilham o mesmo código-fonte. A principal diferença é o número de recursos / limitações que estão ativados ou desativados. Edições de clientes profissionais e superiores não têm limite máximo para a quantidade de memória RAM que podem manipular e são apenas licenciadas para o que a Microsoft garante suporte.
Além disso, o EULA do Windows 7 explicitamente diz que você não pode "usar o software para serviços de hospedagem de software comercial", insinuando que a Microsoft presumiu que, se você precisa de mais RAM do que a mais alta edição cliente está licenciada, o que você realmente deseja é uma licença de servidor. A contrapartida do servidor do Windows 7 (ou seja, o Windows Server 2008 R2) pode usar até 2 TiB de RAM nas edições Enterprise e Datacenter.
Como a tecnologia avança rapidamente, o que foi aceitável ontem pode não ser suficiente amanhã. Para recuperar o atraso, o Windows 8 aumentou os limites para 128 GiB e 512 GiB para as edições Core e Pro / Enterprise, respectivamente. Isso só se aplica às versões de 64 bits: versões de 32 bits ainda são limitadas a 4 GiB. A versão do servidor, o Windows Server 2012, pode endereçar até 4 TiB de RAM nas edições mais altas.