Hallo Klaus,

da besteht durchaus ein Zusammenhang. Wenn eine CPU mehr als 2GB oder 4
GB adressieren kann, dann heißt das noch lange nicht, dass das OS das
auch nutzen kann. Linux kann zwar auch im 32 Bit Mode bis zu 64GB RAM
ansprechen, aber das ist nicht so performant im Vergleich zu einem 64
Bit Linux. Ein 64 Bit OS kann Adressen oberhalb von 4 GB ebenso einfach
und schnell ansprechen, wie unterhalb dieser Grenze. Durch das "tolle"
PC Design kann man jedoch von diesen 4 GB tatsächlich nur 2-3 GByte
nutzen. Man denke nur an diese scheußlichen Dinge, wie z.B. das A20 Gate
- ja auch das gibt es immer noch aus Zeiten des 8088 PCs.

Hier einmal der Output von /proc/cpuinfo, es handelt sich hier zwar um
zwei verschiedene Server, aber beide CPUs sind 64 Bit fähig (jeweils nur
der erste Core):

64 Bit Kernel:

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 35
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 4800+
stepping        : 2
cpu MHz         : 2411.143
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
fxsr_opt lm 3dnowext 3dnow pni lahf_lm cmp_legacy
bogomips        : 4822.63
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp

32 Bit Kernel:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU         T7200  @ 2.00GHz
stepping        : 6
cpu MHz         : 1995.158
cache size      : 4096 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips        : 3990.27

Man achte hier einmal auf die Zeile "address sizes   : 40 bits physical,
48 bits virtual" des ersten Systems. Das OS kann hier also den Speicher
mit einem 40 Bit breiten Adressbus addressieren. Das zweite System hat
zwar auch einen 36 Bit breiten Adressbus, jedoch kann Linux hier nur 32
Bit davon nutzen.

Grüße
Christian

Klaus Klein schrieb:
>
> Bisher bin ich immer davon ausgegangen das der maximale Adressraum
> durch die Adessleitungen der CPU vorgegeben werden und nicht durch die
> Datenbreite mit welcher ein OS compiliert wurde.

-- 
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an