Pytanie:
Dlaczego 32-bitowy system Mac OS X może uzyskać dostęp do wszystkich 4 GB pamięci, a 32-bitowy system Windows nie?
Peter Štibraný
2010-09-22 19:03:28 UTC
view on stackexchange narkive permalink

Nie rozumiem, dlaczego 32-bitowe jądro Mac OS X może uzyskać dostęp do wszystkich 4 GB pamięci (a nawet więcej), podczas gdy 32-bitowy system Windows może działać tylko z ~ 3,3 GB i do wykorzystania więcej niż 4 GB, których potrzebujesz 64-bitowy system Windows. Nawet jeśli 32-bitowy system Windows działa na sprzęcie Mac z pamięcią> 4 GB, nadal nie wykorzystuje wszystkiego. Przepraszam, że mówię o systemie Windows na tej stronie :-), chciałbym tylko zrozumieć różnicę.

Trzy odpowiedzi:
#1
+16
Gordon Davisson
2010-09-23 10:52:06 UTC
view on stackexchange narkive permalink

Zalecana lektura: Road to Mac OS X Snow Leopard: 64-bity, Santa Rosa i więcej (oraz reszta serii Road to Snow Leopard firmy Prince McLean) . Jeśli nie chcesz tak dużo czytać, podsumuję:

Po pierwsze, musisz zdać sobie sprawę, że OS X nie ma ani jednego przełącznika trybu 32/64-bitowego, jak robi to Windows; Z przyjemnością będzie uruchamiać 64-bitowe aplikacje pod 32-bitowym jądrem lub odwrotnie, i oba są niezależne od tego, co może obsługiwać podsystem pamięci fizycznej. Pamiętaj, że bitowość aplikacji i jądra narzuca ograniczenia pamięci: aplikacja działająca w trybie 32-bitowym może adresować tylko 4 GB pamięci wirtualnej bez względu na to, ile jest zainstalowanych / obsługiwanych w maszynie (chociaż komputer Mac z dużą ilością pamięci RAM może działać kilka w pełni rezydentnych procesów 4 GB jednocześnie); a jeśli jądro jest w trybie 32-bitowym, może przydzielić tylko do 4 GB dla swoich różnych struktur danych (tabela stron, tabela procesów, tabela otwartych plików itp.). To już trochę różni się od sposobu, w jaki robi to Windows, ponieważ dzieli przestrzeń adresową między jądrem a działającym procesem, więc każdy z nich otrzymuje tylko 2 GB. Zaletą metody Windows jest to, że nie wymaga opróżniania pamięci podręcznej w celu przełączania się i wyprowadzania z jądra, dzięki czemu jest szybsza. Ale OS X musi opróżnić pamięć podręczną tylko wtedy, gdy zarówno program, jak i jądro są w trybie 32-bitowym; jeśli którykolwiek jest 64-bitowy, dzielą przestrzeń i unikają kary za prędkość.

A teraz przejdźmy do pytania, o które pytasz: fizyczne limity pamięci RAM. Wiele wczesnych komputerów Mac z procesorem Intel ma w rzeczywistości ten sam limit pamięci, wynoszący ~ 3 GB, co 32-bitowy system Windows, z tego samego powodu: część fizycznej przestrzeni adresowej 4 GB jest zajmowana przez operacje we / wy mapowane w pamięci, zwłaszcza karta graficzna. Niektóre późniejsze komputery Mac korzystały z chipsetu obsługującego Santa Rosa, co pozwoliło im umieścić wejścia / wyjścia w oddzielnej przestrzeni adresowej i wykorzystać do 4 GB fizycznej pamięci RAM. Komputery Mac z wyższej klasy (/ nawet nowsze) mają PAE, co pozwala na znacznie więcej fizycznej pamięci RAM. Plotka głosi, że Windows nie obsługuje PAE w większości swoich 32-bitowych systemów operacyjnych z powodu problemów ze zgodnością sterowników. Apple i tak kontroluje większość odpowiednich sterowników, więc sprawiły, że zadziałało; jeśli sprzęt to obsługuje, system operacyjny po prostu go używa.

Dziękuję za wyjaśnienie i wskazówki do artykułów. Bardzo ciekawa rzecz.
Zalecam ** nie ** czytać serii Prince McLean / Daniel Eran Dilger. Wszędzie są błędy rzeczowe. W przeciwnym razie odpowiedź jest świetna.
#2
+7
ghoppe
2010-09-23 01:54:33 UTC
view on stackexchange narkive permalink

przez http://en.wikipedia.org/wiki/Physical_Address_Extension

Aby korzystać z PAE, wymagana jest obsługa systemu operacyjnego. Wersje Intel systemu Mac OS X obsługują PAE. Jądro Linuksa obsługuje PAE jako opcję budowania, a większość głównych dystrybucji udostępnia jądro PAE jako domyślne lub jako opcja. FreeBSD i NetBSD również obsługują PAE jako opcję budowania jądra.

Microsoft Windows implementuje PAE, jeśli jest uruchamiany z odpowiednią opcją, ale obecne 32-bitowe wersje desktopowe wymuszają fizyczną przestrzeń adresową w granicach 4 GB nawet w trybie PAE. Według Geoffa Chappella Microsoft ogranicza 32-bitowe wersje systemu Windows do 4 GB z powodu ograniczeń licencyjnych, a pracownik techniczny firmy Microsoft Mark Russinovich mówi, że niektóre sterowniki okazały się niestabilne, gdy napotykają adresy fizyczne powyżej 4 GB.

#3
+4
Jason
2010-09-22 19:21:55 UTC
view on stackexchange narkive permalink

Stąd: http://www.tomshardware.com/forum/231766-45-windowsxp-recognizing

„32-bitowy system Windows XP Professional jest ograniczony do 4 GB przestrzeni adresowej. Jeśli masz zainstalowane 4 GB pamięci RAM, nie pokaże 4 GB w systemie Windows. Prawdopodobnie otrzymasz rozmiar pliku stronicowania odjęty od 4 GB.

Część tej przestrzeni adresowej jest zarezerwowane dla sprzętu i systemu operacyjnego ... więc i tak nigdy nie będziesz mieć dostępu do pełnych 4 GB. Jeśli chcesz uzyskać dostęp do 4 GB + pamięci RAM ... najlepszym rozwiązaniem jest wybranie 64-bitowego XP Pro ... ale to będzie działać tylko wtedy, gdy Twój procesor P4 ma EMT64. ”

Bardziej szczegółową odpowiedź można znaleźć pod adresem: http://www.codinghorror.com/blog/2007/03/dude-wheres- my-4-gigabajty-ram.html

OK, ale DLACZEGO MacOS X może uzyskać dostęp do ponad 4 GB pamięci RAM? Dzięki tej funkcji „EMT64” dostępnej na procesorach używanych w komputerach Mac? (Co to właściwie jest ;-))
Komentarz z „Chelgrian on 10 marca 2007 6:30” w tym artykule zawiera kilka interesujących informacji na ten temat. Twierdzi, że wersje desktopowe Windows są po prostu sztucznie ograniczone tylko do 4 GB.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 2.0, w ramach której jest rozpowszechniana.
Loading...