32- of 64-bits?
Sinds een paar jaar bestaan er 64-bits processoren, naast de al bestaande 32-bits processoren. Op een 64-bits computer hoort niet automatisch een 64-bits operating system. Je kunt er ook een 32-bits operating system op zetten. En die keuze is niet altijd gemakkelijk.
64-Bits commando's zijn langer, terwijl dat lang niet altijd nuttig is. Dat geeft nogal wat overhead ten aanzien van geheugenruimte en bandbreedte. Zolang er geen gebruik wordt gemaakt van de voordelen van een 64-bits-architectuur, zijn 32-bits applicaties op een 32-bits operating system vaak iets sneller. Daarnaast vereist een 64-bits operating system, 64-bits drivers. Momenteel (begin 2011) zijn er aanzienlijk meer 32-bits drivers beschikbaar dan 64-bits drivers. Zeker voor oudere hardware, is er lang niet altijd een 64-bits driver beschikbaar. Daar staat tegenover dan je in beginsel een 64-bits operating system nodg hebt om meer dan 4 GB aan geheugen te kunnen adresseren, al zijn er truken om ook vanaf een 32-bits operating system meer dan 4 GB aan geheugen te adresseren.
In juli 2010 melde Microsoft dat ca. de helft van de verkochte Windows 7-licenties 64-bits betroffen, vooral om de beperking van 4 GB aan geheugen te omzeilen. Canonical adviseert op een Ubuntu helppagina om een 64-bits Ubuntu te gebruiken ipv. 32-bits, tenzij er specifieke redenen zijn om dat niet te doen. ([1]). Toevallig zijn die redenen er wel:
- Lightning (Thunderbird agenda add-on) is alleen beschikbaar voor 32-bits Linux;
- Drivers voor oudere printers zijn vaak alleen beschikbaar voor 32-bits;
- Voor exotische toepassignen zijn er vaak nog geen 64-bits programma's beschikbaar (voorbeeld jan. 2011: VPN-applicatie UvA-netwerk).
Het is onze ervaring dat op dit moment (januari 2011) het het beste is om nog steeds 32-bits Ubuntu te installeren. Net zo goed als dat we op dit moment standaard Ubuntu 10.04 gebruiken, en niet de meeste recentelijke release, namelijk 10.10.
Hieronder staan een handjevol Linux-commando's om uit te vogelen wat voor OS of hardware je hebt.
32-bits Ubuntu op 32-bits hardware
Commando:
cat /proc/cpuinfo | grep flags
Geeft:
flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr
en hier ontbreekt lw dat voor long word staat. Dus een 32-bits processor.
Hier zijn nog wat methodes, die meestal minder betrouwbaar zijn. Commando:
uname -m
Resultaat:
i686
en dit geeft aan dat het een 32-bits Ubuntu betreft.
Commando:
cat /proc/version
Resultaat:
Linux version 2.6.32-27-generic (buildd@roseapple) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #49-Ubuntu SMP Wed Dec 1 23:52:12 UTC 2010
Commando:
file /sbin/init
Resultaat:
sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Commando:
lshw -class processor
geeft:
WARNING: you should run this program as super-user. *-cpu product: Intel(R) Pentium(R) 4 CPU 2.80GHz vendor: Intel Corp. physical id: 1 bus info: cpu@0 version: 15.2.9 size: 2800MHz width: 32 bits capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts cid xtpr configuration: id=0 *-logicalcpu:0 description: Logical CPU physical id: 0.1 width: 32 bits capabilities: logical *-logicalcpu:1 description: Logical CPU physical id: 0.2 width: 32 bits capabilities: logical
en waarschijnlijk geeft 'width' aan dat het een 32-bits processor betreft.
32-bits Ubuntu op 64-bits hardware
Commando
uname -m
geeft:
i686
Commando
cat /proc/version
geeft:
Linux version 2.6.32-26-generic (buildd@rothera) (gcc version 4.4. 3 (Ubuntu 4.4.3-4ubuntu5) ) #48-Ubuntu SMP Wed Nov 24 09:00:03 UTC 2010
Ik weet niet wat het getal '32' in het Linux versienummer aangeeft.
Commando
file /sbin/init
geeft:
ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamic ally linked (uses shared libs), for GNU/Linux 2.6.15, stripped
en dit zegt iets over het OS.
Commando:
cat /proc/cpuinfo | grep flags
geeft zoiets als
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl est cid cx16 xtpr pdcm lahf_lm
Aan het eind van de tweede regel staat lm, en dat staat voor Long Mode, dat aangeeft dat deze processor 64-bits is. Overigens, het commando
cat /proc/cpuinfo
geeft sowieso een hoop boeiende informatie.
64-Bits Ubuntu op 64-bits hardware
Commando
uname -m
geeft:
x86_64
Oftewel, dit zegt iets over het OS, en niet over de hardware.
Commando
cat /proc/version
geeft:
Linux version 2.6.32-24-generic (buildd@yellow) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #39-Ubuntu SMP Wed Jul 28 05:14:15 UTC 2010
Tja, dat snap ik niet. Misschien dat '32' in de Linux-versie toch gewoon een nummer is.
Commando
file /sbin/init
geeft:
ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
en dit zegt iets over het OS.
Commando:
cat /proc/cpuinfo | grep flags
geeft net als eerder:
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl est cid cx16 xtpr pdcm lahf_lm
waarbij lm op de tweede regel staat voor Long Mode, de mogelijkheid om 64-bits commando's te verwerken.
Bronnen
- http://www.linuxquestions.org/questions/linux-software-2/how-do-i-tell-if-32-bit-or-64-bit-ubuntu-is-installed-on-a-machine-638622/
- https://help.ubuntu.com/community/32bit_and_64bit
- http://www.linuxquestions.org/questions/linux-general-1/is-my-processor-64-bit-592365/
- http://en.wikipedia.org/wiki/64-bit
- http://support.microsoft.com/kb/827218 - Hoe kunt u controleren of op uw computer een 32-bits of een 64-bits versie van het Windows-besturingssysteem is geïnstalleerd (Microsoft Hulp en ondersteuning)
- http://tweakers.net/nieuws/68477/microsoft-bijna-helft-windows-7-gebruikers-draait-64bit-versie.html