Czy istnieje sposób włączenia więcej niż 4 GB pamięci RAM w 32-bitowym systemie operacyjnym Windows?

22

Zaktualizowałem komputer do 4 GB pamięci RAM i otrzymuję tylko 3 GB. Windows 7 32-bit uważa, że ​​mam 4 GB pamięci RAM, ale nie użyłem więcej niż 3 GB.

Ktoś powiedział mi, że 32-bitowy system MS Windows nie obsługuje pamięci RAM większej niż 3 GB.

Więc proszę, czy jest jakiś sposób, aby mój system operacyjny „Windows 7 32-bit” obsługiwał więcej niż 3 GB pamięci RAM?

* `Uwaga: Nie mogę przejść do wersji 64-bitowej, ponieważ wiele programów nie działa z 64-bitowym systemem operacyjnym.

Edytować::

Próbowałem tego, co doradził mi pan Wonsungi, ale ilekroć sprawdzam tę opcję:

Enable support for 4 GB of RAM

Otrzymuję następujący błąd:

'Cannot access to the registry key HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-11d1-A9F0-00AA0060FA31}.'

W moim rejestrze nie ma „CLSID”, nie wiem dlaczego!

Wahid Bitar
źródło
23
„wiele programów nie działa z 64-bitowym systemem operacyjnym” nie jest tak naprawdę ważnym powodem w dobie komputerów wirtualnych. dzięki VirtualBox (który okazuje się być bezpłatny) możesz uruchamiać swoje 32-bitowe aplikacje na 32-bitowej maszynie wirtualnej z systemem Windows w trybie płynnym (zintegrowanym z hostem) i prawie nie odczuwać różnicy (chyba że potrzebujesz pełnej mocy grafiki karta dostępna dla tych aplikacji)
Zgadzam się z Molly. W przypadku programów 16-bitowych możesz użyć emulatora, takiego jak DOSBox. dosbox.com
Sasha Chedygov
1
Jeśli posiadasz system Windows 7 Professional, Enterprise lub Ultimate, rozważ wypróbowanie trybu Windows XP: microsoft.com/windows/virtual-pc
alex
Korzystam z wielu 32-bitowych programów na Win7 64bit. Pochodzą one z lat 1998–2001. Większość wymaga trybów zgodności do działania. Czy zakładasz, że to nie zadziała, czy ktoś powiedział ci, że to nie zadziała? Czy rzeczywiście próbowałeś?
kmarsh
Ad Edit1: Zrozumiałem, że nie uaktualniłeś jeszcze do 4 GB ... więc nie wiesz jeszcze, czy to działa, czy nie, prawda? Aby upewnić się, że działa, musisz zaktualizować b / c, nie tylko Win, ale także ograniczenia HW. Wykonaj aktualizację, a następnie przekaż nam więcej szczegółowych informacji na temat konfiguracji, jeśli nie działa.
Gerd Klima,

Odpowiedzi:

11

Możesz użyć PAE, ale nie jest to tak dobre, jak przejście 64-bitowe. Sprawdź tę stronę MSDN.

Włączanie PAE

System Windows automatycznie włącza funkcję PAE, jeśli funkcja DEP jest włączona na komputerze obsługującym funkcję DEP obsługującą sprzęt lub jeśli komputer jest skonfigurowany do dodawania na gorąco urządzeń pamięci w zakresach pamięci przekraczających 4 GB. Jeśli komputer nie obsługuje sprzętowej funkcji DEP lub nie jest skonfigurowany dla urządzeń z funkcją dodawania na gorąco w zakresach pamięci przekraczających 4 GB, PAE musi zostać wyraźnie włączone.

Aby jawnie włączyć PAE, użyj następującej komendy BCDEdit / set, aby ustawić opcję wpisu rozruchu pae:

bcdedit /set [{ID}] pae ForceEnable

JEŻELI funkcja DEP jest włączona, PAE nie można wyłączyć. Użyj następujących poleceń BCDEdit / set , aby wyłączyć DEP i PAE:

bcdedit /set [{ID}] nx AlwaysOff
bcdedit /set [{ID}] pae ForceDisable

Windows Server 2003 i Windows XP : Aby włączyć PAE, użyj przełącznika / PAE w pliku boot.ini . Aby wyłączyć PAE, użyj przełącznika / NOPAE . Aby wyłączyć funkcję DEP, użyj przełącznika / EXECUTE .

Dentrasi
źródło
1
Znalazłem to To explicitly enable PAE, use the following BCDEdit /set command to set the pae boot entry option: bcdedit /set [{ID}] pae ForceEnable na podanej stronie MSDN. Ale nie wiem jak i gdzie napisać to polecenie. Czy możesz mi pomóc?
Wahid Bitar
5
Jeśli nie wiesz, jak to zrobić, zdecydowanie nie polecam tego robić , jeśli coś pójdzie nie tak, potrzebujesz tej wiedzy, aby uratować system.
Phoshi,
4
przełącznik PAE nie jest jakimś ukrytym cudem, a na pewno nie świętym Graalem dla 32-bitowych systemów 4 GB (inaczej wszyscy go używaliby, prawda?). może powodować niestabilność systemu.
2
Przełącznik PAE nadal nie pozwala na użycie całego 4 GB pamięci RAM. Zobacz moją odpowiedź poniżej, aby znaleźć rozwiązanie problemu.
Przełom
2
„Niektóre 32-bitowe wersje systemu Windows Server działające na systemach opartych na procesorach x86 mogą korzystać z PAE w celu uzyskania dostępu do 64 GB lub 128 GB pamięci fizycznej.” Ten post dotyczy TYLKO systemu Windows Server - 32-bitowe wersje systemu Windows dla komputerów stacjonarnych będą adresować tylko 4 GB. Jest to kwestia licencji, a nie sprzętu lub oprogramowania, uruchomienie tego polecenia nie zmieni tego faktu - msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx .
Natalie Adams,
13

Przeczytaj to: Stary, gdzie są moje 4 gigabajty pamięci RAM?

Aby uzyskać ogólne informacje, znajduje się również przegląd limitów pamięci dla poszczególnych wersji systemu Windows:

Limity pamięci dla wersji systemu Windows

Gerd Klima
źródło
Mówią, że to problem X86. Czy możesz mi wyjaśnić, dlaczego 32-bitowy OSX nie ma problemu z adresowaniem 16 Gb w MacPro?
bert
Nawiasem mówiąc, w wersjach 8 i 16 bitowych bardzo często występowały pamięci RAM przekraczające 2 ^ bitów.
bert
4
Wpis w Wikipedii dotyczący PAE (rozszerzenie adresu fizycznego) mówi: Mac OS X Mac OS X dla Intel Mac obsługuje PAE i bit NX na wszystkich procesorach obsługiwanych przez Apple (od 10.4.4 - pierwsza wersja Intela - i dalej). Systemy Mac Pro i Xserve mogą obecnie obsługiwać 32 GiB pamięci RAM, mimo że jądro systemu Mac OS X 10.5 Leopard pozostaje 32-bitowe. Jądro systemu Mac OS X 10.6 Snow Leopard może opcjonalnie działać w wersji 64-bitowej na niektórych systemach en.wikipedia.org/wiki/Physical_Address_Extension
Gerd Klima,
1
OSX 32 i Linux Kernel 2.6 32 to zasadniczo 32/64-bajtowe systemy operacyjne, wykorzystujące przede wszystkim instrukcje 32-bitowe, ale wykorzystujące nieco 64-bitowe adresowanie pamięci, szczególnie w przypadku systemu plików i alokacji pamięci w systemie operacyjnym. Programy na nich działające podlegają nadal 32-bitowym ograniczeniom.
kmarsh
5
To jest niepoprawne. 32-bitowe wersje jądra Linux nie są jakimś dziwnym systemem operacyjnym 32/64 bajtów [sic]. Są to 32-bitowe systemy operacyjne, które, jeśli wybrane zostaną odpowiednie opcje, mogą wykorzystywać PAE do adresowania 2 ^ 36 bajtów pamięci, ale mniej niż 2 ^ 32 na proces. Jeśli jądro jest 64-bitowe, używa 64-bitowego adresowania.
ChrisInEdmonton,
11

Ostatnio grupa programistów wydała łatkę na jądro dla systemu Windows 7, która pozwala na użycie więcej niż 4 GB pamięci RAM w systemie Windows 7. Kliknij tutaj, aby pobrać poprawkę lub wyświetlić więcej informacji na jej temat . Łatka zasadniczo modyfikuje jądro systemu Windows 7, aby bardziej przypominało system Windows Server 2003 Datacenter Edition, który jest zgodny z maksymalnie 8 GB pamięci RAM w trybie 32-bitowym.

Poprawka pozwala rozszerzyć PAE do 8 GB pamięci RAM w systemie Windows 7 32-bit. Aby uzyskać więcej informacji o tym, dlaczego Microsoft wdrożył to ograniczenie techniczne, zobacz ten artykuł .

Pamiętaj, że poszczególne procesy będą nadal ograniczone do 4 GB, nawet jeśli system będzie mógł uzyskać dostęp do więcej ... Chociaż gdybyś miał 8 GB pamięci RAM, to przynajmniej będziesz miał jeszcze 4 GB na inne procesy;)

Przełom
źródło
1
Używam tej łatki od miesięcy i nie spotkałem żadnych problemów. Niektóre programy (zwłaszcza Photoshop) nie mają problemów przy korzystaniu z dużej ilości pamięci RAM. :)
Przełom
1
Pamiętaj, że modyfikowanie plików systemowych narusza licencję produktu i unieważnia gwarancję.
kinokijuf
Chcę wejść i powiedzieć, że hack prawdopodobnie będzie działał przez jakiś czas. Ale aktualizacja twojego systemu prawdopodobnie byłaby grą w rosyjską ruletkę - Microsoft prawdopodobnie nie zamierza celowo zatkać dziury w jądrze, ale aktualizacja może sprawić, że twój system zostanie zepsuty.
Natalie Adams,
@NathanAdams to nie jest „dziura”, to wynik licencjonowanej pamięci (zobacz artykuł, do którego link podałem powyżej). Ta poprawka kopiuje również istniejące jądro przed łataniem, więc jeśli się martwisz, możesz po prostu uruchomić system Windows bez łatki, aby uruchomić Windows Update.
Przełom
8

O ile mi wiadomo, 32-bitowe okno może zużywać pamięć do 64 GB i może być w tym celu „zhakowany”.
Ten hack jest w pełni opisany tutaj: Licencjonowana pamięć w systemie Windows Vista .
(Uwaga: nie radzę nikomu, aby faktycznie tego próbował).
To także ciekawa lektura, ponieważ bardzo dobrze wyjaśnia wszystkie związane z tym koncepcje.
Reprodukuję poniżej jego dowodu koncepcji.

To, że 32-bitowe wersje systemu Windows Vista są ograniczone do 4 GB, nie wynika z fizycznych lub technicznych ograniczeń 32-bitowych systemów operacyjnych. Wszystkie 32-bitowe wersje systemu Windows Vista zawierają kod do używania pamięci fizycznej powyżej 4 GB. Microsoft po prostu nie udziela licencji na używanie tego kodu.

obraz

harrymc
źródło
Proszę zobaczyć mój komentarz powyżej, Vista i powyżej zgłosi CAŁKOWitą pamięć FIZYCZNĄ w tym oknie. To NIE jest całkowita kwota, którą system operacyjny wykorzysta. Po pierwsze jestem pewien, że hack jest przestarzały i prawdopodobnie nie będzie działał w Vista SP2. Co więcej, procesory 64-bitowe są normą, więc nie ma powodu, aby nie używać 64-bitowego systemu operacyjnego.
Natalie Adams,
@Nathan: Artykuł, który zacytowałem, stanowi bardzo atrakcyjną lekturę. Z tego, co wiem o architekturze Intel, 32-bitowej lub nie, jedynym prawdziwym ograniczeniem powinno być 4 GB na aplikację .
harrymc
Jestem prawie pewien, że narusza umowę EULA. NIE polecam więc instalowania tej poprawki.
Natalie Adams,
@Nathan Adams: Nie poleciłem tego.
harrymc,
7

Odpowiedź na to pytanie brzmi „zależy od tego, kogo zapytasz”.

Niektórzy twierdzą, że używają PAE, co pozwoli ci zająć więcej niż 4 GB, ALE Microsoft NIE pozwoli ci na wiele 32-bitowych wersji systemu Windows.

http://msdn.microsoft.com/en-gb/library/aa366778(VS.85).aspx
W poniższej tabeli określono ograniczenia pamięci fizycznej dla systemu Windows 7.

Fizyczny limit 4 GB, okres. To kwestia licencji. Może nawet pojawić się „hack”, który pozwoli ci użyć więcej niż 4 GB, ale nie pamiętam.

Uwaga: Vista i Windows 7 w wersji 32-bitowej zgłosi CAŁKOWITY RAM FIZYCZNY, który masz w systemie, ale zużyje TYLKO 4 GB. Tak więc, pchanie 16 GB na komputerze z 32-bitowym systemem Windows będzie używać tylko 4 GB WEDŁUG MICROSOFT, nawet jeśli panel sterowania „System” pokaże 16 GB. Windows 7, Vista i XP 32bit będą używać tylko 4 GB pamięci RAM, to fakt. Jednak niektóre wersje systemu Windows Server będą używać więcej niż 4 GB z włączonym PAE.

Jeśli chodzi o osoby, które „złą PAE pozwolą ci na użycie więcej niż 4 GB”, tak, zgadzam się, jednak Microsoft twierdzi, że możesz używać tylko 4 GB na większości 32-bitowego systemu operacyjnego, więc jeśli uważasz, że ta strona pomyłka, wyślij je e-mail lub zadzwoń do nich, aby złożyć skargę.

Natalie Adams
źródło
4 GB to sztuczny limit. Sprzęt Intel może obsłużyć znacznie więcej. Nawet 32-bitowy system operacyjny, przydzielający pamięć na stronach 4K i zakładający, że przechowuje numer strony w 32-bitowej liczbie całkowitej, może z łatwością obsłużyć 4 GB x 4K = 16 TB. Dla jednej aplikacji limit adresowania bajtów dla rejestru 32-bitowego wynosi 4 GB. Więc jeśli MS mówi 4 GB dla systemu operacyjnego, jest to po prostu marketingowy szum, poparty prostym ograniczeniem, że artykuł cytowany w mojej odpowiedzi zlokalizował bardzo niewiele instrukcji sprzętowych w jądrze.
harrymc
2
Ponownie przeczytaj mój post, Microsoft ma ten limit z powodu licencjonowania. Nigdy nie mówiłem, że nie możesz użyć więcej niż 4 GB w 32-bitowym systemie operacyjnym, po prostu nie możesz w komputerowych wersjach systemu Windows, kropka. To są fakty. Aby „naprawić”, nie jest to również prosta poprawka rejestru. Potrzebujesz deasemblera, edytora szesnastkowego, znajomości asemblera i odrobiny szczęścia.
Natalie Adams,
5

Ktoś powiedział mi, że 32-bitowy system MS Windows 7 nie obsługuje pamięci RAM większej niż 3 GB.

Ktoś się myli. 32-bitowe systemy operacyjne Windows obsługują do 4 GB pamięci fizycznej. Jednak ze względu na ograniczenia sprzętowe architektury x86 dla systemu operacyjnego dostępnych jest tylko 3,5 ~ GB, jeśli zainstalowano 4 GB.

Peter Mortensen
źródło
2
To jest niepoprawne. Na przykład 32-bitowy system Linux nie ma problemu z obsługą 4 GB pamięci RAM. Lub, powiedzmy, 64 GB pamięci RAM, choć oczywiście z limitami na proces. Do cholery, niektóre wersje 32-bitowego systemu Windows obsługują ponad 4 GB pamięci RAM. Zobacz en.wikipedia.org/wiki/…
ChrisInEdmonton
2
co jest niepoprawne ??? 32-bitowe okna obsługują do 4 GB pamięci fizycznej, koniec historii (chyba że są ograniczone innymi czynnikami, np. Wersjami „startowymi”), ta tabela odnosi się do 64-bitowych wersji systemu Windows, takich jak wczesne Windows 2000 Advanced serwer i centrum danych.
1
„Microsoft Windows 2000 Advanced Server Limited Edition i Windows 2000 Datacenter Server Limited Edition zostały zaprojektowane dla 64-bitowych mikroprocesorów Intel Itanium”.
1
Windows 2000 Advanced Server korzysta z PAE w systemach 32-bitowych, aby uzyskać dostęp do 8 GB pamięci RAM. Jest też wersja IA-64, ale nie o tym mówię.
ChrisInEdmonton,
1
cóż, nie dbam o tę argumentację lub porównania z egzotycznymi / nieaktualnymi systemami operacyjnymi serwera lub * nix, OP stwierdził, że 32-bitowy system Windows 7 nie obsługuje więcej niż 3 GB pamięci RAM, co jest NIEPRAWIDŁOWE, obsługuje do 4 GB, rozumiesz? ale aby cię zadowolić, odpowiednio zmienię swoją odpowiedź.
3

Ciekawe, czy możesz podać przykłady programów, które nie działają w 64-bitowych oknach? 64-bitowy system Windows, ponieważ system Windows XP ma doskonałą zgodność wsteczną z programami 32-bitowymi. Sprawdź piąte pytanie na tej stronie: h ttp: //windows.microsoft.com/en-US/windows-vista/32-bit-and-64-bit-Windows-frequently-asked-questions . Weźmy na przykład pakiet Microsoft Office, jest on 32-bitowy, ale działa świetnie w 64-bitowym systemie Windows.

Jedynym momentem, w którym nie chciałbyś przejść do wersji 64-bitowej, jest posiadanie sprzętu, który nie ma sterowników 64-bitowych. Sterowniki sprzętowe muszą pasować do platformy systemu operacyjnego.

churnd
źródło
Oprogramowanie Juniper VPN, z którego korzysta mój pracodawca, nie działa w 64-bitowym systemie operacyjnym.
Jeff Shattock
2
Oprogramowanie VPN należy bardziej do kategorii „sterowników”.
churnd
Mam wiele programów „arabskich” nie działa z 64-bitami. Mam też trochę „starego” sprzętu, który nie ma sterowników 64-bitowych.
Wahid Bitar
-4

Poniższy link określa sposób

  • weź kopię jądra
  • siekać go używać 4GB RAM i powyżej (Edycja ciągi hex 7C 11 8B 45 FC 85 C0 74 0Ai 7C 10 8B 45 FC 85 C0 74 09na 7C 10 B8 00 00 02 00 90 90i 7C 10 B8 00 00 02 00 90 90odpowiednio)
  • podpisać za pomocą makecert -r -ss my -n "CN=My Cert"isigntool sign -s my -n "My Cert" ntkl64g.exe
  • i dodaj go jako dodatkową opcję rozruchu za pomocą bcdedit

w bardzo jasny i bezpośredni sposób

http://www.evga.com/forums/tm.aspx?m=960087&mpage=1&print=true

Który działał dla mnie.

Jamie Kitson
źródło