Perangkat keras, kernel, dan program ruang pengguna mungkin memiliki ukuran kata yang berbeda¹.
-
Anda dapat melihat apakah CPU adalah 64-bit, 32-bit, atau mampu keduanya dengan mencentang
flags
baris di/proc/cpuinfo
. Anda harus mengetahui kemungkinan bendera pada keluarga arsitektur Anda. Misalnya, pada platform i386/amd64,lm
flag mengidentifikasi CPU berkemampuan amd64 (CPU yang tidak memiliki flag tersebut hanya i386).grep -q '^flags *:.*\blm\b' /proc/cpuinfo # Assuming a PC
-
Anda dapat melihat apakah kernel 32-bit atau 64-bit dengan menanyakan arsitektur dengan
uname -m
. Misalnya,i[3456]86
adalah 32-bit sedangkanx86_64
adalah 64-bit. Perhatikan bahwa pada beberapa arsitektur, kernel 64-bit dapat menjalankan program userland 32-bit, bahkan jika kodeuname -m
menunjukkan kernel 64-bit, tidak ada jaminan bahwa pustaka 64-bit akan tersedia.[ "$(uname -m)" = "x86_64" ] # Assuming a PC
-
Anda dapat melihat apa yang tersedia di userland dengan menanyakan dukungan LSB dengan
lsb_release
memerintah. Lebih tepatnya,lsb_release -s
mencetak:
-daftar terpisah dari fitur LSB yang didukung. Setiap fitur memiliki bentukmodule-version-architecture
. Misalnya, ketersediaan library ix86 C ditunjukkan dengancore-2.0-ia32
, sementaracore-2.0-amd64
adalah analog untuk amd64. Namun, tidak setiap distribusi mendeklarasikan semua modul LSB yang tersedia, jadi lebih banyak modul yang tersedia daripada yang terdeteksi dengan cara ini. -
Anda dapat melihat untuk apa program arsitektur pada sistem dibuat dengan perintah seperti
file /bin/ls
. Perhatikan bahwa mungkin untuk memiliki sistem campuran; bahkan jikals
adalah program 64-bit, sistem Anda mungkin memiliki pustaka yang diinstal untuk menjalankan program 32-bit, dan (lebih jarang) sebaliknya. -
Anda dapat mengetahui ukuran kata yang disukai untuk pengembangan (dengan asumsi kompiler C tersedia) dengan mengkompilasi program C 5-baris yang mencetak
sizeof(void*)
atausizeof(size_t)
. Anda dapat memperoleh informasi yang sama dengan cara yang sedikit kurang andal² dengan menjalankan perintahgetconf LONG_BIT
.#include <stdio.h> int main() { printf("%d\n", (int)sizeof(void*)); return 0; }
Untuk mesin virtual, apakah Anda dapat menjalankan VM 64-bit pada sistem 32-bit atau sebaliknya bergantung pada teknologi mesin virtual Anda. Lihat secara khususBagaimana cara menginstal mesin virtual Linux 64bit di Linux 32bit?
¹ "Ukuran kata" adalah nama biasa untuk apa yang Anda sebut bitness.
² Tidak dapat diandalkan jika seseorang menginstal kompiler C alternatif dengan arsitektur target yang berbeda tetapi mempertahankan sistem default getconf
.