Windows 7 x64 시스템을 <= 192GB RAM으로 제한하는 것은 무엇입니까?


117

마더 보드, BIOS 등이 개별 컴퓨터에 설치하거나 사용할 수있는 RAM의 양에 대한 상한을 설정할 수 있다는 것을 알고 있습니다. 그러나 Windows 7 x64의 최대 RAM은 무엇입니까?

이것이 OS의 기본 아키텍처 제한입니까? Windows 7 버전마다 RAM 최대 값이 다릅니다 (Starter Edition <= 2GB, Professional <= 192 GB). 실제로 변경 될 수있는 것입니까?

이에 비해 Ubuntu 64x는 최대 1024GB RAM을 허용합니다.



1
그들은 물리적 한계를 선택합니다. Windows 7이 출시되었을 때 비 서버 시장에서 192GB 이상의 메모리를 지원하는 하드웨어는 없었습니다
Ramhound

5
Windows 8을 설치하면 Pro / Enterprise에서 512GB RAM을 사용할 수 있습니다.
magicandre1981

답변:


185

짧은 대답 : 라이센스

방정식에서 하드웨어를 제외하면 대부분 인공 소프트웨어 제한 사항입니다.

[The] 제한은 ZwQueryLicenseValueMicrosoft가 발행 한 심볼 파일 이름으로 내부 프로 시저에서 호출되는이라는 함수를 호출하여 레지스트리에서 검색 됩니다 MxMemoryLicense.

출처 : 32 비트 Windows Vista의 라이센스 메모리

추가 정보

물론, 문서화되지 않은 형식으로도 레지스트리에 저장된 라이센스 데이터는 사용자가 쉽게 변경할 수 있습니다. Microsoft가 라이센스마다 다른 가격을 청구하기 때문에 시도해 볼 인센티브가 있습니다. 따라서 Microsoft는 라이센스 데이터가 원하는대로 유지되는지 확인하기위한 정교한 체계를 갖추고 있습니다. 커널은 라이센스 데이터가 변경되었는지 여부의 저장소이며,이를 위해 두 가지 이상의 기능을 수출, ExGetLicenseTamperState하고 ExSetLicenseTamperState.

출처 : 소프트웨어 라이센스

­

ExGetLicenseTamperState

이 [언급되지 않은] 기능은 라이센스 데이터가 변조되었는지 커널에 묻습니다.

내부 사용은 대략 1 시간마다 반복되는 타이머에 있습니다. 변경 상태가로 확인되면 4Windows가 중지됩니다. 버그 확인 코드는 SYSTEM_LICENSE_VIOLATION( 0x9A)이며 0x1B첫 번째 인수입니다.

출처 : ExGetLicenseTamperState

실용적인 예

RAM이 32GiB 인 컴퓨터가 있고 Windows 7 Home Premium x64 (64 비트)를 설치 한다고 가정 해 보겠습니다 . 이 경우 16GiB로 제한됩니다. Windows Anytime Upgrade 를 사용 하고 더 비싼 에디션으로 업그레이드하는 경우 갑자기 한계가 192 GiB로 설정됩니다.

결론

모든 Windows 7 에디션은 동일한 소스 코드를 공유합니다. 주요 차이점은 활성화 또는 비활성화되는 기능 / 제한 수입니다. Professional 및 상위 클라이언트 버전은 처리 할 수있는 RAM의 양에 대한 상한이 없으며 Microsoft가 지원하도록 보증하는 것에 대해서만 라이센스가 부여됩니다.

또한 Windows 7 EULA는 "상업용 소프트웨어 호스팅 서비스에 소프트웨어를 사용할 수 없음"이라고 명시 적으로 명시하고 있습니다. 이는 Microsoft가 더 많은 RAM이 필요한 경우 가장 높은 클라이언트 버전에 라이센스가 부여 된 서버이고 실제로 원하는 것은 서버라고 가정했음을 암시합니다 특허. Windows 7의 서버 서버 (Windows Server 2008 R2)는 Enterprise 및 Datacenter 에디션에서 최대 2TiB의 RAM을 사용할 수 있습니다.

