"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

64 Bit OS und 32 Bit Anwendung

fresserettich 21.09.2009 - 21:27 1918 12 Thread rating
Posts

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5382
Abend!

Wenn ich z.B. ein 64 Bit OS ala Vista oder Windows 7 habe, kann dann eine 32 Bit Anwendung mehr als die 2 GB Arbeitsspeicher bekommen.
iirc war doch das Limit OSseitig bei der 32 Bit Version oder?

Tia
mfg
:fresserettich:

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Die 32bit Anwendung kann maximal bis zu 4GB bekommen, allerdings nur dann, wenn sie mit dem LARGE ADDRESS AWARE flag kompiliert wurde.

//edit: siehe dazu bspw. hier http://support.microsoft.com/kb/889654 (erste Tabelle, Virtual address space per 32-bit process)
Bearbeitet von Spikx am 21.09.2009, 22:15

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6280
Nein, wenn sie es vorher nicht konnte kann sie's nachher immer noch nicht, weils immer noch ein 32 Bit Binary ist das in einer 32 Bit Emulation läuft.

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Zitat von Spikx
Die 32bit Anwendung kann maximal bis zu 4GB bekommen, allerdings nur dann, wenn sie mit dem LARGE ADDRESS AWARE flag kompiliert wurde.

Korrekt. Vielleicht ist noch erwähnenswert, dass man dieses Flag auch nachträglich umsetzen kann (z.B. mit EditBin.exe) - allerdings gibt es Programme, die damit nicht korrekt funktionieren.

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5382
danke mal für die antworten
bin da eigentlich nicht so ein freund von herumtricksen
hoffe einfach dass matlab etc. entsprechend kompiliert wurden (denke bei diesen anwendungen macht es auch sinn)
4 GB sind ja auch nicht greade viel, schafft da linux eventuell mei afaik waren es ja da bei 32 bit schon 3 gb

APEXi

Blink182 is BACK!
Avatar
Registered: Aug 2004
Location: Wien/BGLD
Posts: 1120
Abgesehen davon kann Win7 u. Vista 32 bit 3GB verwalten u. nicht 2GB ;)

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Zitat von APEXi
Abgesehen davon kann Win7 u. Vista 32 bit 3GB verwalten u. nicht 2GB ;)
Das hat aber nichts mit der Fragestellung hier zu tun.

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Ist der Large Aware Address Space unter Windows nicht auch auf 3GB begrenzt, so wie unter Linux?

@t3mp: Emulation würde ich das aber nicht nennen, immerhin macht das die CPU nativ und verwendet dafür zu >99% die gleichen Transistoren wie für den 64bit-Modus.

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Zitat von Ringding
Ist der Large Aware Address Space unter Windows nicht auch auf 3GB begrenzt, so wie unter Linux?
http://www.overclockers.at/operatin...595#post2885595 -> http://support.microsoft.com/kb/889654 ;P

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Also nicht ;)

Bei genauerem Nachdenken merke ich, dass ich gar nicht weiß, wie es unter 64bit-Linux ist...

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6280
Zitat von Ringding
@t3mp: Emulation würde ich das aber nicht nennen, immerhin macht das die CPU nativ und verwendet dafür zu >99% die gleichen Transistoren wie für den 64bit-Modus.
Trotzdem muss das Betriebssystem die alte 32 bit Umgebung nachbilden damit (die meisten) Programme ohne Änderung laufen, WoW64 bezeichnet man aber besser als translation layer wie hier beschrieben: http://en.wikipedia.org/wiki/WOW64

Zitat von Ringding
Bei genauerem Nachdenken merke ich, dass ich gar nicht weiß, wie es unter 64bit-Linux ist...
http://en.wikipedia.org/wiki/X86_64#Linux
Zitat
64-bit Linux allows up to 128 TB (140,737,488,355,328 bytes) of address space for individual processes, and can address approximately 64 TB (70,368,744,177,664 bytes) of physical memory, subject to processor and system limitations.
Bearbeitet von t3mp am 22.09.2009, 13:22

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
@Ringding:
die 3GB sind ein x86 Limit (MMU und so), da man bei 32-bit Adressraum auch was für den Kernelspace übrig lassen muß. Unter Linux kann man sich das mapping und die Aufteilung selbst aussuchen (1GB:3GB (meistens default für Desktop),2GB:2GB,3GB:1GB). Mit PAE (=page address extensions) sieht der Kernel 64GB Speicher gesamt, aber die Applikationen können aufgrund IC-Länge nicht mehr als 4GB sehen.
Bearbeitet von SYSMATRIX am 23.09.2009, 11:38

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Ja, das weiß ich eh; ich habe mich nur gefragt, ob der 64bittige Linux-Kernel auch das eine GB im Adressraum seiner Prozesse braucht oder nicht. Nachdem es bei Win64 anscheinend nicht so ist? Auch wenn ich mir das jetzt nicht so ganz veranschaulichen kann; hab mich aber mit x86_64 auf der Systemebene noch nicht befasst.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz