Όταν πληκτρολογώ uname -a
, δίνει την ακόλουθη έξοδο.
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux
Πώς μπορώ να ξέρω από αυτό ότι το συγκεκριμένο λειτουργικό σύστημα είναι 32 ή 64 bit;
Αυτό είναι χρήσιμο όταν γράφουμε σενάρια "ρυθμίσεων", για παράδειγμα: για ποια αρχιτεκτονική κατασκευάζω;
Δοκιμάστε uname -m
. Το οποίο είναι συντομογραφία του uname --machine
και βγάζει:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
Διαφορετικά, όχι για τον πυρήνα του Linux, αλλά για τη CPU, πληκτρολογείτε:
cat /proc/cpuinfo
ή:
grep flags /proc/cpuinfo
Κάτω από την παράμετρο "flags", θα δείτε διάφορες τιμές: βλέπε "Τι σημαίνουν οι σημαίες στο /proc/cpuinfo;",
Μεταξύ αυτών, μία ονομάζεται lm
: Long Mode
(x86-64: amd64, επίσης γνωστή ως Intel 64, δηλαδή ικανή για 64-bit)
lm ==> 64-bit processor
Ή χρησιμοποιώντας το lshw
(όπως αναφέρεται παρακάτω από τον Rolf of Saxony), χωρίς sudo
(μόνο για την αναζήτηση του πλάτους της cpu):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Σημείωση: μπορείτε να έχετε μια CPU 64-bit με εγκατεστημένο πυρήνα 32-bit.
(όπως αναφέρει ο ysdx στη δική του/της απάντηση, "Στις μέρες μας, ένα σύστημα μπορεί να είναι multiarch οπότε δεν έχει νόημα ούτως ή άλλως. Ίσως να θέλετε να βρείτε τον προεπιλεγμένο στόχο του μεταγλωττιστή")
Αν τρέχατε μια πλατφόρμα 64 bit θα βλέπατε x86_64 ή κάτι πολύ παρόμοιο στην έξοδο από το [uname][1] -a
Για να λάβετε το συγκεκριμένο όνομα υλικού του μηχανήματός σας εκτελέστε
uname -m
Μπορείτε επίσης να καλέσετε
getconf LONG_BIT
η οποία επιστρέφει είτε 32 είτε 64
[1]: http://manpages.ubuntu.com/manpages/intrepid/man1/uname.html "uname",
Αυτό το σύστημα είναι 32bit. iX86 στο uname
σημαίνει ότι είναι αρχιτεκτονική 32-bit. Αν ήταν 64 bit, θα επέστρεφε
Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 x86_64 i686 x86_64 x86_64 GNU/Linux