기술이 빠르게 발전함에 따라 어제 수용 할 수 있었던 것만으로는 충분하지 않을 수 있습니다. 따라 잡기 위해 Windows 8은 Core 및 Pro / Enterprise 버전 각각에 대해 128GiB 및 512GiB로 제한을 높였습니다. 그러나 64 비트 버전에만 적용됩니다. 32 비트 버전은 여전히 ​​4GiB로 제한됩니다. 서버 버전 인 Windows Server 2012는 상위 버전에서 최대 4TiB의 RAM을 처리 할 수 ​​있습니다.

추가 자료


32
이것은 분석을 통해 좋은 소스에 연결되기 때문에 가장 좋은 대답입니다.
케빈 판코

9
약간의 방어 : 소스 코드는 동일 할 수 있지만 지원하지 않고있을 수있는 동일한 코드는 아닙니다. 예를 들어, 프로세서가 많은 경우 확장 성을 개선하기 위해 많은 작업이 수행되었습니다 ( "global dispatcher lock"참조 : tomshardware.com/news/microsoft-windows-server,6589.html ). 이 코드는 모든 에디션에서 거의 동일하지만 더 높은 버전의 Windows는 더 많은 CPU를 지원합니다. 그러나 더 많은 CPU를 지원하려면 더 많은 작업이 필요했습니다. 그 일에 대해 더 많은 비용을 청구하는 것이 공정합니까?
Mark Sowul

8
간단히 말해서 : min (license_limit, physical_limit)
akira

2
라이센스 당 많은 사본을 판매하는 Windows와 같은 @ AndonM.Colman 제품은 라이센스 당 다른 비용과 비교할 때 중요하지 않습니다. 온라인 기사에 따르면 Windows 8은 처음 6 개월 동안 1 억 개가 넘는 라이센스를 판매했습니다. Windows 8 / 8.1의 수명 동안 라이선스 당 개발 비용은 소매 상자 및 상자 당 콘텐츠 제작 비용보다 적을 것으로 예상됩니다. 새로운 버전의 Windows는 일반적으로 처음부터 작성되지 않습니다. Windows 8 / 8.1 / 2012는 모두 매우 유사하며 2008 년 7 월 Vista와 유사합니다. XP / 2003 / 2000도 함께 그룹화 가능
BeowulfNode42

5
새 버전은 이전 버전보다 개선하기 위해 노력하고 있습니다. 그러나 메모리 관리와 같은 것은 버전간에 거의 동일하게 유지됩니다. 새로운 하드웨어가 이전 테스트에서 분명하지 않은 문제를 강조함에 따라 종종 약간의 조정이 이루어집니다. 그러나 주 코드는 제품 그룹에서 동일하게 유지됩니다.
BeowulfNode42

53

Microsoft는 그러한 방식으로 라이센스를 부여합니다. 더 많은 리소스를 사용하도록 라이센스가 허여 된 Windows Server 제품에 대한 비용을 지불하고 싶어 할 것입니다. SQL Server와 같은 다른 제품과 동일합니다. SQL Server Express에는 제한이 있으므로 더 많은 리소스가 필요한 경우이를 허용하는 제품을 구입해야합니다.


6
그는 그가, Windows Server는 학생 (무료로 사용할 수 없습니다 드림 스파크 우리를 위해, 그것은 윈도우의 사본을 구입하는 것보다 그것을 얻기 위해 더 가능 그래서 (더 소속) ...,)
gparyani

2
이것은 위의 32 비트 윈도우 XP 및 PAE를 지원할 수있는 이유 중 하나입니다하지만 MS는 RAM 4GB의 한계를 제한
phuclv

3
상부 공연 메모리는 주변 장치로 매핑하기 때문에 3GB가 한계이다 @MattH
괴물 래칫

2
@MattH 그것은 일반적인 오해입니다. 예를 들어 공식 Windows Server 2008 시스템 요구 사항 : "최대 ( 32 비트 시스템) : 4GB (표준) 또는 64GB (기업 및 데이터 센터)"를 살펴보십시오 . 이 경우 4GB는 라이센스 제한이며 64GB는 실제 주소 확장 제한입니다 (칩셋이 리매핑을 지원한다고 가정).
and31415

3
소비자 32 비트 Windows가 4GB 이상의 주소 공간을 사용하지 않는 이유는 PAE를 인식하지 못하고 BSOD를 사용하는 레거시 32 비트 드라이버가 너무 많기 때문입니다. MS가이를 가능하게한다면 지원 악몽이 될 것이다.
Andrew Medico
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.