यह सामान्य ज्ञान है कि कोड एक डेवलपर द्वारा लिखा जाता है और मनुष्य कंप्यूटर से कैसे संवाद करता है। हालांकि, क्या आपने कभी इस बारे में सोचा है कि कोड जैसे सॉफ्टवेयर कंप्यूटर हार्डवेयर जैसे सीपीयू (सेंट्रल प्रोसेसिंग यूनिट) के साथ कैसे इंटरैक्ट करते हैं? अगर जवाब हाँ है, तो आप सही जगह पर आए हैं।
यह समझने के लिए कि कंप्यूटर पर कोड कैसे निष्पादित किया जाता है, आपको यह समझना होगा कि कंप्यूटर को क्या टिक करता है और इसे कैसे हेरफेर किया जा सकता है। सबसे पहले, आइए पहले चीजों के सॉफ़्टवेयर पक्ष में आगे बढ़ने से पहले कंप्यूटर हार्डवेयर के मूलभूत विचारों के बारे में बात करें।
बाइनरी क्या है?
बाइनरी एक बेस -2 नंबर सिस्टम है जो प्रोसेसर और मेमोरी कोड को निष्पादित करने के लिए उपयोग करते हैं। बाइनरी नंबर केवल 1 या 0 हो सकते हैं, इसलिए इसका नाम। यदि आप आठ बाइनरी नंबर (00000000) को समूहबद्ध करते हैं, तो आपको वह मिलता है जिसे बाइट के रूप में जाना जाता है, जबकि एक सिंगल बाइनरी नंबर (0) को बिट कहा जाता है।
कैसे एक साधारण स्विच बाइनरी सिग्नल उत्पन्न करता है
मशीनों के साथ कंप्यूटिंग के बारे में सब कुछ एक साधारण स्विच से शुरू होता है। एक साधारण स्विच में दो कंडक्टर और एक कनेक्टिंग और डिस्कनेक्टिंग तंत्र होता है। दोनों कंडक्टरों को जोड़ने से करंट प्रवाहित होता है, जो कंडक्टर के दूसरे छोर पर एक सिग्नल पैदा करता है। दूसरी ओर, यदि कंडक्टर काट दिए जाते हैं, तो करंट प्रवाहित नहीं होगा, अर्थात कोई सिग्नल नहीं बनेगा।
चूंकि एक स्विच केवल एक उदाहरण पर चालू या बंद हो सकता है, वे वर्ग तरंग संकेतों का उत्पादन करने के लिए उपयोग किए जाने वाले उच्च और निम्न सिग्नल बनाने के लिए आदर्श तंत्र प्रदान करते हैं।
जब आप किसी स्विच को फ़्लिक करते हैं, तो यह एक सिग्नल या एक बिट डेटा उत्पन्न करता है। स्मार्टफोन से ली गई एक नियमित तस्वीर लगभग पांच मेगाबाइट डेटा होगी, जो 40,000,000 बिट्स के बराबर होगी। इसका मतलब यह होगा कि आपको अपने स्मार्टफोन से ली गई एक तस्वीर के लिए पर्याप्त डेटा बनाने के लिए स्विच को लाखों बार फ़्लिक करना होगा।
एक स्विच की यांत्रिक सीमाओं के साथ, इंजीनियरों को कुछ ऐसा चाहिए था जिसमें कोई हिलता हुआ भाग न हो और तेज स्विचिंग गति प्रदान करता हो।
एक स्विच के रूप में प्रयुक्त ट्रांजिस्टर
डोपिंग (सिलिकॉन जैसे अर्धचालकों की विद्युत चालकता में हेरफेर) की खोज के लिए धन्यवाद, इंजीनियर ट्रांजिस्टर के रूप में जाने जाने वाले विद्युत नियंत्रित स्विच बनाने में सक्षम थे। इस नए आविष्कार ने तेजी से प्रसंस्करण गति की अनुमति दी जिसके लिए बिजली के लिए कम वोल्टेज की आवश्यकता थी, अंततः एक आधुनिक सीपीयू पर इन ट्रांजिस्टर के एक अरब से अधिक स्टैक करना संभव हो गया।
सीपीयू आर्किटेक्चर क्या है?
तब ट्रांजिस्टर को बड़ी चतुराई से लॉजिक गेट्स, हाफ-एडर्स, एडर्स, फ्लिप फ्लॉप, मल्टीप्लेक्सर्स, रजिस्टर्स और सीपीयू को क्रियाशील बनाने वाले विभिन्न घटकों को व्यवस्थित करने के लिए व्यवस्थित किया जाता है। जिस तरह से इन घटकों को ढेर किया गया है वह परिभाषित करता है कि सीपीयू आर्किटेक्चर के रूप में क्या जाना जाता है।
सीपीयू आर्किटेक्चर एक प्रोसेसर के आईएसए (इंस्ट्रक्शन सेट आर्किटेक्चर) को भी निर्देशित करता है। एक आईएसए में निर्देशों की एक अंतर्निहित सूची होती है जिसे सीपीयू मूल रूप से निष्पादित कर सकता है। इन निर्देशों को क्रमिक रूप से एक प्रोग्रामिंग भाषा के माध्यम से एक साथ मिलाया जाता है, जिसे प्रोग्राम के रूप में जाना जाता है। आमतौर पर, एक सीपीयू पर सैकड़ों निर्देश आसानी से उपलब्ध होते हैं, जिसमें जोड़, घटाव, चाल, सहेजना और लोड करना शामिल है।
यहाँ एक निर्देश सेट का एक नमूना है:
निर्देश सेट में प्रत्येक निर्देश का अपना बाइनरी पता होता है जिसे ओपकोड के रूप में जाना जाता है। ओपकोड पहले कुछ बाइनरी बिट्स होंगे जो बताते हैं कि निर्देश सेट से किस ऑपरेशन का उपयोग करना है।
ऑपोड के बाद ऑपरेंड है। संकार्य में मान और पते होते हैं जहां ओपकोड का उपयोग किया जाएगा।
आरेख 8-बिट निर्देश दिखाता है। यदि सीपीयू में 64-बिट आर्किटेक्चर है, तो निर्देश निर्देश चौड़ाई में 64 बिट तक हो सकते हैं, जिससे यह अधिक सक्षम प्रोसेसर बन जाता है।
सम्बंधित: RISC और CISC CPU कैसे भिन्न हैं?
असेंबलर
अब जब आप बाइनरी सिग्नल को समझ गए हैं, तो आप सीख सकते हैं कि आपका कंप्यूटर ऐसे सिग्नलों की व्याख्या कैसे करता है। मशीन कोड की व्याख्या कैसे की जाती है, यह एक असेंबलर पर उपयोग किए जाने वाले तर्क के प्रकार पर निर्भर करता है (एक निम्न-स्तरीय प्रोग्राम जो कोड को उचित बाइनरी में डिकोड और असेंबल करने के लिए उपयोग किया जाता है)।
उदाहरण के लिए, यदि हमारा असेंबलर ASCII (सूचना इंटरचेंज के लिए अमेरिकी मानक कोड) मानक का उपयोग करता है, हमारा असेंबलर दिए गए मशीन कोड को लेगा और इसे उसी तरह से व्याख्यायित करेगा जैसे तालिका में ASCII से किया गया है नीचे।
00101001 | ए | 00101111 | जी | 00110101 | एम | 00111011 | एस | 01000001 | यू |
00101010 | बी | 00110000 | एच | 00110110 | एन | 00111100 | टी | 01000010 | जेड |
00101011 | सी | 00110001 | मैं | 00110111 | 0 | 00111101 | यू | ||
00101100 | डी | 00110010 | जे | 00111000 | पी | 00111110 | वी | ||
00101101 | इ | 00110011 | क | 00111001 | क्यू | 00111111 | वू | ||
00101110 | एफ | 00110100 | ली | 00111010 | आर | 0100000 | एक्स |
चूंकि हमारा असेंबलर ASCII (8-बिट संस्करण) का उपयोग करता है, बाइनरी में प्रत्येक आठ बाइनरी नंबरों की व्याख्या एक वर्ण के रूप में की जाती है। असेंबलर इस बाइट को लेगा और दिए गए मानकों के अनुसार इसकी व्याख्या करेगा। उदाहरण के लिए, 01000001 01101001 01010100 "बिट" शब्द में अनुवाद करेगा।
विधानसभा भाषा को समझना
असेंबली लैंग्वेज एक मानव-पठनीय निम्न-स्तरीय प्रोग्रामिंग भाषा है जो सीधे सीपीयू आर्किटेक्चर के ऑपकोड और ऑपरेंड में हेरफेर करती है।
यहां पहले दिखाए गए निर्देश सेट का उपयोग करके एक साधारण असेंबली कोड का उदाहरण दिया गया है:
1. लोडा #5
2. लोड #7
3. R3 जोड़ें
4. स्ट्रे एम12
कोड के इस ब्लॉक को RAM में तब तक स्टोर किया जाता है जब तक कि CPU कोड की प्रत्येक पंक्ति को एक-एक करके प्राप्त नहीं कर लेता।
सीपीयू फ़ेच, डीकोड, और एक्ज़ीक्यूट साइकिल
सीपीयू एक चक्र के माध्यम से कोड निष्पादित करता है जिसे फ़ेच, डीकोड और एक्ज़िक्यूट के रूप में जाना जाता है। यह क्रम दिखाता है कि सीपीयू कोड की प्रत्येक पंक्ति को कैसे संसाधित करता है।
लाना: सीपीयू के भीतर निर्देश काउंटर सीपीयू को यह बताने के लिए रैम से निर्देश की एक पंक्ति लेता है कि आगे कौन सा निर्देश निष्पादित करना है।
व्याख्या करना: असेंबलर कोड के मानव-पठनीय ब्लॉक को डीकोड करेगा और इसे कंप्यूटर को समझने के लिए उचित रूप से स्वरूपित बाइनरी के रूप में इकट्ठा करेगा।
1. 00010101
2. 00100111
3. 00110011
4. 01011100
निष्पादित करना: सीपीयू तब दिए गए ऑपरेंड के लिए ओपकोड द्वारा इंगित निर्देशों को लागू करके बायनेरिज़ को निष्पादित करता है।
कंप्यूटर करेगा निष्पादित करना यह इस प्रकार है:
- 5. के साथ पहला रजिस्टर लोड करें
- दूसरे रजिस्टर को 7. से लोड करें
- 5 + 7 = 12, 12 को तीसरे रजिस्टर में सेव करें
- तीसरे रजिस्टर के मूल्य को RAM एड्रेस M12. में स्टोर करें
कंप्यूटर ने सफलतापूर्वक दो नंबरों को एक साथ जोड़ दिया है और मान को निर्दिष्ट रैम पते पर संग्रहीत किया है।
महान! अब आप जानते हैं कि कंप्यूटर कोड कैसे निष्पादित करता है। हालाँकि, यह वहाँ नहीं रुकता है।
आगे बढ़ना
उचित हार्डवेयर, एक असेंबलर और एक असेंबली भाषा के साथ, लोग उचित आसानी से कोड निष्पादित कर सकते हैं। हालाँकि, जैसे-जैसे प्रोग्राम और कंप्यूटर हार्डवेयर और भी अधिक जटिल होते गए, इंजीनियरों और प्रोग्रामरों को प्रोग्रामिंग को कम थकाऊ बनाने और विभिन्न प्रकार के सीपीयू के साथ संगतता सुनिश्चित करने के तरीके के बारे में सोचें वास्तुकला। इस प्रकार संकलक और दुभाषियों का निर्माण।
एक कंपाइलर और एक दुभाषिया क्या है?
कम्पाइलर और दुभाषिया ट्रांसलेशनल प्रोग्राम हैं जो सोर्स कोड लेते हैं हाई-लेवल प्रोग्रामिंग लैंग्वेज) और उन्हें असेंबली लैंग्वेज में ट्रांसलेट करें, जिसे असेंबलर फिर डिकोड करेगा बाइनरी के लिए।
एक दुभाषिया कोड की एक लाइन लेगा और इसे तुरंत निष्पादित करेगा। यह आमतौर पर लिनक्स बैश शेल टर्मिनल और विंडोज पॉवरशेल टर्मिनल जैसे टर्मिनलों पर उपयोग किया जाता है। सरल एकबारगी कार्य करने के लिए बढ़िया।
इसके विपरीत, ए संकलक कोड की कई पंक्तियाँ लेगा और उन्हें एक प्रोग्राम बनाने के लिए संकलित करेगा। इन कार्यक्रमों के उदाहरण माइक्रोसॉफ्ट वर्ड, फोटोशॉप, गूगल क्रोम, सफारी और स्टीम होंगे।
कंपाइलर और दुभाषियों के निर्माण के साथ, उच्च स्तरीय प्रोग्रामिंग भाषाएं बनाई गईं।
उच्च स्तरीय प्रोग्रामिंग भाषाएं
असेंबली कोड के बाद हाई-लेवल प्रोग्रामिंग लैंग्वेज कोई भी भाषा है। इनमें से कुछ भाषाएं जिनसे आप परिचित हो सकते हैं, सी, पायथन, जावा और स्विफ्ट हैं। इन प्रोग्रामिंग भाषाओं ने प्रोग्रामिंग को असेंबली भाषा की तुलना में अधिक मानव-पठनीय और सरल बना दिया।
पाइथन जैसी उच्च-स्तरीय प्रोग्रामिंग भाषा की तुलना में असेंबली में प्रोग्राम करना कितना कठिन है, यह स्पष्ट करने के लिए यहां एक साथ तुलना की गई है:
दोनों कोड "हैलो वर्ल्ड" प्रिंट करेंगे।
इन प्रोग्रामिंग भाषाओं के साथ, डेवलपर्स उचित समय के साथ गेम, वेबसाइट, एप्लिकेशन और ड्राइवरों को प्रोग्राम कर सकते हैं।
सम्बंधित: पायथन बनाम। जावा: 2022 के लिए सर्वश्रेष्ठ भाषा
कंप्यूटर कोड के सभी तरीके को निष्पादित कर सकते हैं
कंप्यूटर एक ऐसा उपकरण है जो केवल बाइनरी पढ़ सकता है। ये बायनेरिज़ एक सीपीयू के अंदर पैक किए गए एक अरब से अधिक सूक्ष्म आकार के ट्रांजिस्टर द्वारा निर्मित होते हैं। ट्रांजिस्टर व्यवस्था एक सीपीयू के आईएसए (इंस्ट्रक्शन सेट आर्किटेक्चर) को निर्देशित करती है, जो सैकड़ों निर्देश प्रदान करती है कि एक सीपीयू कोड के माध्यम से अपने ऑपोड को कॉल करने के बाद आसानी से प्रदर्शन कर सकता है। डेवलपर्स इन निर्देशों को क्रमिक रूप से मिलाते और मिलाते हैं, जो एक संपूर्ण प्रोग्राम जैसे गेम इंजन, वेब ब्राउज़र, एप्लिकेशन और ड्राइवर बनाता है।
एक सीपीयू एक अनुक्रम के माध्यम से कोड निष्पादित करता है जिसे फ़ेच, डीकोड, निष्पादन चक्र के रूप में जाना जाता है। एक बार कोड का एक टुकड़ा रैम में लोड हो जाने पर, सीपीयू एक-एक करके अपनी सामग्री लाएगा, सामग्री को असेंबलर के माध्यम से बाइनरी में डीकोड करेगा, और फिर कोड निष्पादित करेगा।
चूंकि असेंबलर केवल सीपीयू आर्किटेक्चर, कंपाइलर्स और के लिए स्पष्ट रूप से बनाए गए कोड का अनुवाद कर सकता है विभिन्न प्रकार के सीपीयू पर काम करने के लिए दुभाषियों को असेंबलर (एक एडेप्टर की तरह) के ऊपर बनाया गया था वास्तुकला। एक दुभाषिया एक कमांड लेगा और उसे तुरंत निष्पादित करेगा। इसके विपरीत, एक कंपाइलर आपके सभी आदेशों को लेगा और उन्हें पुन: प्रयोज्य प्रोग्राम में संकलित करेगा।
प्रोग्रामिंग को आसान, तेज और सुविधाजनक बनाने के लिए पायथन, सी और जावा जैसी उच्च-स्तरीय प्रोग्रामिंग भाषाएं बनाई गई हैं। अधिकांश प्रोग्रामर को अब असेंबली भाषा में कोड करने की आवश्यकता नहीं है, क्योंकि उनकी उपयोग में आसान उच्च-स्तरीय प्रोग्रामिंग भाषाओं को एक कंपाइलर के माध्यम से असेंबली में अनुवादित किया जा सकता है।
उम्मीद है, अब आपको कंप्यूटर के मूल सिद्धांतों की बेहतर समझ हो गई होगी और वे कोड को कैसे निष्पादित करते हैं।
यह एक आसान सा सवाल है, लेकिन हर कोई समय-समय पर इस पर विचार करता है: आपके सामने वह कंप्यूटर वास्तव में कैसे काम करता है?
आगे पढ़िए
- प्रौद्योगिकी की व्याख्या
- प्रोग्रामिंग
- कंप्यूटर प्रोसेसर
- प्रसंस्करण
चीजें कैसे काम करती हैं, यह जानने के लिए तरसते हुए, जेरिक मैनिंग ने अपनी शुरुआती किशोरावस्था के दौरान सभी प्रकार के इलेक्ट्रॉनिक और एनालॉग उपकरणों के साथ छेड़छाड़ करना शुरू कर दिया। उन्होंने बागुइओ विश्वविद्यालय में फोरेंसिक विज्ञान लिया, जहां उन्होंने कंप्यूटर फोरेंसिक और साइबर सुरक्षा से परिचित कराया। वह वर्तमान में बहुत से स्व-अध्ययन कर रहा है और तकनीक के साथ छेड़छाड़ कर रहा है कि वे कैसे काम करते हैं और जीवन को आसान बनाने के लिए हम उनका उपयोग कैसे कर सकते हैं (या कम से कम कूलर!)
हमारे न्यूज़लेटर की सदस्यता लें
तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!
सब्सक्राइब करने के लिए यहां क्लिक करें