64 Bit OS und 32 Bit Anwendung

Seite 1 von 1 - Forum: Windows auf overclockers.at

URL: https://www.overclockers.at/windows/64_bit_os_und_32_bit_anwendung_210502/page_1 - zur Vollversion wechseln!


fresserettich schrieb am 21.09.2009 um 21:27

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 schrieb am 21.09.2009 um 22:12

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)


t3mp schrieb am 21.09.2009 um 22:12

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 schrieb am 21.09.2009 um 22:22

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 schrieb am 21.09.2009 um 22:30

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 schrieb am 21.09.2009 um 22:32

Abgesehen davon kann Win7 u. Vista 32 bit 3GB verwalten u. nicht 2GB ;)


Spikx schrieb am 21.09.2009 um 22:33

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 schrieb am 22.09.2009 um 08:16

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 schrieb am 22.09.2009 um 08:18

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 schrieb am 22.09.2009 um 08:41

Also nicht ;)

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


t3mp schrieb am 22.09.2009 um 13:20

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.


SYSMATRIX schrieb am 22.09.2009 um 15:40

@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.


Ringding schrieb am 22.09.2009 um 16:49

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.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025