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
flagsbaris di/proc/cpuinfo. Anda harus mengetahui kemungkinan bendera pada keluarga arsitektur Anda. Misalnya, pada platform i386/amd64,lmflag 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]86adalah 32-bit sedangkanx86_64adalah 64-bit. Perhatikan bahwa pada beberapa arsitektur, kernel 64-bit dapat menjalankan program userland 32-bit, bahkan jika kodeuname -mmenunjukkan 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_releasememerintah. Lebih tepatnya,lsb_release -smencetak:-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-amd64adalah 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 jikalsadalah 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 .