Når jeg skriver uname -a
, gir det følgende utdata.
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux
Hvordan kan jeg vite fra dette at det gitte operativsystemet er 32 eller 64 bit?
Dette er nyttig når du skriver configure
skript, for eksempel: hvilken arkitektur bygger jeg for?
Prøv uname -m
. Som er kort av uname --machine
og det gir utdata:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
Ellers skriver du ikke for Linux-kjernen, men for CPU:
cat /proc/cpuinfo
eller:
grep flags /proc/cpuinfo
Under "flags" -parameteren vil du se forskjellige verdier: se "Hva betyr flaggene i /proc/cpuinfo?"
Blant dem heter en lm
: Long Mode
(x86-64: amd64, også kjent som Intel 64, dvs. 64-biters kapabel)
lm ==> 64-bit processor
Eller ved hjelp av lshw
(som nevnt nedenfor av Rolf of Saxony), uten sudo
(bare for å gripe cpu-bredden):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Merk: du kan ha en 64-bits CPU med en 32-bits kjerne installert.
(som ysdx nevner i sitt eget svar, "Nå for tiden kan et system være multiarch så det gir ikke mening uansett. Det kan være lurt å finne standardmålet for kompilatoren")
Hvis du kjørte en 64-biters plattform, ville du se x86_64 eller noe lignende i utdataene fra uname -a
For å få ditt spesifikke maskinvarenavn kjøres
uname -m
Du kan også ringe
getconf LONG_BIT
som returnerer enten 32 eller 64
Det systemet er 32bit. iX86 i uname
betyr at det er en 32-biters arkitektur. Hvis det var 64 bit, ville det returnere
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 x86_64 i686 x86_64 x86_64 GNU/Linux