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

Woher weiß ich, ob ich 32- oder 64-Bit-Linux verwende?

Lösung 1:

"uname -m" ist der gesuchte Befehl. Sie können sowohl 32-Bit als auch 64-Bit auf modernen Intel- und AMD-Prozessoren ausführen, daher wird Ihnen "uname -p" nicht helfen (außerdem funktioniert es heutzutage meistens nicht, hier denkt Core2 die Antwort auf "uname -p". ist "unbekannt").

Die Suche nach /usr/lib64 (wie vorgeschlagen) wird Ihnen auch nicht helfen, da einige Hardware- und systembezogene Pakete sowohl 32-Bit- als auch 64-Bit-Bibliotheken installieren, um auf der sicheren Seite zu sein. Auf meinem (Debian-)System macht das fakeroot-Paket genau das.

Was die Ausgabe von "uname -m" angeht, wenn es i386 oder i686 ist, ist es 32-Bit, wenn es x86_64 ist (oder Alpha oder ia64 oder eine andere 64-Bit-Architektur, die ich noch nie gesehen habe :), ist es 64-Bit.

(als Spaß beiseite, mein 64-Bit-FreeBSD-Server gibt "amd64" zurück, was für einen Intel-Quadcore etwas seltsam sein mag, aber völlig verständlich ist, wenn Sie die Geschichte der x86-64-Bit-Architektur kennen)

Lösung 2:

uname -a und suchen Sie nach x86_64. Wenn Sie wissen möchten, ob Ihre CPU 64-Bit verarbeiten kann, cat /proc/cpuinfo und suchen Sie in den Flags nach lm.

Lösung 3:

für RedHat/CentOS:

$ uname -a
Linux cs-centos 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686 athlon i386 GNU/Linux

32-Bit

  • i686 und/oder i386

64-Bit

  • hätte x86_64 in uname -a Ausgabe

Lösung 4:

Nur um die Dinge zu verwirren, Sie können einen 64-Bit-Kernel mit einem 32-Bit-Userland ausführen, was ich tue. In diesem Fall uname -m gibt x86_64 zurück aber ich habe keine 64-Bit-Bibliotheken installiert, daher werden die meisten 64-Bit-Programme nicht ausgeführt.

Sobald Sie also uname überprüft haben, müssen Sie nach /lib64/ld-linux-x86-64.so.2 suchen , /lib64/libc-2.7.so und /lib/ld-linux.so.2 , /lib/libc-2.7.so um zu sehen, ob 64-Bit- und 32-Bit-Bibliotheken verfügbar sind. Und um sicherzugehen, führen Sie diese Dateien aus und prüfen Sie, ob sie korrekt ausgeführt werden.

Eine weitere nützliche Information ist die Ausgabe von lsb_release -a Das ist distroübergreifend und meldet, welche architekturspezifischen LSB-Module verfügbar sind.

Lösung 5:

$> getconf LONG_BIT Antwort:32 oder 64.


Linux
  1. Linux – Wie erkennt man, welche Linux-Distribution läuft?

  2. So beenden Sie laufende Prozesse in Linux

  3. Woher weiß ich, ob ich eine verschachtelte Shell ausführe?

  4. 32-Bit-, 64-Bit-CPU-Betriebsmodus unter Linux

  5. Woher weiß ich, wo ein Programm in Linux hängen bleibt?

So beenden Sie den laufenden Linux-Prozess auf einem bestimmten Port

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

Wie man die Gruppen eines Linux-Benutzers kennt

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 kann ich C++-Code profilieren, der unter Linux ausgeführt wird?