uname -m
Gibt i686 und uname -m
i686 i386-Ausgabe in Red Hat Enterprise Linux Server Version 5.4 (Tikanga). Ich muss Oracle Database 10g Release 2 auf diesem Computer installieren. Wie kann ich entscheiden, ob die Kernel-Architektur 32-Bit oder 64-Bit ist?
linux
command-line
x86
cpu-architecture
user2914
quelle
quelle
uname -m
unduname -m
?uname -m
i? 86 zeigt, haben Sie ein 32-Bit-System.getconf WORD_BIT
.getconf WORD_BIT
gibt 32 auf meinem 64-Bit-Ubuntu zurückAntworten:
i386 und i686 sind beide 32-Bit.
x86_64 ist 64-Bit
Beispiel für 64 Bit:
EDIT:
Siehe mein Linux ARM 32 oder 64 Bit? für ARM
quelle
uname -m
. Das zeigt nur die Architektur.Es ist einfach! Verwenden Sie den
arch
Befehl.quelle
arch
kehrt zurücki386
,uname -a
zeigt aberx86_64
.@behrooz ist richtig. Leider
uname
müssen Sie Architekturen kennen. Eigentlich suchte ich nach einer Liste von Architekturen und fand diesen Artikel , der Ihre Frage beantwortet. In Bezug aufuname -m
:Feststellen, ob auf der Hardware ein 64-Bit-Kernel ausgeführt werden kann
Achten Sie in der Ausgabe auf Folgendes (alle Flags, die von dieser Stackoverflow-Antwort für dieselbe Frage abgerufen wurden )
lm
Flag bedeutet Langmodus-CPU - 64-Bit-CPUtm
Flag bedeutet Geschützter Modus - 32-Bit-CPUrm
Flag bedeutet Real Mode - 16 Bit CPUquelle
(BEARBEITEN: Diese Antwort ist FALSCH. Dank @ Lizardx Kommentar)
In Bash mit Integer-Überlauf:
Es ist viel effizienter, als einen anderen Prozess aufzurufen oder Dateien zu öffnen.
quelle
((
ist ein Bashismus und nicht von POSIX definiert. mywiki.wooledge.org/Bashism#Conditionals((1<<32)-1)
Für Debian :
Auf meinem PC
Mein Himbeer Pi 2
quelle
checkinstall
, thx!Der einfachste Weg ist zu laufen:
Dies gibt 64 oder 32 aus, je nachdem, ob es sich um 32 oder 64 Bit handelt.
z.B:
quelle
getconf LONG_BIT
wird die 32-Bit-Installation gedruckt,32
obwohl Sie den 64-Bit-Kernel ausführen .Verwenden Sie syscap aus dem Formake-Projekt
Mit syscap können viele Systemeigenschaften überprüft und Abhängigkeiten getestet werden. Es ist ein portables Shell-Skript.
Holen Sie sich die CPU-Architektur:
Kernelnamen und -version abrufen:
quelle
Eine andere Möglichkeit besteht darin, die Architektur zu überprüfen, für die eine Systemdatei kompiliert wurde, z
quelle
Oder Sie können die Methode verwenden, die der Befehl uname intern ausführt, wenn Sie einige Dinge selbst implementieren möchten:
quelle
Hier ist eine andere Methode mit
uname
.Von
man uname
:... -i, --hardware-platform print the hardware platform or "unknown" ...
# uname -i x86_64
#
quelle
Wenn Sie nach einem einfachen Einzeiler suchen, ist dies die zuverlässigste Lösung, die ich gefunden habe und die 64 oder 32 zurückgibt . Es ist egal, ob Sie ARM ausführen oder nicht, und es sollte auf jedem System funktionieren, das bash oder sh verwendet .
Beachten Sie, dass dies voraussetzt, dass das System entweder 32-Bit oder 64-Bit ist. Siehe meine Erklärung unten, wenn Sie 8-16-Bit-Architektur oder eine andere Bit-Architektur erkennen müssen.
Was ist hier los?
Die Logik ist sehr einfach und alles läuft darauf hinaus, wie Computer signierte Ganzzahlen speichern. Eine 32-Bit-Architektur hat nur 32 Bit, die zum Speichern von Ganzzahlen mit Vorzeichen verwendet werden können, während eine 64-Bit-Architektur 64 Bit hat! Mit anderen Worten, die Menge der Ganzzahlen, die gespeichert werden können, ist endlich. Die Hälfte dieses Satzes steht für negative Zahlen und die Hälfte für positive Zahlen. Die Ganzzahl mit Vorzeichen gleich -1 wird als die größte Zahl dargestellt, die in einer bestimmten Anzahl von Bits für diese Architektur gespeichert werden kann. Auf einem 32-Bit-System kann -1 durch den Hexadezimalwert 0xFFFFFFFF dargestellt werden (der 32 Binärbits entspricht, wobei alle 1 entsprechen). Auf einem 64-Bit-System wird 0xFFFFFFFF in 4.294.967.295 (Basis 10) übersetzt, während 0xFFFFFFFFFFFFFF die Darstellung für -1 ist. Sie können sehen, wie dies leicht für Systeme mit 8 oder 16 Bit skaliert werden kann, die bei 0xFF und 0xFFFF gleich -1 sind.
quelle