2010-06-15 4 views
55

मेरा प्रश्न है:सॉफ्टवेयर/कोड वास्तव में हार्डवेयर के साथ कैसे संवाद करता है?

जब मैं विंडोज़/लिनक्स में "शट डाउन" बटन दबाते हैं, कंप्यूटर बंद हो जाता है। आदेश "शट डाउन" वास्तव में कंप्यूटर को भौतिक रूप से बंद कर देता है?

मेरी बात स्पष्ट करने के लिए:

जब हम एक गेंद को किक, वहाँ गेंद और हमारे पैर के बीच शारीरिक संपर्क, गेंद move.So के लिए कैसे भौतिक कनेक्शन सॉफ्टवेयर और हार्डवेयर के बीच हासिल की है के लिए है ? कोड के सादा पाठ कंप्यूटर को ऐसा करने के लिए कैसे करता है?

+4

उत्सुकता से पर्याप्त, भौतिक हार्डवेयर इंटरफेस और आपके उदाहरण में गेंदों की बातचीत दोनों विद्युत चुम्बकीय बलों पर आधारित हैं। –

+0

अच्छा सवाल .. –

+0

जैसा कि पावेल ने उल्लेख किया है, मान लें कि सभी पदार्थों में ज्यादातर खाली जगह शामिल है! – Alan

उत्तर

38

बहुत ही बुनियादी स्तर पर, सादा पाठ कोड अंततः 0 और 1 के अनुवाद करता है। ये 0 और 1 का निम्न और उच्च वोल्टेज स्तर का प्रतिनिधित्व करता है। इस बिंदु पर, वोल्टेज स्तर विभिन्न सर्किटों को नियंत्रित करता है।

बैटरी संचालित प्रशंसक के बारे में सोचें। बैटरी द्वारा प्रदान की जाने वाली वर्तमान बिजली एक इलेक्ट्रिक मोटर है, जो अंदर, एक इमेग-फील्ड बनाने के लिए बिजली का उपयोग करती है जो शाफ्ट को घूमने का कारण बनती है, जो फैन-ब्लेड को स्पिन करने के लिए प्रेरित करती है। यह एक उदाहरण है कि कैसे वोल्टेज भौतिक हो सकता है।

आप एक "स्विच" बना सकते हैं जो उचित वोल्टेज दिया गया है, अंत में दीवार से वर्तमान खींचने के लिए बिजली की आपूर्ति मिल जाएगी।

स्पष्ट रूप से यह उससे कहीं अधिक जटिल है, लेकिन यह इसका सारांश है।

चीजों को आसान बनाने के लिए, कंप्यूटर के अमूर्त परतों के साथ शामिल हैं।

बहुत कम स्तर पर वोल्टेज, सर्किट, ट्रांजिस्टर और सिलिकॉन है। हार्डवेयर के ऊपर अगली परत ऑपरेटिंग सिस्टम है। हर प्रकार के हार्डवेयर एक्सेस के लिए बार-बार कोड लिखने के बजाय, ओएस हार्डवेयर का प्रबंधन करता है, और इसका उपयोग करने के लिए "हुक" प्रदान करता है। ये हुक, या "इंटरफेस" आपके कोड को अलग हार्डवेयर तक पहुंचने के लिए एक सामान्य विधि रखने की अनुमति देते हैं। तो ओएस द्वारा प्रदान किए गए इंटरफेस का उपयोग करके, आप अपना आवेदन लिख सकते हैं।

इन परतों में से प्रत्येक में, उप परतें हैं, उदाहरण के लिए हार्डवेयर में फर्मवेयर हो सकता है - एक प्रकार का निम्न-स्तरीय निर्देश सेट जो यह निर्धारित करता है कि हार्डवेयर को कैसे चलाना चाहिए, ईईपीरोम में संग्रहीत किया जाना चाहिए, और ड्राइव संचालित होने पर लोड हो अप। एक अन्य sublayer यह है कि कैसे एक उच्च स्तर की भाषा पाइथन नेटवर्क पुस्तकालय लिखने के लिए पुस्तकालय प्रदान करता है बिना ओएस द्वारा प्रदान किए गए कच्चे सॉकेट एपीआई के कार्यक्रम के बिना।

