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


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

Isso é uma limitação arquitetônica fundamental do sistema operacional? Diferentes versões do Windows 7 têm máximos de RAM diferentes (edição Starter <= 2 GB, Professional <= 192 GB). É algo que pode ser realmente mudado?

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


114


origem


possível duplicata de SO de 64 bits e RAM - Ƭᴇcʜιᴇ007
Eles escolhem limitações físicas. Quando o Windows 7 foi lançado, não havia hardware que suportasse mais de 192 GB de memória no mercado sem servidor - Ramhound
instalar o Windows 8, aqui o Pro / Enterprise pode usar 512GB de RAM. - magicandre1981
Comparar o Windows ao Ubuntu / Linux em qualquer assunto / área é uma piada, certo? :] Tem milhares de coisas e recursos, o Ubuntu / Linux tem, que o Windows não tem. É como perguntar, por que uma impressora monocromática não pode imprimir em cores, se é possível usar uma cor! :] - trejder


Respostas:


Resposta curta: a licença

Excluindo hardware da equação, é principalmente uma restrição de software artificial:

[O] limite é recuperado do registro chamando uma função chamada ZwQueryLicenseValue, que é em si chamado de um procedimento interno que os arquivos de símbolos publicados da Microsoft MxMemoryLicense.

Fonte: Memória licenciada no Windows Vista de 32 bits

Informações adicionais

É claro que os dados de licença armazenados no registro, mesmo em um formato não documentado, podem ser facilmente alterados pelos usuários, o que eles teriam algum incentivo para tentar, já que a Microsoft cobra preços significativamente diferentes para licenças diferentes. A Microsoft, portanto, tem um esquema elaborado para verificar se os dados da licença permanecem como a Microsoft deseja. O kernel é o repositório para saber se os dados de licenciamento foram adulterados e, para isso, exporta mais duas funções, ExGetLicenseTamperState e ExSetLicenseTamperState.

Fonte: Licenciamento de Software

Detalhes

ExGetLicenseTamperState

Esta função [não documentada] pergunta ao kernel se os dados da licença foram adulterados.

O uso interno está em um temporizador que ocorre aproximadamente a cada hora. Se o estado de sabotagem for encontrado 4, o Windows pára. O código de verificação de bug é SYSTEM_LICENSE_VIOLATION (0x9A), com 0x1B como o primeiro argumento.

Fonte: ExGetLicenseTamperState

Um exemplo prático

Digamos que você tenha um computador com 32 GiB de RAM, e você instala o Windows 7 Home Premium x64 (64 bits). Nesse caso, você estaria limitado a 16 GiB. Se você fosse usar Windows Anytime Upgradee atualizar para uma edição mais cara, de repente, o limite seria definido como 192 GiB.

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. As edições profissionais e superiores do cliente não têm limite máximo para a quantidade de RAM que podem ser manipuladas 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 maior edição cliente está licenciado, o que você realmente quer é um servidor licença. 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 se move 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


185



Essa é a melhor resposta, pois está ligada a uma boa fonte com análise. - Kevin Panko
Apenas uma pequena defesa: o código-fonte pode ser o mesmo, mas não é necessariamente o mesmo código que estaria lá sem o suporte. Por exemplo, muito trabalho foi feito para melhorar a escalabilidade quando você tem muitos processadores (veja "global dispatcher lock" aqui: tomshardware.com/news/microsoft-windows-server,6589.html). Esse código é quase certamente o mesmo em todas as edições, no entanto, edições mais altas do Windows suportam mais CPUs. Mas suportar mais CPUs levou mais trabalho. É justo cobrar mais por esse trabalho? - Mark Sowul
em suma: min (limite de licença, limite_limite) - akira
@ Produtos AndonM.Coleman como o Windows, que vendem tantas cópias, os custos de desenvolvimento por licença são insignificantes em comparação com a maioria dos outros custos por licença. Vejo artigos on-line dizendo que o Windows 8 vendeu mais de 100 milhões de licenças nos primeiros seis meses. Durante a vida útil do Windows 8 / 8.1, espero que o custo de desenvolvimento por licença seja menor que o custo de produção de uma caixa de varejo e o conteúdo por caixa. Novas versões do Windows geralmente não são escritas do zero. Windows 8 / 8.1 / 2012 são todos muito semelhantes e semelhantes sob o capô para vista / 7/2008. XP / 2003/2000 pode ser agrupado também - BeowulfNode42
Não me entenda mal, as novas versões tiveram trabalho feito para torná-las melhores que as versões antigas. Mas coisas como gerenciamento de memória permanecem quase idênticas entre as versões. Alguns ajustes são feitos frequentemente como novos problemas de realces de hardware que não eram evidentes nos testes anteriores. Mas o código principal permanece o mesmo em um grupo de produtos. - BeowulfNode42


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.


53



Ele, o Windows Server está disponível gratuitamente para os estudantes (parque de sonhos), então, para nós, é mais viável conseguir isso do que comprar uma cópia do Windows ... (sem afiliação) - gparyani
Esta é uma das razões pelas quais o Windows XP de 32 bits e acima pode suportar PAE, mas MS restringe o limite de 4 GB de RAM - phuclv
@MattH o limite para 3GB é porque o Gig superior é mapeado para periféricos - ratchet freak
@MattH Isso é um equívoco comum. Como exemplo, dê uma olhada no oficial Requisitos de sistema do Windows Server 2008: "Máximo (32 bits sistemas): 4 GB (Standard) ou 64 GB (Enterprise e Datacenter). "Nesse caso, 4 GB é uma restrição de licença e 64 GB é o Extensão de endereço físico limite (assumindo que o chipset suporta o remapeamento). - and31415
O motivo pelo qual o Windows de 32 bits do consumidor se recusa a usar mais de 4 GB de espaço de endereço é que há muitos drivers legados de 32 bits que não conhecem o PAE e que causariam BSODs se usados ​​com ele. Seria um pesadelo de suporte se a MS permitisse isso. - Andrew Medico