O que limita as máquinas do Windows 7 x64 a = 192GB de RAM?

114

Eu sei que placas-mãe, BIOS, etc. podem definir limites máximos para a quantidade de RAM que podemos instalar ou usar em máquinas individuais. No entanto, o que define a RAM máxima para o Windows 7 x64?

Essa é uma limitação arquitetural fundamental do sistema operacional? Diferentes versões do Windows 7 têm máximos de RAM diferentes (edição para iniciantes < = 2 GB, Professional < = 192 GB). É algo que pode ser realmente alterado?

Como comparação, o Ubuntu 64x permite até 1024 GB de RAM.

    
por Lucas Fortini 03.02.2014 / 23:21

2 respostas

185

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 as MxMemoryLicense.

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 and ExSetLicenseTamperState.

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 is SYSTEM_LICENSE_VIOLATION (0x9A), with 0x1B 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.

Leitura adicional

por 06.02.2014 / 03:17
53

A Microsoft licencia dessa maneira. Eles provavelmente querem que você vá e pague por um produto do Windows Server que esteja licenciado para ser executado com mais recursos. É o mesmo com outros produtos como o SQL Server. O SQL Server Express tem limitações para que, se você precisar de mais recursos, compre o produto que o permita.

    
por 03.02.2014 / 23:26