ओएस अधिकांश हार्डवेयर/सॉफ्टवेयर इंटरैक्शन को संभालता है। हार्डवेयर विक्रेता "प्लगइन्स/मॉड्यूल/ड्राइवर" लिखते हैं जो ओएस को अपने विशिष्ट हार्डवेयर को नियंत्रित करने की अनुमति देता है।

तो आप एक सॉफ्टवेयर एप्लीकेशन लिखेंगे जो इन ओएस का लाभ उठाता है हार्डवेयर को इंटरफेस प्रदान करता है। उदाहरण के लिए यदि आप कंप्यूटर को पावर करना चाहते हैं, तो विंडोज कंप्यूटर को बंद करने के लिए एक इंटरफ़ेस प्रदान करता है। आपका सॉफ़्टवेयर इस इंटरफ़ेस को कॉल करेगा, और संकलन/व्याख्या पर, कोड में बदल जाएगा जो ओएस के लिए इंटरफेस को कॉल करेगा। यह इंटरफ़ेस बदले में कंप्यूटर को बंद करने के निर्देश देने के निर्देशों का एक प्रसिद्ध सेट निष्पादित करेगा। ये निर्देश 0 और 1, निम्न और उच्च वोल्ट हैं, जो कंप्यूटर के एक विशिष्ट भाग तक पहुंचते हैं जो पावरअप/शट डाउन/स्टैंडबाय को संभालने के लिए डिज़ाइन किया गया है, और सही सिग्नल दिया गया है, बस यही करेगा।

1

पीसी कार्यक्रमों और वास्तविक दुनिया के बाहर कई इंटरफेस हैं।

कुछ सीपीयू से कनेक्ट होते हैं। इनमें से उदाहरण पोर्ट्स और हार्डवेयर इंटरप्ट्स (आईआरक्यू) हैं। ये हार्डवेयर ट्रिगर्स (कम से कम लाइन से अलग लाइन) के आधार पर डेटा की थोड़ी मात्रा (होस्ट प्रोग्राम अनुरोध द्वारा) और कॉलिंग फ़ंक्शंस (इंटरप्ट हैंडलर) को भेजने की अनुमति देते हैं।

सीपीयू को बाईपास करने वाले डेटा की भारी मात्रा में स्थानांतरित करने के लिए तेज़ इंटरफेस हैं। इसे डीएमए (सीधी मेमोरी एक्सेस) कहा जाता है। इन्हें डिस्क, नेटवर्क, डिस्प्ले एडाप्टर इत्यादि में डेटा स्थानांतरित करने के लिए उपयोग किया जाता है।

पोर्ट आईओ (ओपोड्स इन और आउट) के लिए सॉफ़्टवेयर प्रारंभकर्ता है। आईआरक्यू के लिए, हार्डवेयर सॉफ़्टवेयर प्रतिक्रिया ट्रिगर करने के लिए पहले बोलता है।

केवल डिवाइस ड्राइवरों को ये सब करने की अनुमति है। यदि आप इसे एप्लिकेशन से करने का प्रयास करते हैं, तो ओएस तुरंत इसे तोड़ देगा। डिवाइस ड्राइवरों द्वारा प्रस्तुत एपीआई के माध्यम से एप्लिकेशन इस दुनिया से जुड़ते हैं। कई एपीआई मानकीकृत हैं, इसलिए आप अलग-अलग इंटरैक्ट (बिना प्रिंटर, डिस्क, कीबोर्ड, माउस, सीआररॉम, एटीएक्स पावर सप्लाई स्विच अपने उदाहरण में) के बिना वास्तविक डिवाइस को प्रतिस्थापित कर सकते हैं।

5

ठीक है, शट डाउन वास्तव में भौतिक नहीं है, कंप्यूटर में सभी सर्किट पूरी तरह से बंद नहीं होते हैं जब तक कि आप शारीरिक रूप से बिजली को अनप्लग नहीं करते।

सॉफ्टवेयर कंप्यूटर में पावर सर्किट को नियंत्रित करने के लिए BIOS में APM (Advanced Power Management) इंटरफ़ेस का उपयोग करता है।

