मेरा linux एआरएम 32 या 64 बिट है?


60

एक बुद्धि के तहत मैं जानता हूं कि मैं यह जान सकता uname -mहूं कि मेरा ओएस 32 या 64 बिट का है, लेकिन एआरएम के तहत यह पता चलता है:

armv7l

मैं से घटा

file /usr/bin/ls

मैं 32-बिट OS पर हूं, लेकिन मैं इसे आसान तरीके से कैसे जान सकता हूं?


3
बांह 7 32 बिट है। ARMv8-A architecture, announced in October 2011,[6] adds support for a 64-bit address space and 64-bit arithmetic.- विकिपीडिया
ctrl-alt-delor-

@richard मैं ऐसा अनुमान लगा रहा था, लेकिन फिर 64-बिट संस्करण का नाम क्या है?
क्रिस मास

1
मैं एक हाथ मशीन के लिए उपयोग नहीं है, लेकिन के उत्पादन में क्या है uname -aऔर gcc -v? वे सहायक हो सकते हैं।
terdon

Announced October 2011, ARMv8-A (often called ARMv8 although not all variants are 64-bit such as ARMv8-R) represents a fundamental change to the ARM architecture. It adds a 64-bit architecture, named "AArch64", and a new "A64" instruction set. AArch64 provides user-space compatibility with ARMv7-A ISA, the 32-bit architecture, therein referred to as "AArch32" and the old 32-bit instruction set, now named "A32" ARM announced their Cortex-A53 and Cortex-A57 cores on 30 October 2012.- en.wikipedia.org/wiki/ARM_altecture#64.2F32-bit_altecture
ctrl-alt-delor

आर्म 32 बिट सीपीयू के 64 बिट जाने के लिए अंतिम था (मरने वालों को छोड़कर)। अधिकांश 64 बिट गए और फिर उनकी मृत्यु हो गई, क्योंकि खराब विपणन - यह मानते हुए कि बेहतर होना पर्याप्त है। इंटेल x86 अंतिम से दूसरा था, हालांकि यह एएमडी था जिसने 64 बिट जोड़ा।
ctrl-alt-delor

जवाबों:


74

कई उन्नयन हैं, क्योंकि आप 64-बिट-सक्षम सीपीयू पर 32-बिट या मिश्रित ऑपरेटिंग सिस्टम चला सकते हैं। 64-बिट कर्नेल देखें , लेकिन सभी 32-बिट ईएलएफ निष्पादन योग्य प्रक्रियाएं हैं, यह कैसे होता है? एक विस्तृत चर्चा के लिए (x86 के लिए लिखा गया है, लेकिन इसमें से अधिकांश हाथ पर भी लागू होता है)।

आप इसमें प्रोसेसर मॉडल पा सकते हैं /proc/cpuinfo। उदाहरण के लिए:

$ cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 10 (v7l)

ARMv7 (और नीचे) 32-बिट है। ARMv8 64-बिट अनुदेश सेट का परिचय देता है।

यदि आप यह देखना चाहते हैं कि आपका सिस्टम 64-बिट बायनेरिज़ का समर्थन करता है, तो कर्नेल आर्किटेक्चर की जाँच करें:

$ uname -m
armv7l

64-बिट प्रोसेसर पर, आप देखेंगे कि एक स्ट्रिंग armv8(या ऊपर) से शुरू होती है यदि unameप्रक्रिया स्वयं एक 32-बिट प्रक्रिया है, या aarch64यदि यह 64-बिट प्रक्रिया है। (यह भी देखें https://stackoverflow.com/questions/45125516/possible-values-for-uname-m )


2
मैं आपका जवाब नहीं देता, लेकिन दुर्भाग्य से एंड्रॉइड IS LINUX है, इसलिए, ऐसा लगता है कि कुछ कमांड है, कुछ लोग जो इसे स्थानीय रूप से दिखाते हैं और किसी पृष्ठ पर प्रलेखन पढ़ने के लिए नहीं
THESorcerer

1
@THESorcerer एंड्रॉइड एक लिनक्स कर्नेल का उपयोग करता है लेकिन यह लिनक्स सिस्टम नहीं है। इसमें लिनक्स उपयोगकर्ता भूमि उपकरण नहीं है (केवल एक बहुत छोटा उपसमूह)। एंड्रॉइड पर, मुझे लगता है कि बेस ओएस में 64-बिट समर्थन सुसंगत है, जिससे cat /proc/$$/mapsआपको पता चल जाएगा कि सिस्टम 64-बिट है या एक अदद कमांड लाइन से 32-बिट।
गाइल्स

3
मेरा मानना ​​है कि रास्पबेरी पाई 3, जो एआरएमवी 8 (सीआरसी, कोई वैकल्पिक क्रिप्टो) नहीं है, armv7lभले ही एआरएमवी 8 रिपोर्ट करेगा । इसलिए मुझे पूरा यकीन है कि गलत CPU की सूचना दी जाएगी।

1
@jww यदि यह रिपोर्ट करता है armv7l, तो इसका मतलब है कि आप 32-बिट कर्नेल चला रहे हैं। आप 64-बिट CPU पर 32-बिट कर्नेल चला सकते हैं। यदि आप CPU के बारे में जानकारी चाहते हैं, तो पढ़ें /proc/cpuinfo
गाइल्स

uname -m सिर्फ "anarch64" देता है। / proc / cpuinfo में हमेशा एक प्रोसेसर का नाम नहीं होता है।
हलसफार

23

जैसा कि रिकार्ड बताते हैं, armv7वेरिएंट सभी 32-बिट हैं, इसलिए कोई अनावश्यक लेबल नहीं है armv7-32, आदि।

एक लिनक्स सिस्टम पर, आप आसानी से, हालांकि वास्तव में निश्चित रूप से नहीं, एक सामान्य निष्पादन योग्य की जांच करके देख सकते हैं:

> which bash
/bin/bash
> file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV) ...

