Linux CPU आर्किटेक्चर गाइड: arch कमांड का उपयोग

परिचय

लिनक्स सर्वर पर जब भी कोई नया सॉफ्टवेयर पैकेज सेटअप करना हो या कस्टम बाइनरी फाइल निष्पादित करनी हो, तो मशीन के प्रोसेसर का आर्किटेक्चर जानना बुनियादी जरूरत बन जाता है। लंबे-चौड़े तकनीकी मैन्युअल पढ़ने के बजाय, टर्मिनल पर कुछ त्वरित कमांड्स की मदद से आप अपने सिस्टम के सटीक हार्डवेयर प्लेटफॉर्म की पहचान पलक झपकते ही कर सकते हैं।

arch टूल से हार्डवेयर आर्किटेक्चर की पहचान

टर्मिनल में सिस्टम के अंतर्निहित मशीन हार्डवेयर और प्रोसेसर डिजाइन को तुरंत सत्यापित करने के लिए arch कमांड सबसे सुलभ जरिया है।
कमांड निष्पादित करने पर दिखने वाला आउटपुट x86_64 यह पुष्टि करता है कि वर्तमान ऑपरेटिंग सिस्टम 64-बिट इंटेल अथवा एएमडी प्रोसेसर प्लेटफॉर्म पर क्रियान्वित है।
⚙️ [उपयोगी पैरामीटर्स]

--help : कमांड के कार्य करने के तरीके तथा समर्थित विकल्पों की संक्षिप्त सूची टर्मिनल पर प्रस्तुत करता है।
--version : यूटिलिटी का वर्तमान संस्करण और कॉपीराइट व लाइसेंस संबंधी विवरण प्रदर्शित करता है।

arch कमांड का आउटपुट

इसी काम को अंजाम देने के लिए uname -m का विकल्प भी मौजूद है, जहां कोर टूल uname के साथ मशीन हार्डवेयर फ्लैग पास किया जाता है।
स्क्रीन पर मिलने वाला परिणाम arch की तरह ही x86_64 प्राप्त होता है, क्योंकि दोनों आंतरिक रूप से लिनक्स कर्नेल के समान हार्डवेयर डेटा स्रोत से जानकारी प्राप्त करते हैं।

uname -m कमांड का परिणाम

पैकेज मैनेजर के नजरिए से आर्किटेक्चर की जांच (dpkg)

डेबियन और उबंटू जैसे वितरणों में बाइनरी संकलन का नामकरण हार्डवेयर के तकनीकी नाम से थोड़ा अलग हो सकता है। इसे जांचने के लिए dpkg --print-architecture कमांड का प्रयोग किया जाता है, जो यह दर्शाता है कि आपका पैकेज मैनेजर डिफ़ॉल्ट रूप से किस बाइनरी प्रारूप का उपयोग कर रहा है।
यहाँ ध्यातव्य है कि जिसे कर्नेल हार्डवेयर स्तर पर x86_64 के रूप में पहचानता है, उसी 64-बिट वातावरण को पैकेज प्रबंधन प्रणाली amd64 का लेबल देती है।

dpkg प्राथमिक आर्किटेक्चर आउटपुट

यदि सर्वर पर मल्टी-आर्किटेक्चर समर्थन सक्रिय है, तो उसकी जांच हेतु dpkg --print-foreign-architectures चलाया जाता है।
यदि इसके प्रत्युत्तर में कंसोल पर कोई आउटपुट नहीं आता, तो इसका सीधा अभिप्राय है कि वर्तमान परिवेश में 64-बिट (amd64) के अलावा अन्य किसी सहायक आर्किटेक्चर (जैसे 32-बिट i386) के पैकेज निष्पादित करने की अनुमति नहीं दी गई है।

विदेशी आर्किटेक्चर की स्थिति

lscpu के जरिए प्रोसेसर ऑपरेशन मोड और विस्तृत विश्लेषण

सिस्टम के चिपसेट आर्किटेक्चर की गहराई से पड़ताल करने के लिए आवश्यक उपकरण util-linux संकलन में शामिल होते हैं। इसे अद्यतन और स्थापित करने के लिए पैकेज रिपॉजिटरी को अपडेट करते हैं।

util-linux पैकेज का इंस्टॉलेशन

lscpu कमांड के साथ grep -E फ़िल्टर जोड़कर हम केवल आवश्यक प्रविष्टियों—जैसे मुख्य आर्किटेक्चर, समर्थित ऑपरेशन मोड्स और बाइट ऑर्डर—को अलग से देख सकते हैं।
परिणाम से साफ होता है कि प्रोसेसर x86_64 डिजाइन पर आधारित है और यह पुराने 32-बिट तथा आधुनिक 64-बिट दोनों बाइनरी मोड्स (32-bit, 64-bit) को चलाने में सक्षम है।
साथ ही, मेमोरी में डेटा भंडारण के लिए न्यूनतम महत्वपूर्ण बाइट को प्राथमिकता देने वाली Little Endian तकनीक का विवरण भी स्पष्ट दिखाई देता है।

lscpu द्वारा सीपीयू विवरण

बैश स्क्रिप्ट में आर्किटेक्चर आधारित ऑटोमेशन लॉजिक

सर्वर ऑटोमेशन और सॉफ्टवेयर परिनियोजन के दौरान अक्सर आर्किटेक्चर के आधार पर अलग-अलग निर्देश चलाने की जरूरत पड़ती है। इस व्यवहार का परीक्षण करने हेतु cat << 'EOF' > test_arch.sh के माध्यम से एक परीक्षण शेल स्क्रिप्ट तैयार करते हैं।
इस स्क्रिप्ट में ARCH वैरिएबल के भीतर सिस्टम आर्किटेक्चर मान को स्टोर कर if-elif-else ब्लॉक द्वारा x86_64 और aarch64 प्लेटफॉर्म्स के बीच अंतर किया गया है।

आर्किटेक्चर डिटेक्शन स्क्रिप्ट का निर्माण

स्क्रिप्ट फ़ाइल को निष्पादन योग्य बनाने के लिए chmod +x test_arch.sh चलाकर आवश्यक एग्जीक्यूशन अनुमतियाँ प्रदान करते हैं।

निष्पादन अनुमति प्रदान करना

टर्मिनल पर ./test_arch.sh रन करने पर स्क्रिप्ट सक्रिय होती है और सिस्टम हार्डवेयर की पहचान करती है।
वर्तमान परिवेश सफलतापूर्वक x86_64 के रूप में पहचाना जाता है और कंसोल पर Detected architecture: 64-bit Intel/AMD (x86_64) का संदेश प्रिंट होता है।

स्क्रिप्ट निष्पादन परिणाम

परीक्षण संपन्न हो जाने के बाद, वर्कस्पेस को स्वच्छ रखने के लिए rm -f test_arch.sh की मदद से निर्मित अस्थायी स्क्रिप्ट फाइल को सिस्टम से हटा दिया जाता है।

अस्थायी फ़ाइल हटाना

इस प्रकार, लिनक्स वातावरण में सिस्टम का प्रोसेसर प्रकार और पैकेज समर्थन प्रारूप निर्धारित करने के लिए arch, uname, और dpkg जैसे टूल्स बेहद कारगर साबित होते हैं। जटिल सॉफ्टवेयर इंस्टॉलेशन से पूर्व इन विधियों को अपनाकर आप गलत बाइनरी निष्पादन से जुड़ी समस्याओं से बच सकते हैं।