जब कंप्यूटर बंद हो जाता है, तो यह अभी भी स्विच को भौतिक रूप से खींचने के बिना चालू किया जा सकता है, उदाहरण के लिए कंप्यूटर में नेटवर्क कार्ड से Wake on LAN सिग्नल द्वारा।

+1

पावर सवाल सिर्फ एक उदाहरण था। मुझे लगता है कि ओपी जानना चाहता था कि "टेक्स्ट" जैसे सार जैसे कुछ भौतिक जैसे बिजली को नियंत्रित करने या सीडी ट्रे को निकालने के लिए इस्तेमाल किया जा सकता है ... – Alan

+2

हाँ, वही है जो मैं जानना चाहता हूं। क्या एलन का उल्लेख किया गया है – AbyJames

1

चलिए भौतिक और सॉफ्टवेयर समाधान की तुलना करें।

जब आप बटन दबाते हैं, तो आप वास्तव में बिजली आपूर्ति इकाई को 5 वोल्ट सिग्नल भेज रहे हैं। यह 5 वोल्ट बिजली वास्तव में कभी भी बंद नहीं होती है (भले ही आपको लगता है कि आपका कंप्यूटर बंद है)। जब आप कंप्यूटर को चालू करने के लिए बटन दबाते हैं तो आपको इस 5 वोल्ट की आवश्यकता होती है - जिस बिंदु पर बिजली आपूर्ति इकाई में एक और 5 वोल्ट भेज दिया जाता है ताकि उसे वापस स्विच करने के लिए कहा जा सके।

तो वास्तव में, आपके भौतिक बटन प्रेस को कुछ करने के लिए बिजली की आपूर्ति के लिए इलेक्ट्रॉनिक सिग्नल में परिवर्तित किया जाता है।

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

इसलिए सभी सॉफ़्टवेयर को इलेक्ट्रॉनिक सिग्नल निर्देश देना है, जो 5 वोल्ट स्टैंडबाय मोड में प्रवेश करने के लिए बिजली की आपूर्ति को ट्रिगर करता है।

0

दरअसल, कोड का आपका सादा पाठ कंप्यूटर को सीधे बंद नहीं करता है। यह अंतर्निहित ऑपरेटिंग सिस्टम की प्रक्रिया को कॉल करता है। ऑपरेटिंग सिस्टम बदले में आपके मुख्य बोर्ड पर एसीपीआई/एपीएम का आह्वान करता है। यह तब कंप्यूटर बंद कर देगा।

कैसे छोटे से 1 है और 0 है अपने हार्डवेयर के सर्किट के साथ बातचीत काफी जटिल विषय है जो आप के बारे में पूरी तरह से यह समझने में कम से कम एक किताब पढ़ सकता है ...

3

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

सीपीयू निर्देशों - सॉफ्टवेयर प्रोग्राम चलाकर काम करता है। ऐसे निर्देश कोड हैं जो सीपीयू को सिस्टम के कुछ हिस्सों को डायल करने का निर्देश देते हैं। प्रत्येक भाग में एक संख्या होती है, और सीपीयू के पास एक संख्या डायल करने के लिए एक निर्देश है। एक बार जब सीपीयू उस नंबर को डायल करता है, तो वह उस हिस्से को एक संदेश भेजता है - संदेश बस डेटा है - एक बिट से किसी भी मनमाने ढंग से आकार ब्लॉक तक। उस स्थान पर हार्डवेयर एन्कोड किए गए संदेश पर कार्य करता है।

ऐसा करने में, सीपीयू उसी तंत्र का उपयोग कर हार्डवेयर के किसी भी हिस्से को नियंत्रित कर सकता है। प्रत्येक डिवाइस के लिए जो एकमात्र चीज बदलती है वह सीपीयू को डायल करने की संख्या होती है और सीपीयू डेटा को डेटा भेजता है - सीपीयू चल रहे सॉफ़्टवेयर में दिए गए विवरण।

तो, मशीन को बंद करने के लिए, सीपीयू पावर प्रबंधन डिवाइस के लिए संख्या डायल करता है, और उचित पावर स्थिति में जाने के लिए निर्देश भेजता है। हार्डवेयर जवाब देता है, और पीएसयू मदरबोर्ड को प्राथमिक शक्ति भेजना बंद कर देता है।

