fresserettich
Here to stay
|
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
|
Spikx
My Little Pwny
|
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
|
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
|
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
|
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!
|
Abgesehen davon kann Win7 u. Vista 32 bit 3GB verwalten u. nicht 2GB
|
Spikx
My Little Pwny
|
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
|
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
|
|
Ringding
Pilot
|
Also nicht  Bei genauerem Nachdenken merke ich, dass ich gar nicht weiß, wie es unter 64bit-Linux ist...
|
t3mp
I Love Gasoline
|
@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/WOW64Bei genauerem Nachdenken merke ich, dass ich gar nicht weiß, wie es unter 64bit-Linux ist... http://en.wikipedia.org/wiki/X86_64#Linux64-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
|
@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
|
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.
|