GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menentukan bitness perangkat keras dan OS?

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 sedangkan x86_64 adalah 64-bit. Perhatikan bahwa pada beberapa arsitektur, kernel 64-bit dapat menjalankan program userland 32-bit, bahkan jika kode uname -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 bentuk module-version-architecture . Misalnya, ketersediaan library ix86 C ditunjukkan dengan core-2.0-ia32 , sementara core-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 jika ls 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*) atau sizeof(size_t) . Anda dapat memperoleh informasi yang sama dengan cara yang sedikit kurang andal² dengan menjalankan perintah getconf 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 .


Linux
  1. Cara mendapatkan informasi sistem dan perangkat keras di linux

  2. Cara Menampilkan Detail Sistem dan Perangkat Keras di Debian 10

  3. Debian – Bagaimana Cara Menjalankan Program 32-bit Pada Debian/ubuntu 64-bit?

  1. Cara:Replikasi dan Konfigurasi DRBD

  2. Bagaimana cara menentukan apakah Linux yang diberikan adalah 32 bit atau 64 bit?

  3. Cara mengkompilasi biner 32-bit pada mesin linux 64-bit dengan gcc/cmake

  1. Bagaimana pengujian Linux telah berubah dan apa yang penting hari ini

  2. Bagaimana Cara Downgrade Dari 64-bit Ke 32-bit?

  3. Cara Menampilkan Detail Sistem dan Perangkat Keras di Linux Mint 20