GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man die Bitanzahl von Hardware und Betriebssystem bestimmen?

Die Hardware, der Kernel und die Userspace-Programme können unterschiedliche Wortgrößen¹ haben.

  • Sie können sehen, ob die CPU ist 64-Bit, 32-Bit oder kann beides, indem Sie flags überprüfen Zeile in /proc/cpuinfo . Sie müssen die möglichen Flags Ihrer Architekturfamilie kennen. Beispielsweise auf i386/amd64-Plattformen der lm Flag identifiziert amd64-fähige CPUs (CPUs, die dieses Flag nicht haben, sind nur i386).

      grep -q '^flags *:.*\blm\b' /proc/cpuinfo    # Assuming a PC
    
  • Sie können sehen, ob der Kernel 32-Bit oder 64-Bit ist, indem Sie die Architektur mit uname -m abfragen . Beispiel:i[3456]86 sind 32-Bit, während x86_64 ist 64-Bit. Beachten Sie, dass auf mehreren Architekturen ein 64-Bit-Kernel 32-Bit-Userland-Programme ausführen kann, also selbst wenn uname -m einen 64-Bit-Kernel zeigt, gibt es keine Garantie, dass 64-Bit-Bibliotheken verfügbar sein werden.

      [ "$(uname -m)" = "x86_64" ]    # Assuming a PC
    
  • Sie können sehen, was im Userland verfügbar ist, indem Sie den LSB-Support mit dem lsb_release abfragen Befehl. Genauer gesagt lsb_release -s gibt eine : aus -getrennte Liste der unterstützten LSB-Funktionen. Jedes Merkmal hat die Form module-version-architecture . Beispielsweise wird die Verfügbarkeit einer ix86-C-Bibliothek durch core-2.0-ia32 angezeigt , während core-2.0-amd64 ist das Analogon für amd64. Nicht jede Distribution deklariert jedoch alle verfügbaren LSB-Module, daher können mehr verfügbar sein, als auf diese Weise erkennbar sind.

  • Mit einem Befehl wie file /bin/ls können Sie sehen, für welche Architekturprogramme auf dem System gebaut wurden . Beachten Sie, dass es möglich ist, ein gemischtes System zu haben; auch wenn ls ein 64-Bit-Programm ist, sind auf Ihrem System möglicherweise Bibliotheken installiert, um 32-Bit-Programme auszuführen, und (seltener) umgekehrt.

  • Sie können die bevorzugte Wortgröße für die Entwicklung herausfinden (vorausgesetzt, ein C-Compiler ist verfügbar), indem Sie ein 5-zeiliges C-Programm kompilieren, das sizeof(void*) ausgibt oder sizeof(size_t) . Sie können dieselben Informationen auf etwas weniger zuverlässige Weise² erhalten, indem Sie den Befehl getconf LONG_BIT ausführen .

      #include <stdio.h>
      int main() {
          printf("%d\n", (int)sizeof(void*));
          return 0;
      }
    

Ob Sie bei virtuellen Maschinen eine 64-Bit-VM auf einem 32-Bit-System ausführen können oder umgekehrt, hängt von der Technologie Ihrer virtuellen Maschine ab. Siehe insbesondere Wie kann ich eine virtuelle 64-Bit-Linux-Maschine auf einem 32-Bit-Linux installieren?

¹ „Wortgröße“ ist der übliche Name für das, was Sie Bitness nennen.
² Es kann unzuverlässig sein, wenn jemand einen alternativen C-Compiler mit einer anderen Zielarchitektur installiert, aber den Systemstandard getconf beibehalten hat .


Linux
  1. Wie sich das Linux-Testen verändert hat und was heute zählt

  2. Debian – Wie führt man 32-Bit-Programme auf einem 64-Bit-Debian/Ubuntu aus?

  3. Gewusst wie:DRBD-Replikation und -Konfiguration

  4. So zeigen Sie System- und Hardwaredetails in Linux Mint 20 an

  5. Wie kann man feststellen, ob eine Linux-Binärdatei 32-Bit oder 64-Bit ist?

So zeigen Sie Hardwareinformationen unter Linux an

So erkennen Sie, ob Sie einen 32-Bit- oder 64-Bit-Computer unter Linux und Windows haben

So installieren und konfigurieren Sie Grafana

So erkennen Sie, ob es sich um eine 32-Bit- oder 64-Bit-Version von Linux handelt

Wie kann ich überprüfen, ob das Linux-System 32-Bit oder 64-Bit ist?

Wie vernetzt man Ubuntu und Windows 10?