मैं कहता हूं "निश्चित रूप से नहीं" क्योंकि 64-बिट सिस्टम पर 32-बिट निष्पादन योग्य को चलाना संभव है।

वहाँ में कुछ भी सरल होने के लिए प्रकट नहीं होता /procया /sys; से आउटपुट कुछ महत्वपूर्ण सुराग प्रदान /proc/cpuinfo कर सकता है । यदि किसी कारण से आपको एक स्वचालित जांच की आवश्यकता होती है, तो "मॉडल नाम" फ़ील्ड में मैप की गई तालिका बनाने से ऐसा लगता है जैसे एक संभावित ध्वनि विधि ("मॉडल", "सीपीयू परिवार", आदि सहित अन्य फ़ील्ड वैकल्पिक दिखते हैं - वे डॉन ' t मेरे लिए ब्रॉडकॉम 2708 ARMv6 प्रोसेसर पर सभी जगह दिखाई देता है)।


तो armv7l 32 बिट सही है?
बकलोलो

1
@bakalolo प्रश्न और धीरे-धीरे स्वीकार किए गए उत्तर को पढ़ें;)
Goldilocks

11

'Lshw' पैकेज स्थापित करें।

# lshw
...
    description: Computer
    product: Raspberry Pi 3 Model B Rev 1.2
    width: 32 bits
...

3

बिट काउंट देखने के अधिकांश तरीके किसी भी तरह से जानते हैं कि आर्म 7 = 32 बिट और जबकि यह सच है लेकिन क्या हो सकता है

pi@rpi9:~ $ getconf LONG_BIT
32

और अगर आप सीपीयू मॉडल की तलाश करना चाहते हैं तो मैं सामान्य रूप से आर्क का उपयोग करता हूं

root@rpi4:~# tr '\0' '\n' </proc/device-tree/model;arch
Raspberry Pi Model B Rev 2
armv6l

pi@rpi9:~ $ tr '\0' '\n' </proc/device-tree/model;arch
Raspberry Pi 3 Model B Rev 1.2
armv7l

getconf LONG_BIT बहुत सीधा है
Abdulkarim Kanaan

1

निम्नलिखित प्रयास करें।

// -*- compile-command: "gcc -Wall -o sizeof sizeof.c && ./sizeof" -*-

#include <stdio.h>
#include <limits.h>

#define size(t) { t x; printf("%s:\t%3lu bit\n", #t, CHAR_BIT * sizeof x); }

int main (int argc, char *argv[])
{
  size(char);
  size(short);
  size(int);
  size(long);
  size(void*);
  return 0;
}

पते का आकार है void*


1
sizeofरिटर्न size_tजो प्रिंट आउट का उपयोग करना होगा%zu । गलत फॉर्मेट स्पेसिफायर का उपयोग करते हुए आह्वान अपरिभाषित व्यवहार
phuclv

और शून्य का आकार * जरूरी नहीं कि वास्तुकला बिट चौड़ाई है। क्या आपने कभी x32 के बारे में सुना है ABI sites.google.com/site/x32abi
phuclv

इसी तरह, getconf -a | grep LONG_BIT
kaiwan

2
यह आपको आपके कंपाइलर की प्रकृति के अलावा किसी और चीज़ के बारे में नहीं बताता है ।
rsethc

-5

नहीं, यह एक 64-बिट कंप्यूटर है। यह एक ऑलविनर एच 8 है, डायन एक डबल एआरएम -7 है। 8 कोर, 64 बिट्स, पॉवर, sgx 544, दोगुनी गति (700mhz) पर।

तो नहीं, यह 64 बिट होने में सक्षम है। बस ओएस 32 हो सकता है।


आपने कहां पाया कि ऑलविनर एच 8 का उपयोग करते हुए ओपी? वास्तुकला armv7l है जो स्पष्ट रूप से एक 64-बिट एक नहीं है
फुक्लेव

बाहरी स्रोतों से तीसरे पक्ष की जानकारी का उपयोग करने के बजाय सिस्टम के भीतर से वांछित जानकारी खोजने का एक तरीका प्रदर्शित करना बेहतर है । यह उत्तर की तुलना में टिप्पणी करने के लिए बेहतर है (इसलिए सभी डाउन वोट)।
Synetech
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.