जब आप सॉफ्ट लिखते हैं, तो आपको इन सभी विवरणों को स्वयं नहीं जानना पड़ता है। वे आमतौर पर कोड का उपयोग करने के लिए तैयार होने के रूप में प्री-पैक किए जाते हैं, इसलिए आपके सॉफ़्टवेयर को केवल "शटडाउन" कहना है और इसके लिए तैयार किए गए कोड (आमतौर पर BIOS में) को उल्लिखित अनुसार शट डाउन करने के लिए निष्पादित किया जाता है।

0

यदि आप किसी भी डिवाइस को अपनी कार्रवाई करने के लिए सामान्य रूप से कैसे देखते हैं, तो डिवाइस नियंत्रण बोर्ड के रोम/चिप में संग्रहीत फर्मवेयर के साथ आता है। नियंत्रण बोर्ड का उपयोग इलेक्ट्रिक सिग्नल के माध्यम से डिवाइस को नियंत्रित करने के लिए किया जाता है।

फर्मवेयर के ऊपर, आपके पास ड्राइवर/सेवा प्रदाता होगा। एप्लिकेशन कुछ सेवा करने के लिए डिवाइस को संवाद या निर्देशित करने के लिए इन सेवा प्रदाताओं/ड्राइवरों का उपयोग करेगा।

Click here कैसे-फर्मवेयर-संचार-टू-द-इलेक्ट्रॉनिक-डिवाइस-टू-प्रदर्शन-इसके-संचालन पर अधिक जानने के लिए?

0

मैंने कुछ समय के लिए चुपचाप के लिए एक ही सवाल पर विचार किया है और वास्तव में यह महसूस किया है कि वास्तव में सॉफ्टवेयर (कल्पना) दुनिया से हार्डवेयर (वास्तविक) दुनिया में एक कनेक्शन है।

सर्किट और स्विच के रूप में सरल कुछ सोचें, फिर किसी योजक या एएलयू की तरह कुछ और सार के बारे में सोचें। समय के साथ ही खुद का निर्माण और अगले रोम में जटिल हो जाता है। फिर माइक्रोकोड, ओपोड्स, मशीन भाषा तब अंततः असेंबली और सी आता है। इसके बाद बीआईओएस, ओएस, ड्राइवर और जीयूआई आए और देखो और आपका प्रिय "शट डाउन" बटन आया।

3

सॉफ़्टवेयर हार्डवेयर में हार्ड ड्राइव या फ्लॉपी डिस्क पर चुंबकीय डोमेन के रूप में या कंप्यूटर चिप्स में कम और उच्च वोल्टेज के रूप में संग्रहीत किया जाता है। जब आप कीबोर्ड पर टाइप करते हैं, तो प्रत्येक वर्ण को 0 और 1 की विद्युत श्रृंखला में परिवर्तित किया जाता है जिसे तब रैम नामक कंप्यूटर चिप्स में कम और उच्च वोल्टेज के रूप में संग्रहीत किया जाता है। रैम में निम्न और उच्च वोल्टेज को हार्ड ड्राइव या फ्लॉपी डिस्क पर चुंबकीय डोमेन में परिवर्तित कर दिया जाता है, बाद में डिस्क हेड द्वारा वोल्टेज में वापस पढ़ने के लिए, या बाद में पढ़ने के लिए गैर-अस्थिर कंप्यूटर चिप्स में कम और उच्च वोल्टेज के रूप में संग्रहीत किया जाता है । निम्न और उच्च वोल्टेज विद्युत 0 और 1 का प्रतिनिधित्व करते हैं जो कीबोर्ड वर्णों द्वारा उत्पन्न किए गए थे।

0

इसका सरल: हमारे द्वारा लिखे गए कोड/सॉफ़्टवेयर वास्तविक CPU पर 0 (OFF's) और 1 (ON's) द्वारा दर्शाए गए इलेक्ट्रिक सिग्नल हैं। उस बिंदु से धाराओं और मोटर्स के बारे में सोचें।

4

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