मुझे कैसे पता चलेगा कि मैं 32 या 64-बिट लिनक्स चला रहा हूं?


जवाबों:


37

"uname -m" वह कमांड है जिसकी आप तलाश कर रहे हैं। आप आधुनिक इंटेल और AMD प्रोसेसर पर 32 बिट और 64 बिट दोनों को चला सकते हैं, इसलिए "uname -p" आपकी मदद नहीं करने वाला है (इसके अलावा यह ज्यादातर इन दिनों काम नहीं करता है, यहाँ core2 "unp -p" की प्रतिक्रिया को सोचता है) अज्ञात है")।

/ Usr / lib64 के अस्तित्व की तलाश में (जैसा कि सुझाव दिया गया है) या तो आपकी मदद करने वाला नहीं है, क्योंकि कुछ हार्डवेयर और सिस्टम से संबंधित पैकेज 32 बिट और 64 बिट लाइब्रेरी को सुरक्षित पक्ष पर स्थापित करने के लिए स्थापित करेंगे। मेरे (डेबियन) सिस्टम पर फ़ेकरूट पैकेज बस यही करता है।

के रूप में "uname -m" के आउटपुट के लिए, अगर यह i386 या i686 है तो यह 32 बिट है, अगर यह x86_64 (या अल्फा, या ia64 या कुछ अन्य 64 बिट आर्किटेक्चर मैंने कभी नहीं देखा है :) यह 64 बिट है।

(एक तरफ एक मजेदार के रूप में, मेरा 64 बिट फ्रीबीएसडी सर्वर "amd64" लौटाता है, जो एक इंटेल क्वाडकोर के लिए थोड़ा अजीब हो सकता है लेकिन पूरी तरह से समझने योग्य है यदि आप x86 64 बिट आर्किटेक्चर के इतिहास को जानते हैं)


1
यह आपको इंस्टॉलेशन आर्किटेक्चर या वास्तविक सीपीयू आर्किटेक्चर बताता है। उदाहरण के लिए, यदि आपने 64 बिट सीपीयू पर 32-बिट ओएस स्थापित किया है, तो क्या यह i686 या x86_64 पर वापस आएगा?
8

15

uname -a और x86_64 के लिए देखें। यदि आप जानना चाहते हैं कि क्या आपका सीपीयू 64 बिट, कैट / प्रॉप / सीपीयूएफआईओ को संभाल सकता है और झंडे के भीतर एलएम की तलाश कर सकता है।


3
cat / proc / cpuinfo | grep ^ झंडे | perl -e '$ _ = <>, "x86_64 \ n" प्रिंट करें: "नहीं x86_64 \ n"
ब्रैड गिल्बर्ट

6

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-बिट

  • i686 और / या i386

64-बिट

  • una -a आउटपुट में x86_64 होगा

6

बस चीजों को भ्रमित करने के लिए, आप 32 बिट उपयोगकर्ता के साथ 64 बिट कर्नेल चला सकते हैं, जो कि मैं कर रहा हूं। इस मामले में, uname -mरिटर्न x86_64लेकिन मेरे पास कोई 64 बिट लाइब्रेरी स्थापित नहीं है, इसलिए अधिकांश 64 बिट प्रोग्राम नहीं चलेंगे।

तो एक बार आप uname जाँच, आप के लिए देखने की जरूरत है /lib64/ld-linux-x86-64.so.2, /lib64/libc-2.7.soऔर /lib/ld-linux.so.2, /lib/libc-2.7.soकि क्या 64 बिट और 32 बिट पुस्तकालयों में उपलब्ध हैं देखने के लिए। और वास्तव में सुनिश्चित करने के लिए, उन फ़ाइलों को चलाएं और देखें कि क्या वे सही तरीके से निष्पादित करते हैं।

जानकारी का एक और उपयोगी टुकड़ा है जिसका उत्पादन lsb_release -aक्रॉस-डिस्ट्रो है और यह रिपोर्ट करेगा कि आर्किटेक्चर-विशिष्ट एलएसबी मॉड्यूल उपलब्ध हैं।


2
दुर्भाग्य से lsb_release -aयूज़रलैंड आर्किटेक्चर का उत्पादन नहीं करता है
जोनी


2

इसका एक और तरीका यह है कि पर्ल से पूछा जाए कि कंपाइलर ने एक लंबे पूर्णांक का आकार क्या है:

$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
64

बनाम

$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
32

या, यदि आपने gcc स्थापित किया है, C में समान:

$ cat > bits.c <<EOC
> #include <stdlib.h>
> #include <stdio.h>
> 
> int main(void) {
>    printf("%d\n", (int)sizeof(long)*8);
> 
>    exit(0);
> }
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
64

बनाम

[...]
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
32

:-)


यह आपको बताता है कि पर्ल का डिफ़ॉल्ट संस्करण क्या है ..
pjc50

@ pjc50: और आपकी बात क्या है?
असोज

1
उसका कहना है कि आप 64 बिट सिस्टम पर 32 बिट पर्ल कर सकते हैं
niXar

@niXar: मुझे लगता है कि यह संभव है, लेकिन होने से यह काफी अजीब है ... लिनक्स वितरण। वैसे भी, तो सी संस्करण का उपयोग ;-)
asjo

1

के डुप्लिकेट के रूप में:

लिनक्स + कैसे लिनक्स संस्करण 32 बिट या 64 बिट सत्यापित करने के लिए

uname -m आपको केवल कर्नेल का रनिंग 'आर्क' / आर्किटेक्चर देगा। यह नहीं बताएगा कि आपके 64 बिट्स सक्षम सीपीयू पर 32 बिट्स जीएनयू / लिनक्स वितरण चल रहा है या नहीं।

अपनी सीपीयू क्षमता जानने के लिए:

 cat /proc/cpuinfo

'LM' ध्वज 64 बिट्स सिस्टम में मौजूद होना चाहिए क्योंकि यह 'LONG MODE' (64 बिट एक्सटेंशन्स, AMD के AMD64 या Intel के EM64T) का प्रतिनिधित्व करता है।



0

यदि आपके पास / usr / lib64 है तो आप x86_64 चला रहे हैं।


3
mkdir / usr / lib128 && इको "देखो मा ', मेरे पास 128 बिट कंप्यूटर है!"
niXar

0

ब्रैड गिल्बर्ट की कमान में एक बग था। मैंने इसे ठीक कर लिया है और नीचे का कमांड काम करता है: cat / proc / cpuinfo | grep ^ झंडे | perl -e '$ = <>; प्रिंट ($ ? "x86_64 \ n": "x86_64 \ n")'

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.