BIOS इंटरप्ट कॉल: Difference between revisions
No edit summary |
No edit summary |
||
| Line 11: | Line 11: | ||
BIOS इंटरप्ट कॉल प्रोग्राम द्वारा अनुरोधित हार्डवेयर नियंत्रण या I/O फ़ंक्शन करता है। प्रोग्राम को सिस्टम की जानकारी लौटाता है, या दोनों करता है। BIOS कॉल के उद्देश्य का प्रमुख तत्व अमूर्त है - BIOS कॉल सामान्यतः परिभाषित कार्य करता है, और सिस्टम के विशेष हार्डवेयर पर उन कार्यों को कैसे निष्पादित किया जाता है। इसका विशिष्ट विवरण BIOS में एनकैप्सुलेट किया जाता है और प्रोग्राम से अप्रत्यक्ष होता है। जिससे की उदाहरण के लिए, प्रोग्राम जो हार्ड डिस्क से पढ़ना चाहता है। उसे यह जानने की आवश्यकता नहीं है कि हार्ड डिस्क समानांतर ATA, [[SCSI]], या [[SATA]] ड्राइव है। (या पूर्व के दिनों में, बढ़ी हुई छोटी डिस्क इंटरफ़ेस ड्राइव, या [[संशोधित आवृत्ति मॉड्यूलेशन]] या [[रन लेंथ लिमिटेड]] ड्राइव संभवतः सीगेट [[ST-506]] नियंत्रक के साथ, संभवतः कई पश्चिमी डिजिटल सन्न 1980 के नियंत्रक प्रकारों में से एक, या किसी अन्य ब्रांड के भिन्न अधिकार-संबंधी नियंत्रक के साथ)। प्रोग्राम को केवल उस ड्राइव की BIOS-परिभाषित संख्या की पहचान करने की आवश्यकता है। जिसे वह एक्सेस करना चाहता है और उस क्षेत्र के पते को पढ़ने या लिखने की आवश्यकता है और BIOS इस सामान्य अनुरोध को प्राथमिक संचालन के विशिष्ट अनुक्रम में अनुवाद करने का ध्यान रखता है। उस ड्राइव से जुड़े विशेष डिस्क नियंत्रक हार्डवेयर के माध्यम से कार्य को पूर्ण करने के लिए प्रोग्राम को प्रत्येक प्रकार की हार्ड डिस्क (या डिस्प्ले एडॉप्टर, या पोर्ट इंटरफ़ेस, या वास्तविक समय घड़ी परिधीय) को निम्न स्तर पर नियंत्रित करने के बारे में जानने की आवश्यकता से मुक्त किया गया है। जिसे एक्सेस करने की आवश्यकता हो सकती है। यह प्रोग्रामिंग ऑपरेटिंग सिस्टम और एप्लिकेशन दोनों को सरल बनाता है और प्रोग्राम को छोटा बनाता है। प्रोग्राम कोड के दोहराव को कम करता है, जिस कारण BIOS में सम्मिलित कार्यक्षमता को प्रत्येक प्रोग्राम में सम्मिलित करने की आवश्यकता नहीं होती है। जिसकी उसे आवश्यकता होती है, उसे इसके अतिरिक्त BIOS में अपेक्षाकृत कम कॉल को प्रोग्राम में सम्मिलित किया जाता है। (ऑपरेटिंग सिस्टम में जहां BIOS का उपयोग नहीं किया जाता है। वहा ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सर्विस कॉल सामान्यतः समान कार्य और उद्देश्य को पूर्ण करती हैं।) | BIOS इंटरप्ट कॉल प्रोग्राम द्वारा अनुरोधित हार्डवेयर नियंत्रण या I/O फ़ंक्शन करता है। प्रोग्राम को सिस्टम की जानकारी लौटाता है, या दोनों करता है। BIOS कॉल के उद्देश्य का प्रमुख तत्व अमूर्त है - BIOS कॉल सामान्यतः परिभाषित कार्य करता है, और सिस्टम के विशेष हार्डवेयर पर उन कार्यों को कैसे निष्पादित किया जाता है। इसका विशिष्ट विवरण BIOS में एनकैप्सुलेट किया जाता है और प्रोग्राम से अप्रत्यक्ष होता है। जिससे की उदाहरण के लिए, प्रोग्राम जो हार्ड डिस्क से पढ़ना चाहता है। उसे यह जानने की आवश्यकता नहीं है कि हार्ड डिस्क समानांतर ATA, [[SCSI]], या [[SATA]] ड्राइव है। (या पूर्व के दिनों में, बढ़ी हुई छोटी डिस्क इंटरफ़ेस ड्राइव, या [[संशोधित आवृत्ति मॉड्यूलेशन]] या [[रन लेंथ लिमिटेड]] ड्राइव संभवतः सीगेट [[ST-506]] नियंत्रक के साथ, संभवतः कई पश्चिमी डिजिटल सन्न 1980 के नियंत्रक प्रकारों में से एक, या किसी अन्य ब्रांड के भिन्न अधिकार-संबंधी नियंत्रक के साथ)। प्रोग्राम को केवल उस ड्राइव की BIOS-परिभाषित संख्या की पहचान करने की आवश्यकता है। जिसे वह एक्सेस करना चाहता है और उस क्षेत्र के पते को पढ़ने या लिखने की आवश्यकता है और BIOS इस सामान्य अनुरोध को प्राथमिक संचालन के विशिष्ट अनुक्रम में अनुवाद करने का ध्यान रखता है। उस ड्राइव से जुड़े विशेष डिस्क नियंत्रक हार्डवेयर के माध्यम से कार्य को पूर्ण करने के लिए प्रोग्राम को प्रत्येक प्रकार की हार्ड डिस्क (या डिस्प्ले एडॉप्टर, या पोर्ट इंटरफ़ेस, या वास्तविक समय घड़ी परिधीय) को निम्न स्तर पर नियंत्रित करने के बारे में जानने की आवश्यकता से मुक्त किया गया है। जिसे एक्सेस करने की आवश्यकता हो सकती है। यह प्रोग्रामिंग ऑपरेटिंग सिस्टम और एप्लिकेशन दोनों को सरल बनाता है और प्रोग्राम को छोटा बनाता है। प्रोग्राम कोड के दोहराव को कम करता है, जिस कारण BIOS में सम्मिलित कार्यक्षमता को प्रत्येक प्रोग्राम में सम्मिलित करने की आवश्यकता नहीं होती है। जिसकी उसे आवश्यकता होती है, उसे इसके अतिरिक्त BIOS में अपेक्षाकृत कम कॉल को प्रोग्राम में सम्मिलित किया जाता है। (ऑपरेटिंग सिस्टम में जहां BIOS का उपयोग नहीं किया जाता है। वहा ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सर्विस कॉल सामान्यतः समान कार्य और उद्देश्य को पूर्ण करती हैं।) | ||
उपस्तिथा सॉफ़्टवेयर के साथ अनुकूलता बनाए रखने के लिए | सामान्यतः उपस्तिथा सॉफ़्टवेयर के साथ अनुकूलता बनाए रखने के लिए नए सिस्टम को डिज़ाइन करते समय पुराने सिस्टम के साथ त्रुटिहीन हार्डवेयर संगतता बनाए रखने के लिए BIOS कंप्यूटर हार्डवेयर डिजाइनरों (इस तक कि प्रोग्राम विशेष रूप से BIOS का उपयोग करने के लिए लिखे गए हैं) को मुक्त करता है। उदाहरण के लिए, [[IBM PCjr|आईबीएम पीसीजेआर]] पर कीबोर्ड हार्डवेयर पहले के आईबीएम पीसी मॉडल के कीबोर्ड हार्डवेयर की तुलना में बहुत भिन्न विधि से कार्य करता है। किन्तु उन प्रोग्रामों के लिए जो केवल BIOS के माध्यम से कीबोर्ड का उपयोग करते हैं, यह अंतर लगभग अदृश्य है। (इस विवाद के दूसरे पक्ष के अच्छे उदाहरण के रूप में, पीसीजेआर प्रस्तुत किए जाने के समय उपयोग में आने वाले पीसी प्रोग्रामों का महत्वपूर्ण भाग विशेष रूप से BIOS के माध्यम से कीबोर्ड का उपयोग नहीं करता था, जिससे की आईबीएम ने पीसीजेआर में हार्डवेयर सुविधाओं को भी सम्मिलित किया जिससे कि इसका अनुकरण किया जा सकता है। जिस प्रकार आईबीएम पर्सनल कंप्यूटर और आईबीएम पर्सनल कंप्यूटर एक्सटी कीबोर्ड हार्डवेयर कार्य करता है। हार्डवेयर अनुकरण त्रुटिहीन नहीं है, जिससे की सभी प्रोग्राम जो सीधे कीबोर्ड हार्डवेयर का उपयोग करने का प्रयास करते हैं, पीसीजेआर पर सही प्रकार से कार्य करते है, किन्तु सभी प्रोग्राम जो केवल BIOS कीबोर्ड सेवाओं का उपयोग करते हैं।) | ||
हार्डवेयर सुविधाओं तक पहुंच प्रदान करने के अतिरिक्त, BIOS अतिरिक्त सुविधाएं प्रदान करता | हार्डवेयर सुविधाओं तक पहुंच प्रदान करने के अतिरिक्त, BIOS अतिरिक्त सुविधाएं प्रदान करता है। जो कि BIOS सॉफ़्टवेयर में कार्यान्वित की जाती हैं। उदाहरण के लिए, BIOS आठ टेक्स्ट डिस्प्ले पेजों के लिए भिन्न-भिन्न कर्सर की स्थिति रखता है और स्वचालित लाइन रैप के साथ [[कंप्यूटर टर्मिनल]] जैसा आउटपुट प्रदान करता है और कैरिज रिटर्न और रेखा भरण जैसे बुनियादी नियंत्रण वर्णों की व्याख्या करता है। जबकि सीजीए-संगत टेक्स्ट डिस्प्ले हार्डवेयर केवल वैश्विक प्रदर्शन कर्सर है और स्वचालित रूप से कर्सर को आगे नहीं बढ़ा सकता है। अतः प्रदर्शन मेमोरी को संबोधित करने के लिए कर्सर की स्थिति का उपयोग करते है (जिससे कि यह निर्धारित किया जा सकता है कि कौन सा वर्ण सेल परिवर्तित या जांचा जा सकता है।), जो नियंत्रण वर्णों की व्याख्या करता है। अन्य उदाहरण के लिए, BIOS कीबोर्ड इंटरफ़ेस विभिन्न शिफ्ट स्टेट्स (बाएं और दाएं Shift, Ctrl, और Alt) का ट्रैक रखने के लिए कई कीस्ट्रोक्स और कुंजी संयोजनों की व्याख्या करता है। Shift+PrtScrn के पूर्व होने पर प्रिंट-स्क्रीन सेवा को कॉल करने के लिए, सिस्टम को रिबूट करने के लिए जब Ctrl+Alt+Del दबाया जाता है। लॉक स्टेट्स (कैप्स लॉक, न्यूम लॉक और स्क्रॉल लॉक) का ट्रैक रखने के लिए और एटी-क्लास मशीनों में, संबंधित लॉक-स्टेट इंडिकेटर लाइट्स को नियंत्रित करते है। कीबोर्ड, और कीबोर्ड के लिए अन्य समान व्याख्यात्मक और प्रबंधन कार्य करने के लिए। इसके विपरीत, मानक पीसी और पीसी-एटी कीबोर्ड हार्डवेयर की सामान्य क्षमताएं सिस्टम को रिपोर्ट करने तक सीमित होती हैं। जिसमें व्यक्तिगत कुंजी को दबाने या जारी करने की प्रत्येक आदिम घटना होती है। (अर्थात जारी स्थिति से उदास स्थिति या इसके विपरीत संक्रमण करना) ), कीबोर्ड इकाई का कमांड्ड रीसेट और आत्म परीक्षण करना, और एटी-क्लास कीबोर्ड के लिए, लॉक-स्टेट इंडिकेटर्स (एलईडी) की पूर्ण स्थिति सेट करने के लिए होस्ट सिस्टम से कमांड निष्पादित करना होता है। | ||
== कॉलिंग BIOS: BIOS सॉफ़्टवेयर बाधित होता है == | == कॉलिंग BIOS: BIOS सॉफ़्टवेयर बाधित होता है == | ||
ऑपरेटिंग सिस्टम और अन्य सॉफ़्टवेयर, स्थापित हार्डवेयर को नियंत्रित करने के लिए | ऑपरेटिंग सिस्टम और अन्य सॉफ़्टवेयर, स्थापित हार्डवेयर को नियंत्रित करने के लिए सॉफ़्टवेयर इंटरप्ट के माध्यम से, BIOS सॉफ़्टवेयर के साथ संचार करते हैं। सॉफ्टवेयर इंटरप्ट की सामान्य अवधारणा की विशिष्ट विविधता है। इंटरप्ट ऐसी क्रियाविधि है जिसके द्वारा सीपीयू हो सकता है। | ||
मुख्य-लाइन प्रोग्राम को निष्पादित करना बंद करने और इसके अतिरिक्त इंटरप्ट सर्विस रूटीन (आईएसआर) नामक विशेष प्रोग्राम को तुरंत निष्पादित करने का निर्देश दिया गया था। चूँकि आईएसआर समाप्त होने के पश्चात्, सीपीयू मुख्य प्रोग्राम के साथ जारी रहता है। अतः X86 सीपीयू पर जब कोई व्यवधान उत्पन्न होता है, तब कॉल करने के लिए आईएसआर को स्मृति में आईएसआर प्रारंभ-बिंदु पतों (इंटरप्ट सदिश कहा जाता है) की तालिका में देखकर पाया जाता है कि [[ व्यवधान सदिश तालिका |व्यवधान सदिश तालिका]] (आईवीटी) में इसके टाइप नंबर द्वारा 0 से 255 तक इंटरप्ट का आह्वान किया जाता है और टाइप नंबर को इंटरप्ट सदिश तालिका में इंडेक्स के रूप में उपयोग किया जाता है और उस इंडेक्स में तालिका में आईएसआर का पता पाया जाता है। जो प्रतिक्रिया में चलाया जाता है। अतः रुकावट सॉफ्टवेयर इंटरप्ट केवल इंटरप्ट है। जो सॉफ्टवेयर कमांड द्वारा ट्रिगर किया जाता है। जिससे की, सॉफ्टवेयर सबरूटीन्स जैसे कार्य को बाधित करता है, मुख्य अंतर यह है कि सॉफ्टवेयर इंटरप्ट कॉल करने वाले प्रोग्राम को आईएसआर का पता जानने की जरूरत नहीं है, केवल इसकी इंटरप्ट संख्या सिस्टम व्यवस्था के प्रारूप में प्रतिरूपकता, अनुकूलता और लचीलेपन के लिए इसके लाभ हैं। | |||
BIOS इंटरप्ट कॉल को ऑपरेटिंग सिस्टम जैसे BIOS और BIOS क्लाइंट सॉफ़्टवेयर के बीच संदेश भेजने के लिए तंत्र के रूप में माना जा सकता है। संदेश BIOS से डेटा या कार्रवाई का अनुरोध करते हैं और अनुरोधित डेटा, स्थिति की जानकारी, और/या अनुरोधित कार्रवाई के उत्पाद को कॉलर को लौटाते हैं। संदेशों को श्रेणियों में बांटा गया है, जिनमें से प्रत्येक की अपनी रुकावट संख्या है, और अधिकांश श्रेणियों में उप-श्रेणियां होती हैं, जिन्हें फ़ंक्शन कहा जाता है और फ़ंक्शन संख्याओं द्वारा पहचाना जाता है। BIOS क्लाइंट अधिकांश सूचनाओं को सीपीयू रजिस्टरों में BIOS को पास करता है, और उसी प्रकार से अधिकांश जानकारी वापस प्राप्त करता है, किन्तु रजिस्टरों में फिट होने के लिए बहुत बड़ा डेटा, जैसे नियंत्रण मापदंडों की तालिका या डिस्क ट्रांसफर के लिए डिस्क सेक्टर डेटा, बफर आवंटित करके पारित किया जाता है। (अर्थात कुछ जगह) स्मृति में और रजिस्टरों में बफर के पते को पास करना। (कभी-कभी मेमोरी में डेटा आइटम्स के एकाधिक पते मेमोरी में डेटा संरचना में पास किए जा सकते हैं, उस संरचना के पते रजिस्टरों में BIOS को पास किए जाते हैं।) इंटरप्ट नंबर को सॉफ्टवेयर इंटरप्ट इंस्ट्रक्शन (इंटेल असेंबली लैंग्वेज में) के पैरामीटर के रूप में निर्दिष्ट किया जाता है। , INT निर्देश), और फ़ंक्शन संख्या AH रजिस्टर में निर्दिष्ट है; अर्थात्, कॉलर एएच रजिस्टर को वांछित फ़ंक्शन की संख्या पर सेट करता है। सामान्यतः, प्रत्येक इंटरप्ट संख्या से संबंधित BIOS सेवाएं दूसरे से स्वतंत्र रूप से संचालित होती हैं, किन्तु इंटरप्ट सेवा के भीतर कार्य ही BIOS प्रोग्राम द्वारा नियंत्रित किए जाते हैं और स्वतंत्र नहीं होते हैं। (यह अंतिम बिंदु Reentrancy (कंप्यूटिंग) के लिए प्रासंगिक है।) | BIOS इंटरप्ट कॉल को ऑपरेटिंग सिस्टम जैसे BIOS और BIOS क्लाइंट सॉफ़्टवेयर के बीच संदेश भेजने के लिए तंत्र के रूप में माना जा सकता है। संदेश BIOS से डेटा या कार्रवाई का अनुरोध करते हैं और अनुरोधित डेटा, स्थिति की जानकारी, और/या अनुरोधित कार्रवाई के उत्पाद को कॉलर को लौटाते हैं। संदेशों को श्रेणियों में बांटा गया है, जिनमें से प्रत्येक की अपनी रुकावट संख्या है, और अधिकांश श्रेणियों में उप-श्रेणियां होती हैं, जिन्हें फ़ंक्शन कहा जाता है और फ़ंक्शन संख्याओं द्वारा पहचाना जाता है। BIOS क्लाइंट अधिकांश सूचनाओं को सीपीयू रजिस्टरों में BIOS को पास करता है, और उसी प्रकार से अधिकांश जानकारी वापस प्राप्त करता है, किन्तु रजिस्टरों में फिट होने के लिए बहुत बड़ा डेटा, जैसे नियंत्रण मापदंडों की तालिका या डिस्क ट्रांसफर के लिए डिस्क सेक्टर डेटा, बफर आवंटित करके पारित किया जाता है। (अर्थात कुछ जगह) स्मृति में और रजिस्टरों में बफर के पते को पास करना। (कभी-कभी मेमोरी में डेटा आइटम्स के एकाधिक पते मेमोरी में डेटा संरचना में पास किए जा सकते हैं, उस संरचना के पते रजिस्टरों में BIOS को पास किए जाते हैं।) इंटरप्ट नंबर को सॉफ्टवेयर इंटरप्ट इंस्ट्रक्शन (इंटेल असेंबली लैंग्वेज में) के पैरामीटर के रूप में निर्दिष्ट किया जाता है। , INT निर्देश), और फ़ंक्शन संख्या AH रजिस्टर में निर्दिष्ट है; अर्थात्, कॉलर एएच रजिस्टर को वांछित फ़ंक्शन की संख्या पर सेट करता है। सामान्यतः, प्रत्येक इंटरप्ट संख्या से संबंधित BIOS सेवाएं दूसरे से स्वतंत्र रूप से संचालित होती हैं, किन्तु इंटरप्ट सेवा के भीतर कार्य ही BIOS प्रोग्राम द्वारा नियंत्रित किए जाते हैं और स्वतंत्र नहीं होते हैं। (यह अंतिम बिंदु Reentrancy (कंप्यूटिंग) के लिए प्रासंगिक है।) | ||
BIOS सॉफ़्टवेयर सामान्यतः कॉल करने वाले के पास त्रुटि कोड के साथ वापस आता है यदि सफल नहीं होता है, या स्थिति कोड और/या सफल होने पर अनुरोधित डेटा के साथ। डेटा स्वयं बिट जितना छोटा या पूरे कच्चे डिस्क क्षेत्रों के 65,536 बाइट्स जितना बड़ा हो सकता है (अधिकतम जो वास्तविक-मोड मेमोरी सेगमेंट में फिट होगा)। कई | BIOS सॉफ़्टवेयर सामान्यतः कॉल करने वाले के पास त्रुटि कोड के साथ वापस आता है यदि सफल नहीं होता है, या स्थिति कोड और/या सफल होने पर अनुरोधित डेटा के साथ। डेटा स्वयं बिट जितना छोटा या पूरे कच्चे डिस्क क्षेत्रों के 65,536 बाइट्स जितना बड़ा हो सकता है (अधिकतम जो वास्तविक-मोड मेमोरी सेगमेंट में फिट होगा)। कई भिन्न-भिन्न कॉरपोरेट संस्थाओं द्वारा BIOS को कई वर्षों में कई बार विस्तारित और बढ़ाया गया है, और दुर्भाग्य से इस विकास का परिणाम यह है कि सभी BIOS फ़ंक्शंस जिन्हें डेटा को प्रारूपित करने और संचार करने या परिणामों की रिपोर्ट करने के लिए सुसंगत सम्मेलनों का उपयोग नहीं कहा जा सकता है। कुछ BIOS फ़ंक्शन विस्तृत स्थिति जानकारी की रिपोर्ट करते हैं, जबकि अन्य सफलता या विफलता की रिपोर्ट भी नहीं कर सकते हैं, किन्तु कॉल करने वाले को सफलता मानने के लिए (या किसी अन्य तरीके से परिणाम का परीक्षण करने के लिए) चुपचाप वापस लौटते हैं। कभी-कभी यह निर्धारित करना भी कठिनाई हो सकता है कि निश्चित कंप्यूटर पर BIOS द्वारा निश्चित BIOS फ़ंक्शन कॉल समर्थित है या नहीं, या कॉल के पैरामीटर की सीमा क्या हैउस कंप्यूटर पर फिर से। (कुछ अमान्य फ़ंक्शन नंबरों के लिए, या प्रमुख मापदंडों के अमान्य मानों के साथ मान्य फ़ंक्शन नंबर - विशेष रूप से प्रारंभिक आईबीएम BIOS संस्करण के साथ - BIOS कुछ भी नहीं कर सकता है और बिना किसी त्रुटि कोड के वापस आ सकता है; तो यह [असुविधाजनक किन्तु अपरिहार्य] जिम्मेदारी है कॉलर या तो ऐसी कॉल न करके इस स्थितिसे बचने के लिए, या कॉल के प्रभावी होने के अतिरिक्त कॉल के अपेक्षित प्रभाव के लिए सकारात्मक रूप से परीक्षण करने के लिए। क्योंकि BIOS अपने इतिहास में कई चरणों में बड़े पैमाने पर विकसित हुआ है, फ़ंक्शन जो मान्य है कुछ निश्चित विक्रेता से BIOS संस्करण उसी विक्रेता से या किसी अन्य विक्रेता से किसी भी संबंधित आयु के BIOS संस्करण में पहले या भिन्न-भिन्न BIOS संस्करण में मान्य नहीं हो सकता है।) | ||
क्योंकि BIOS इंटरप्ट कॉल सीपीयू रजिस्टर-आधारित पैरामीटर पासिंग का उपयोग करते हैं, कॉल असेंबली लैंग्वेज से किए जाने के लिए उन्मुख होते हैं और सीधे उच्च-स्तरीय [[उच्च स्तरीय प्रोग्रामिंग भाषा]]| हाई-लेवल लैंग्वेज (HLL) से नहीं किए जा सकते हैं। चूँकि, उच्च स्तरीय भाषा रैपर रूटीन की लाइब्रेरी प्रदान कर सकती है जो उच्च-स्तरीय भाषा द्वारा उपयोग किए जाने वाले फॉर्म (सामान्यतः स्टैक-आधारित) से मापदंडों का अनुवाद BIOS द्वारा आवश्यक रजिस्टर-आधारित फॉर्म में करती है, फिर एचएलएल [[कॉलिंग कन्वेंशन]] के बाद BIOS रिटर्न। सी के कुछ रूपों में, सी मॉड्यूल के भीतर इनलाइन असेंबली भाषा का उपयोग करके BIOS कॉल किए जा सकते हैं। (इनलाइन असेंबली भाषा के लिए समर्थन एएनएसआई सी मानक का | क्योंकि BIOS इंटरप्ट कॉल सीपीयू रजिस्टर-आधारित पैरामीटर पासिंग का उपयोग करते हैं, कॉल असेंबली लैंग्वेज से किए जाने के लिए उन्मुख होते हैं और सीधे उच्च-स्तरीय [[उच्च स्तरीय प्रोग्रामिंग भाषा]]| हाई-लेवल लैंग्वेज (HLL) से नहीं किए जा सकते हैं। चूँकि, उच्च स्तरीय भाषा रैपर रूटीन की लाइब्रेरी प्रदान कर सकती है जो उच्च-स्तरीय भाषा द्वारा उपयोग किए जाने वाले फॉर्म (सामान्यतः स्टैक-आधारित) से मापदंडों का अनुवाद BIOS द्वारा आवश्यक रजिस्टर-आधारित फॉर्म में करती है, फिर एचएलएल [[कॉलिंग कन्वेंशन]] के बाद BIOS रिटर्न। सी के कुछ रूपों में, सी मॉड्यूल के भीतर इनलाइन असेंबली भाषा का उपयोग करके BIOS कॉल किए जा सकते हैं। (इनलाइन असेंबली भाषा के लिए समर्थन एएनएसआई सी मानक का भाग नहीं है, किन्तु भाषा विस्तार है, जिससे की, इनलाइन असेंबली भाषा का उपयोग करने वाले सी मॉड्यूल शुद्ध एएनएसआई मानक सी मॉड्यूल से कम पोर्तालिका हैं।) | ||
=== रुकावट का आह्वान === | === रुकावट का आह्वान === | ||
| Line 135: | Line 136: | ||
|- | |- | ||
|{{Code|4Fh}} | |{{Code|4Fh}} | ||
|[[VESA BIOS Extension]] Functions (SVGA) | |[[VESA BIOS Extension|VESA BIOS Eएक्सटीension]] Functions (SVGA) | ||
|} | |} | ||
|- | |- | ||
| Line 194: | Line 195: | ||
|- | |- | ||
|{{Code|41h}} | |{{Code|41h}} | ||
| | |Eएक्सटीended Disk Drive (EDD) Installation Check | ||
|- | |- | ||
|{{Code|42h}} | |{{Code|42h}} | ||
| | |Eएक्सटीended Read Sectors | ||
|- | |- | ||
|{{Code|43h}} | |{{Code|43h}} | ||
| | |Eएक्सटीended Write Sectors | ||
|- | |- | ||
|{{Code|44h}} | |{{Code|44h}} | ||
| | |Eएक्सटीended Verify Sectors | ||
|- | |- | ||
|{{Code|45h}} | |{{Code|45h}} | ||
| Line 212: | Line 213: | ||
|- | |- | ||
|{{Code|47h}} | |{{Code|47h}} | ||
| | |Eएक्सटीended Seek | ||
|- | |- | ||
|{{Code|48h}} | |{{Code|48h}} | ||
| | |Eएक्सटीended Get Drive Parameters | ||
|- | |- | ||
|{{Code|49h}} | |{{Code|49h}} | ||
| | |Eएक्सटीended Get Media Change Status | ||
|- | |- | ||
|{{Code|4Eh}} | |{{Code|4Eh}} | ||
| | |Eएक्सटीended Set Hardware Configuration | ||
|} | |} | ||
|- | |- | ||
| Line 254: | Line 255: | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | | | ||
|Turn on cassette drive motor ( | |Turn on cassette drive motor (आईबीएम पीसी/पीसीजेआर only) | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | | | ||
|Turn off cassette drive motor ( | |Turn off cassette drive motor (आईबीएम पीसी/पीसीजेआर only) | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | | | ||
|Read data blocks from cassette ( | |Read data blocks from cassette (आईबीएम पीसी/पीसीजेआर only) | ||
|- | |- | ||
|{{Code|03h}} | |{{Code|03h}} | ||
| | | | ||
|Write data blocks to cassette ( | |Write data blocks to cassette (आईबीएम पीसी/पीसीजेआर only) | ||
|- | |- | ||
|{{Code|4Fh}} | |{{Code|4Fh}} | ||
| Line 294: | Line 295: | ||
|{{Code|88h}} | |{{Code|88h}} | ||
| | | | ||
|Get [[Extended Memory]] Size | |Get [[Extended Memory|Eएक्सटीended Memory]] Size | ||
|- | |- | ||
|{{Code|89h}} | |{{Code|89h}} | ||
| Line 306: | Line 307: | ||
|{{Code|C1h}} | |{{Code|C1h}} | ||
| | | | ||
|Get | |Get Eएक्सटीended BIOS Data Area Segment | ||
|- | |- | ||
|{{Code|C2h}} | |{{Code|C2h}} | ||
| Line 326: | Line 327: | ||
|{{Code|E8h}} | |{{Code|E8h}} | ||
|{{Code|01h}} | |{{Code|01h}} | ||
|Get | |Get Eएक्सटीended Memory Size (Newer function, since 1994). Gives results for memory size above 64 Mb. | ||
|- | |- | ||
|{{Code|E8h}} | |{{Code|E8h}} | ||
| Line 353: | Line 354: | ||
|- | |- | ||
|{{Code|10h}} | |{{Code|10h}} | ||
|Read Character | |Read Character Eएक्सटीended | ||
|- | |- | ||
|{{Code|11h}} | |{{Code|11h}} | ||
|Read Input Status | |Read Input Status Eएक्सटीended | ||
|- | |- | ||
|{{Code|12h}} | |{{Code|12h}} | ||
|Read Keyboard Shift Status | |Read Keyboard Shift Status Eएक्सटीended | ||
|} | |} | ||
|- | |- | ||
| Line 380: | Line 381: | ||
|- | |- | ||
|{{Code|18h}} | |{{Code|18h}} | ||
|Execute [[Cassette BASIC]]: On | |Execute [[Cassette BASIC]]: On आईबीएम machines up to the early PS/2 line, this interrupt would start the ROM Cassette BASIC. Clones did not have this feature and different machines/BIOSes would perform a variety of different actions if INT 18h was executed, most commonly an error message stating that no bootable disk was present. Modern machines would attempt to [[Network boot|boot from a network]] through this interrupt. On modern machines this interrupt will be treated by the BIOS as a signal from the bootloader that it failed to complete its task. The BIOS can then take appropriate neएक्सटी steps.<ref name=spec>* [https://www.scs.stanford.edu/nyu/04fa/lab/specsbbs101.pdf BIOS Boot Specification Version 1.01 January 11 1996] Appendix D</ref> | ||
|- | |- | ||
|{{Code|19h}} | |{{Code|19h}} | ||
| Line 418: | Line 419: | ||
|- | |- | ||
|{{Code|1Ah}} | |{{Code|1Ah}} | ||
|[[Conventional PCI| | |[[Conventional PCI|पीसीI]] Services - implemented by BIOSes supporting पीसीI 2.0 or later | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
| Line 425: | Line 426: | ||
|- | |- | ||
|{{Code|B101h}} | |{{Code|B101h}} | ||
| | |पीसीI Installation Check | ||
|- | |- | ||
|{{Code|B102h}} | |{{Code|B102h}} | ||
|Find | |Find पीसीI Device | ||
|- | |- | ||
|{{Code|B103h}} | |{{Code|B103h}} | ||
|Find | |Find पीसीI Class Code | ||
|- | |- | ||
|{{Code|B106h}} | |{{Code|B106h}} | ||
| | |पीसीI Bus-Specific Operations | ||
|- | |- | ||
|{{Code|B108h}} | |{{Code|B108h}} | ||
| Line 458: | Line 459: | ||
|- | |- | ||
|{{Code|B10Fh}} | |{{Code|B10Fh}} | ||
|Set | |Set पीसीI IRQ | ||
|} | |} | ||
|- | |- | ||
| Line 489: | Line 490: | ||
{{Code|INT 18h}} परंपरागत रूप से [[विकल्प रोम]] में संग्रहीत कैसेट बेसिक (माइक्रोसॉफ्ट द्वारा प्रदान) के कार्यान्वयन के लिए कूद गया। यदि BIOS स्टार्टअप पर बूट करने योग्य डिस्क वॉल्यूम की पहचान करने में असमर्थ था तो यह कॉल सामान्यतः प्रयुक्त की जाएगी। | {{Code|INT 18h}} परंपरागत रूप से [[विकल्प रोम]] में संग्रहीत कैसेट बेसिक (माइक्रोसॉफ्ट द्वारा प्रदान) के कार्यान्वयन के लिए कूद गया। यदि BIOS स्टार्टअप पर बूट करने योग्य डिस्क वॉल्यूम की पहचान करने में असमर्थ था तो यह कॉल सामान्यतः प्रयुक्त की जाएगी। | ||
1981 में जब मूल | 1981 में जब मूल आईबीएम पीसी (आईबीएम मशीन प्रकार 5150) जारी किया गया था, उस समय ROM में BASIC प्रमुख विशेषता थी। कमोडोर 64 और ऐप्पल II लाइन जैसे समकालीन लोकप्रिय व्यक्तिगत कंप्यूटरों में भी रोम में माइक्रोसॉफ्ट कैसेट बेसिक था (चूंकि कमोडोर ने अपने लाइसेंस प्राप्त संस्करण कमोडोर बेसिक का नाम बदल दिया), जिससे की अपने इच्छित बाजार के बड़े भाग में, आईबीएम पीसी को प्रतिस्पर्धा करने के लिए बेसिक की आवश्यकता थी। उन अन्य प्रणालियों की प्रकार, आईबीएम पीसी के ROM BASIC ने आदिम डिस्क रहित ऑपरेटिंग सिस्टम के रूप में कार्य किया, जिससे उपयोगकर्ता प्रोग्राम को लोड करने, सहेजने और चलाने के साथ-साथ उन्हें लिखने और परिष्कृत करने की अनुमति देता है। (मूल आईबीएम पीसी भी आईबीएम का एकमात्र पीसी मॉडल था, जो अपने पूर्वोक्त दो प्रतिस्पर्धियों की प्रकार, कैसेट इंटरफ़ेस हार्डवेयर सम्मिलित था। बेस मॉडल आईबीएम पीसी में केवल 16 कीबी रैम और कोई डिस्क ड्राइव [किसी भी प्रकार का] नहीं था, जिससे की कैसेट बेस मॉडल को प्रयोग करने योग्य बनाने के लिए ROM में इंटरफ़ेस और बेसिक आवश्यक थे। 32 KiB से कम रैम वाला आईबीएम पीसी डिस्क से बूट करने में असमर्थ है। मूल आईबीएम पीसी में पाँच 8 KiB ROM चिप्स में से, कुल 40 KiB, चार में होते हैं BASIC और केवल में BIOS होता है; जब केवल 16 KiB RAM स्थापित की जाती है, तो ROM BASIC कुल सिस्टम मेमोरी के आधे से अधिक [4/7, त्रुटिहीन होने के लिए] खाता है।) | ||
जैसे-जैसे समय बीतता गया और बेसिक को सभी पीसी पर शिप नहीं किया गया, यह व्यवधान केवल त्रुटि संदेश प्रदर्शित करेगा जो यह दर्शाता है कि कोई बूट करने योग्य वॉल्यूम नहीं मिला (प्रसिद्ध, नो रॉम बेसिक, या बाद के BIOS संस्करणों में अधिक व्याख्यात्मक संदेश); अन्य BIOS संस्करणों में यह उपयोगकर्ता को बूट करने योग्य वॉल्यूम डालने और कुंजी दबाने के लिए संकेत देगा, और फिर उपयोगकर्ता द्वारा कुंजी दबाए जाने के बाद यह बूटस्ट्रैप लोडर (INT 19h) पर फिर से बूट करने का प्रयास करेगा। | जैसे-जैसे समय बीतता गया और बेसिक को सभी पीसी पर शिप नहीं किया गया, यह व्यवधान केवल त्रुटि संदेश प्रदर्शित करेगा जो यह दर्शाता है कि कोई बूट करने योग्य वॉल्यूम नहीं मिला (प्रसिद्ध, नो रॉम बेसिक, या बाद के BIOS संस्करणों में अधिक व्याख्यात्मक संदेश); अन्य BIOS संस्करणों में यह उपयोगकर्ता को बूट करने योग्य वॉल्यूम डालने और कुंजी दबाने के लिए संकेत देगा, और फिर उपयोगकर्ता द्वारा कुंजी दबाए जाने के बाद यह बूटस्ट्रैप लोडर (INT 19h) पर फिर से बूट करने का प्रयास करेगा। | ||
डिजिटल का [[ इंद्रधनुष 100 |इंद्रधनुष 100]] बी उपयोग किया गया {{Code|INT 18h}} इसके BIOS को कॉल करने के लिए, जो | डिजिटल का [[ इंद्रधनुष 100 |इंद्रधनुष 100]] बी उपयोग किया गया {{Code|INT 18h}} इसके BIOS को कॉल करने के लिए, जो आईबीएम BIOS के साथ असंगत था। मेमोरी आवंटन और पेजिंग के लिए [[टर्बो पास्कल]], [[टर्बो सी]] और [[टर्बो सी ++]] ने आईएनटी 18 का पुन: उपयोग किया। अन्य कार्यक्रमों ने भी इस सदिश का अपने उद्देश्यों के लिए पुन: उपयोग किया। | ||
[[Category:Articles with hatnote templates targeting a nonexistent page]] | [[Category:Articles with hatnote templates targeting a nonexistent page]] | ||
| Line 509: | Line 510: | ||
=== डॉस === | === डॉस === | ||
DOS सिस्टम पर, IO.SYS या | DOS सिस्टम पर, IO.SYS या आईबीएमBIO.COM फ़्लॉपी डिस्क परिवर्तन का पता लगाने, फ़ॉर्मेटिंग कॉल को ट्रैक करने, DMA सीमा त्रुटियों को ठीक करने और पहली कॉल से पहले मॉडल कोड 0xFC के साथ आईबीएम के ROM BIOS 01/10/84 में समस्याओं के समाधान के लिए INT 13 को हुक करता है। . | ||
== बायपास BIOS == | == बायपास BIOS == | ||
कई आधुनिक ऑपरेटिंग सिस्टम (जैसे [[लिनक्स]] और [[ खिड़कियाँ |खिड़कियाँ]] ) स्टार्टअप के बाद किसी भी BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, इसके अतिरिक्त हार्डवेयर के साथ सीधे इंटरफेस का चयन करते हैं। ऐसा करने के लिए, वे [[डिवाइस ड्राइवर]]ों पर भरोसा करते हैं जो या तो [[ओएस कर्नेल]] का | कई आधुनिक ऑपरेटिंग सिस्टम (जैसे [[लिनक्स]] और [[ खिड़कियाँ |खिड़कियाँ]] ) स्टार्टअप के बाद किसी भी BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, इसके अतिरिक्त हार्डवेयर के साथ सीधे इंटरफेस का चयन करते हैं। ऐसा करने के लिए, वे [[डिवाइस ड्राइवर]]ों पर भरोसा करते हैं जो या तो [[ओएस कर्नेल]] का भाग हैं, ओएस के साथ शिप करते हैं, या हार्डवेयर विक्रेताओं द्वारा प्रदान किए जाते हैं। | ||
इस प्रथा के कई कारण हैं। सबसे महत्वपूर्ण यह है कि आधुनिक ऑपरेटिंग सिस्टम प्रोसेसर के साथ संरक्षित मोड (या लंबे मोड) मोड में चलते हैं, जबकि BIOS कोड केवल वास्तविक मोड में निष्पादित होगा। इसका अर्थ यह है कि यदि संरक्षित मोड में चल रहा कोई OS BIOS कॉल करना चाहता है, तो उसे पहले वास्तविक मोड में स्विच करना होगा, फिर कॉल को निष्पादित करना होगा और उसके वापस आने की प्रतीक्षा करनी होगी, और अंत में वापस सुरक्षित मोड में स्विच करना होगा। यह बेहद धीमा और अक्षम होगा। कोड जो वास्तविक मोड में चलता है (BIOS सहित) 16-बिट X86_memory_segmentation का उपयोग करने के कारण केवल 1 [[मेगाबाइट]] मेमोरी तक ही सीमित है। इसके अतिरिक्त, BIOS सामान्यतः किसी विशेष कार्य को करने का सबसे तेज़ विधि नहीं है। वास्तव में, BIOS की गति सीमाओं ने इसे DOS युग में भी कार्यक्रमों के लिए सामान्य बना दिया जिससे कि इसकी प्रदर्शन सीमाओं से बचा जा सके, विशेष रूप से वीडियो ग्राफिक्स डिस्प्ले और तेज़ सीरियल संचार के लिए। | इस प्रथा के कई कारण हैं। सबसे महत्वपूर्ण यह है कि आधुनिक ऑपरेटिंग सिस्टम प्रोसेसर के साथ संरक्षित मोड (या लंबे मोड) मोड में चलते हैं, जबकि BIOS कोड केवल वास्तविक मोड में निष्पादित होगा। इसका अर्थ यह है कि यदि संरक्षित मोड में चल रहा कोई OS BIOS कॉल करना चाहता है, तो उसे पहले वास्तविक मोड में स्विच करना होगा, फिर कॉल को निष्पादित करना होगा और उसके वापस आने की प्रतीक्षा करनी होगी, और अंत में वापस सुरक्षित मोड में स्विच करना होगा। यह बेहद धीमा और अक्षम होगा। कोड जो वास्तविक मोड में चलता है (BIOS सहित) 16-बिट X86_memory_segmentation का उपयोग करने के कारण केवल 1 [[मेगाबाइट]] मेमोरी तक ही सीमित है। इसके अतिरिक्त, BIOS सामान्यतः किसी विशेष कार्य को करने का सबसे तेज़ विधि नहीं है। वास्तव में, BIOS की गति सीमाओं ने इसे DOS युग में भी कार्यक्रमों के लिए सामान्य बना दिया जिससे कि इसकी प्रदर्शन सीमाओं से बचा जा सके, विशेष रूप से वीडियो ग्राफिक्स डिस्प्ले और तेज़ सीरियल संचार के लिए। | ||
उपरोक्त कारकों से परे, BIOS कार्यक्षमता के साथ समस्याओं में परिभाषित कार्यों की सीमा में सीमाएं, विभिन्न कंप्यूटरों पर समर्थित उन कार्यों के सबसेट में असंगतता, और BIOS की गुणवत्ता में भिन्नताएं सम्मिलित हैं (अर्थात कुछ BIOS पूर्ण और विश्वसनीय हैं, अन्य संक्षिप्त हैं और छोटी गाड़ी)। स्थितियों को अपने हाथों में लेने और BIOS पर निर्भरता से बचने के द्वारा, ऑपरेटिंग सिस्टम डेवलपर्स कुछ जोखिमों और जटिलताओं को समाप्त कर सकते हैं जो वे सिस्टम सॉफ़्टवेयर को लिखने और समर्थन करने में सामना करते हैं। दूसरी ओर, ऐसा करने से वे डेवलपर हर | उपरोक्त कारकों से परे, BIOS कार्यक्षमता के साथ समस्याओं में परिभाषित कार्यों की सीमा में सीमाएं, विभिन्न कंप्यूटरों पर समर्थित उन कार्यों के सबसेट में असंगतता, और BIOS की गुणवत्ता में भिन्नताएं सम्मिलित हैं (अर्थात कुछ BIOS पूर्ण और विश्वसनीय हैं, अन्य संक्षिप्त हैं और छोटी गाड़ी)। स्थितियों को अपने हाथों में लेने और BIOS पर निर्भरता से बचने के द्वारा, ऑपरेटिंग सिस्टम डेवलपर्स कुछ जोखिमों और जटिलताओं को समाप्त कर सकते हैं जो वे सिस्टम सॉफ़्टवेयर को लिखने और समर्थन करने में सामना करते हैं। दूसरी ओर, ऐसा करने से वे डेवलपर हर भिन्न सिस्टम या पेरिफेरल डिवाइस के लिए बेयर-मेटल ड्राइवर सॉफ़्टवेयर प्रदान करने के लिए ज़िम्मेदार हो जाते हैं, जिसके लिए वे अपने ऑपरेटिंग सिस्टम के साथ कार्य करना चाहते हैं (या उन ड्राइवरों को प्रदान करने के लिए हार्डवेयर उत्पादकों को प्रेरित करने के लिए)। | ||
इस प्रकार यह स्पष्ट होना चाहिए कि छोटे बजट पर विकसित कॉम्पैक्ट ऑपरेटिंग सिस्टम भारी मात्रा में BIOS का उपयोग करते हैं, जबकि बड़े बजट वाले सॉफ्टवेयर इंजीनियरों के विशाल समूहों द्वारा निर्मित बड़े ऑपरेटिंग सिस्टम अधिकांशतः BIOS का उपयोग करने के अतिरिक्त अपने स्वयं के ड्राइवर लिखने का विकल्प चुनते हैं- अर्थात BIOS और संरक्षित मोड की संगतता समस्याओं पर विचार किए बिना भी। | इस प्रकार यह स्पष्ट होना चाहिए कि छोटे बजट पर विकसित कॉम्पैक्ट ऑपरेटिंग सिस्टम भारी मात्रा में BIOS का उपयोग करते हैं, जबकि बड़े बजट वाले सॉफ्टवेयर इंजीनियरों के विशाल समूहों द्वारा निर्मित बड़े ऑपरेटिंग सिस्टम अधिकांशतः BIOS का उपयोग करने के अतिरिक्त अपने स्वयं के ड्राइवर लिखने का विकल्प चुनते हैं- अर्थात BIOS और संरक्षित मोड की संगतता समस्याओं पर विचार किए बिना भी। | ||
| Line 523: | Line 524: | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[डॉस इंटरप्ट कॉल]] | * [[डॉस इंटरप्ट कॉल]] | ||
* [[इंटरप्ट डिस्क्रिप्टर टेबल]] | * [[इंटरप्ट डिस्क्रिप्टर टेबल|इंटरप्ट डिस्क्रिप्टर तालिका]] | ||
* इनपुट/आउटपुट आधार पता | * इनपुट/आउटपुट आधार पता | ||
* राल्फ ब्राउन की इंटरप्ट लिस्ट | * राल्फ ब्राउन की इंटरप्ट लिस्ट | ||
| Line 532: | Line 533: | ||
* [http://ftp.embeddedarm.com/old/saved-downloads-manuals/EBIOS-UM.PDF Embedded BIOS User's Manual] | * [http://ftp.embeddedarm.com/old/saved-downloads-manuals/EBIOS-UM.PDF Embedded BIOS User's Manual] | ||
* [https://web.archive.org/web/20120617084000/http://www.esapcsolutions.com/ecom/drawings/PhoenixBIOS4_rev6UserMan.pdf PhoenixBIOS 4.0 User's Manual] | * [https://web.archive.org/web/20120617084000/http://www.esapcsolutions.com/ecom/drawings/PhoenixBIOS4_rev6UserMan.pdf PhoenixBIOS 4.0 User's Manual] | ||
* '' | * ''आईबीएम Personal System/2 and Personal Computer BIOS Interface Technical Reference'', आईबीएम, 1988, {{OCLC|20737442}} | ||
* ''System BIOS for | * ''System BIOS for आईबीएम पीसीs, Compatibles, and EISA Computers'', [[Phoenix Technologies]], 1991, {{ISBN|0201577607}} | ||
* ''Programmer's Guide to the AMIBIOS'', [[American Megatrends]], 1993, {{ISBN|0070015619}} | * ''Programmer's Guide to the AMIBIOS'', [[American Megatrends]], 1993, {{ISBN|0070015619}} | ||
* ''The Programmer's | * ''The Programmer's पीसी Sourcebook'' by Thom Hogan, Microsoft Press, 1991 {{ISBN|155615321X}} | ||
[[Category: BIOS]] [[Category: बीच में आता है]] [[Category: एप्लिकेशन प्रोग्रामिंग इंटरफेस]] | [[Category: BIOS]] [[Category: बीच में आता है]] [[Category: एप्लिकेशन प्रोग्रामिंग इंटरफेस]] | ||
Revision as of 13:45, 12 March 2023
BIOS इंटरप्ट कॉल वह सुविधा है जो ऑपरेटिंग सिस्टम और एप्लिकेशन प्रोग्राम आईबीएम पीसी संगत कंप्यूटरों पर बेसिक इनपुट/आउटपुट सिस्टम फर्मवेयर की सुविधाओं को प्रयुक्त करने के लिए उपयोग करते हैं। परंपरागत रूप से, BIOS कॉल मुख्य रूप से डॉस प्रोग्राम और बूट लोडर जैसे कुछ अन्य सॉफ़्टवेयर द्वारा उपयोग किए जाते हैं (जिनमें ज्यादातर ऐतिहासिक रूप से अपेक्षाकृत सरल एप्लिकेशन सॉफ़्टवेयर सम्मिलित हैं। जो सीधे बूट होते हैं और ऑपरेटिंग सिस्टम के बिना चलते हैं - विशेष रूप से गेम सॉफ़्टवेयर)। BIOS x86 सीपीयू का वास्तविक पता मोड (वास्तविक मोड) में चलता है। इस कारण BIOS को कॉल करने वाले प्रोग्राम को या तो वास्तविक मोड में चलना चाहिए या BIOS को कॉल करने से पूर्व संरक्षित मोड से वास्तविक मोड में स्विच करना चाहिए और फिर से वापस स्विच करना चाहिए। इस कारण से, आधुनिक ऑपरेटिंग सिस्टम जो सीपीयू को संरक्षित मोड या लॉन्ग मोड में उपयोग करते हैं, सामान्यतः सिस्टम फ़ंक्शंस का समर्थन करने के लिए BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, चूंकि वे बूटिंग के समय हार्डवेयर की जांच और आरंभ करने के लिए BIOS इंटरप्ट कॉल का उपयोग करते हैं।[1] वास्तविक मोड में 1 एमबी मेमोरी सीमा है। आधुनिक बूट लोडर (जैसे GRUB2, विंडोज़ बूट प्रबंधक ) अवास्तविक मोड या संरक्षित मोड का उपयोग करते हैं (और वर्चुअल 8086 मोड में BIOS इंटरप्ट कॉल निष्पादित करते हैं, किन्तु केवल ओएस बूटिंग के लिए) 4 जीबी तक पहुंच के लिए मेमोरी है।[2]
सभी कंप्यूटरों में, सॉफ्टवेयर निर्देश विधुत प्रवाह होने के क्षण से भौतिक हार्डवेयर (स्क्रीन, डिस्क, कीबोर्ड, आदि) को नियंत्रित करते हैं। पीसी में, BIOS, मदरबोर्ड पर ROM में पहले से लोड, सीपीयू के रीसेट होने के पश्चात् नियंत्रण कर लेता है, जिसमें पावर-अप के समय, जब हार्डवेयर रीसेट बटन दबाया जाता है, या जब महत्वपूर्ण सॉफ़्टवेयर विफलता ( ट्रिपल दोष ) होती है हार्डवेयर रीसेट को स्वचालित रूप से ट्रिगर करने के लिए मेनबोर्ड सर्किट्री का कारण बनता है। BIOS हार्डवेयर का परीक्षण करता है और इसकी स्थिति को आरंभ करता है। बूट प्रोग्राम खोजता है, लोड करता है और चलाता है (सामान्यतः OS बूट लोडर, और ऐतिहासिक ROM BASIC) और मशीन पर चलने वाले सॉफ़्टवेयर को प्रारंभिक हार्डवेयर नियंत्रण प्रदान करता है। जो सामान्यतः ऑपरेटिंग सिस्टम (एप्लिकेशन प्रोग्राम के साथ) होता है, किन्तु यह सीधे बूटिंग एकल सॉफ़्टवेयर एप्लिकेशन हो सकता है।
आईबीएम के भाग के लिए, उन्होंने प्रारंभिक आईबीएम पीसी मॉडल (पीएस / 2 से पहले) प्रोग्रामिंग करते समय अपने BIOS को पूर्ण प्रकार से उपयोग करने या सीधे हार्डवेयर का उपयोग करने और BIOS से पूर्ण प्रकार से बचने के लिए आवश्यक सभी जानकारी प्रदान की जाती है। चूँकि प्रारंभ से ही, प्रोग्रामर के पास प्रति-हार्डवेयर-परिधीय आधार पर BIOS का उपयोग करने या न करने का विकल्प था। अतः आईबीएम ने अच्छी प्रकार से व्यवहार किए गए कार्यक्रमों के लेखन को दृढ़ता से प्रोत्साहित किया था। जो केवल BIOS इंटरप्ट कॉल (और DOS सेवा कॉल) के माध्यम से हार्डवेयर तक पहुंचे थे। जो उपस्तिथा और भविष्य के पीसी मॉडल के साथ सॉफ्टवेयर की अनुकूलता का समर्थन करने के लिए असमान परिधीय हार्डवेयर वाले थे। किन्तु आईबीएम ने समझा कि कुछ सॉफ्टवेयर डेवलपर्स के लिए और हार्डवेयर ग्राहक, हार्डवेयर को सीधे नियंत्रित करने के लिए उपयोगकर्ता सॉफ़्टवेयर की क्षमता आवश्यकता थी। आंशिक रूप से, यह जिससे की था। जिससे की BIOS सेवाओं द्वारा सभी हार्डवेयर सुविधाओं और कार्यों का महत्वपूर्ण उपसमुच्चय उजागर नहीं किया गया था। दो उदाहरणों के लिए (कई के मध्य), एमडीए और सीजीए एडेप्टर हार्डवेयर स्क्रॉल करने में सक्षम हैं और पीसी सीरियल एडेप्टर बाधित-संचालित डेटा ट्रांसफर में सक्षम है। किन्तु आईबीएम BIOS इनमें से किसी भी उपयोगी तकनीकी सुविधा का समर्थन नहीं करता है।
आज, नए पीसी में BIOS अभी भी आईबीएम पर्सनल कंप्यूटर/एटी (सन्न 1984 में प्रारंभ) के लिए आईबीएम द्वारा परिभाषित BIOS इंटरप्ट फ़ंक्शन कॉल्स का सबसे अधिक समर्थन करता है। यदि सभी नहीं, तब कई और नए लोगों के साथ इनमें से कुछ के लिए प्रारूप विभिन्न अन्य संगठनों और सहयोगी उद्योग समूहों द्वारा प्रख्यापित मूल (जैसे विस्तारित पैरामीटर रेंज) है। यह हार्डवेयर संगतता की समान डिग्री के साथ मिलकर कार्य करता है। इसका तात्पर्य है कि आईबीएम एटी के लिए लिखे गए अधिकांश प्रोग्राम आज भी नए पीसी पर सही प्रकार से चल सकते हैं। अतः यह मानते हुए कि निष्पादन की तेज गति स्वीकार्य है (जो सामान्यतः सभी खेलों के लिए है जो उपयोग करते हैं सीपीयू-आधारित समय)। BIOS इंटरप्ट्स के माध्यम से एक्सेस की जाने वाली सेवाओं की अधिक सीमाओं के अतिरिक्त, वे तकनीकी परिवर्तन के लिए अधिक उपयोगी और स्थायी सिद्ध करना हुए हैं।
BIOS कॉल का उद्देश्य
BIOS इंटरप्ट कॉल प्रोग्राम द्वारा अनुरोधित हार्डवेयर नियंत्रण या I/O फ़ंक्शन करता है। प्रोग्राम को सिस्टम की जानकारी लौटाता है, या दोनों करता है। BIOS कॉल के उद्देश्य का प्रमुख तत्व अमूर्त है - BIOS कॉल सामान्यतः परिभाषित कार्य करता है, और सिस्टम के विशेष हार्डवेयर पर उन कार्यों को कैसे निष्पादित किया जाता है। इसका विशिष्ट विवरण BIOS में एनकैप्सुलेट किया जाता है और प्रोग्राम से अप्रत्यक्ष होता है। जिससे की उदाहरण के लिए, प्रोग्राम जो हार्ड डिस्क से पढ़ना चाहता है। उसे यह जानने की आवश्यकता नहीं है कि हार्ड डिस्क समानांतर ATA, SCSI, या SATA ड्राइव है। (या पूर्व के दिनों में, बढ़ी हुई छोटी डिस्क इंटरफ़ेस ड्राइव, या संशोधित आवृत्ति मॉड्यूलेशन या रन लेंथ लिमिटेड ड्राइव संभवतः सीगेट ST-506 नियंत्रक के साथ, संभवतः कई पश्चिमी डिजिटल सन्न 1980 के नियंत्रक प्रकारों में से एक, या किसी अन्य ब्रांड के भिन्न अधिकार-संबंधी नियंत्रक के साथ)। प्रोग्राम को केवल उस ड्राइव की BIOS-परिभाषित संख्या की पहचान करने की आवश्यकता है। जिसे वह एक्सेस करना चाहता है और उस क्षेत्र के पते को पढ़ने या लिखने की आवश्यकता है और BIOS इस सामान्य अनुरोध को प्राथमिक संचालन के विशिष्ट अनुक्रम में अनुवाद करने का ध्यान रखता है। उस ड्राइव से जुड़े विशेष डिस्क नियंत्रक हार्डवेयर के माध्यम से कार्य को पूर्ण करने के लिए प्रोग्राम को प्रत्येक प्रकार की हार्ड डिस्क (या डिस्प्ले एडॉप्टर, या पोर्ट इंटरफ़ेस, या वास्तविक समय घड़ी परिधीय) को निम्न स्तर पर नियंत्रित करने के बारे में जानने की आवश्यकता से मुक्त किया गया है। जिसे एक्सेस करने की आवश्यकता हो सकती है। यह प्रोग्रामिंग ऑपरेटिंग सिस्टम और एप्लिकेशन दोनों को सरल बनाता है और प्रोग्राम को छोटा बनाता है। प्रोग्राम कोड के दोहराव को कम करता है, जिस कारण BIOS में सम्मिलित कार्यक्षमता को प्रत्येक प्रोग्राम में सम्मिलित करने की आवश्यकता नहीं होती है। जिसकी उसे आवश्यकता होती है, उसे इसके अतिरिक्त BIOS में अपेक्षाकृत कम कॉल को प्रोग्राम में सम्मिलित किया जाता है। (ऑपरेटिंग सिस्टम में जहां BIOS का उपयोग नहीं किया जाता है। वहा ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सर्विस कॉल सामान्यतः समान कार्य और उद्देश्य को पूर्ण करती हैं।)
सामान्यतः उपस्तिथा सॉफ़्टवेयर के साथ अनुकूलता बनाए रखने के लिए नए सिस्टम को डिज़ाइन करते समय पुराने सिस्टम के साथ त्रुटिहीन हार्डवेयर संगतता बनाए रखने के लिए BIOS कंप्यूटर हार्डवेयर डिजाइनरों (इस तक कि प्रोग्राम विशेष रूप से BIOS का उपयोग करने के लिए लिखे गए हैं) को मुक्त करता है। उदाहरण के लिए, आईबीएम पीसीजेआर पर कीबोर्ड हार्डवेयर पहले के आईबीएम पीसी मॉडल के कीबोर्ड हार्डवेयर की तुलना में बहुत भिन्न विधि से कार्य करता है। किन्तु उन प्रोग्रामों के लिए जो केवल BIOS के माध्यम से कीबोर्ड का उपयोग करते हैं, यह अंतर लगभग अदृश्य है। (इस विवाद के दूसरे पक्ष के अच्छे उदाहरण के रूप में, पीसीजेआर प्रस्तुत किए जाने के समय उपयोग में आने वाले पीसी प्रोग्रामों का महत्वपूर्ण भाग विशेष रूप से BIOS के माध्यम से कीबोर्ड का उपयोग नहीं करता था, जिससे की आईबीएम ने पीसीजेआर में हार्डवेयर सुविधाओं को भी सम्मिलित किया जिससे कि इसका अनुकरण किया जा सकता है। जिस प्रकार आईबीएम पर्सनल कंप्यूटर और आईबीएम पर्सनल कंप्यूटर एक्सटी कीबोर्ड हार्डवेयर कार्य करता है। हार्डवेयर अनुकरण त्रुटिहीन नहीं है, जिससे की सभी प्रोग्राम जो सीधे कीबोर्ड हार्डवेयर का उपयोग करने का प्रयास करते हैं, पीसीजेआर पर सही प्रकार से कार्य करते है, किन्तु सभी प्रोग्राम जो केवल BIOS कीबोर्ड सेवाओं का उपयोग करते हैं।)
हार्डवेयर सुविधाओं तक पहुंच प्रदान करने के अतिरिक्त, BIOS अतिरिक्त सुविधाएं प्रदान करता है। जो कि BIOS सॉफ़्टवेयर में कार्यान्वित की जाती हैं। उदाहरण के लिए, BIOS आठ टेक्स्ट डिस्प्ले पेजों के लिए भिन्न-भिन्न कर्सर की स्थिति रखता है और स्वचालित लाइन रैप के साथ कंप्यूटर टर्मिनल जैसा आउटपुट प्रदान करता है और कैरिज रिटर्न और रेखा भरण जैसे बुनियादी नियंत्रण वर्णों की व्याख्या करता है। जबकि सीजीए-संगत टेक्स्ट डिस्प्ले हार्डवेयर केवल वैश्विक प्रदर्शन कर्सर है और स्वचालित रूप से कर्सर को आगे नहीं बढ़ा सकता है। अतः प्रदर्शन मेमोरी को संबोधित करने के लिए कर्सर की स्थिति का उपयोग करते है (जिससे कि यह निर्धारित किया जा सकता है कि कौन सा वर्ण सेल परिवर्तित या जांचा जा सकता है।), जो नियंत्रण वर्णों की व्याख्या करता है। अन्य उदाहरण के लिए, BIOS कीबोर्ड इंटरफ़ेस विभिन्न शिफ्ट स्टेट्स (बाएं और दाएं Shift, Ctrl, और Alt) का ट्रैक रखने के लिए कई कीस्ट्रोक्स और कुंजी संयोजनों की व्याख्या करता है। Shift+PrtScrn के पूर्व होने पर प्रिंट-स्क्रीन सेवा को कॉल करने के लिए, सिस्टम को रिबूट करने के लिए जब Ctrl+Alt+Del दबाया जाता है। लॉक स्टेट्स (कैप्स लॉक, न्यूम लॉक और स्क्रॉल लॉक) का ट्रैक रखने के लिए और एटी-क्लास मशीनों में, संबंधित लॉक-स्टेट इंडिकेटर लाइट्स को नियंत्रित करते है। कीबोर्ड, और कीबोर्ड के लिए अन्य समान व्याख्यात्मक और प्रबंधन कार्य करने के लिए। इसके विपरीत, मानक पीसी और पीसी-एटी कीबोर्ड हार्डवेयर की सामान्य क्षमताएं सिस्टम को रिपोर्ट करने तक सीमित होती हैं। जिसमें व्यक्तिगत कुंजी को दबाने या जारी करने की प्रत्येक आदिम घटना होती है। (अर्थात जारी स्थिति से उदास स्थिति या इसके विपरीत संक्रमण करना) ), कीबोर्ड इकाई का कमांड्ड रीसेट और आत्म परीक्षण करना, और एटी-क्लास कीबोर्ड के लिए, लॉक-स्टेट इंडिकेटर्स (एलईडी) की पूर्ण स्थिति सेट करने के लिए होस्ट सिस्टम से कमांड निष्पादित करना होता है।
कॉलिंग BIOS: BIOS सॉफ़्टवेयर बाधित होता है
ऑपरेटिंग सिस्टम और अन्य सॉफ़्टवेयर, स्थापित हार्डवेयर को नियंत्रित करने के लिए सॉफ़्टवेयर इंटरप्ट के माध्यम से, BIOS सॉफ़्टवेयर के साथ संचार करते हैं। सॉफ्टवेयर इंटरप्ट की सामान्य अवधारणा की विशिष्ट विविधता है। इंटरप्ट ऐसी क्रियाविधि है जिसके द्वारा सीपीयू हो सकता है।
मुख्य-लाइन प्रोग्राम को निष्पादित करना बंद करने और इसके अतिरिक्त इंटरप्ट सर्विस रूटीन (आईएसआर) नामक विशेष प्रोग्राम को तुरंत निष्पादित करने का निर्देश दिया गया था। चूँकि आईएसआर समाप्त होने के पश्चात्, सीपीयू मुख्य प्रोग्राम के साथ जारी रहता है। अतः X86 सीपीयू पर जब कोई व्यवधान उत्पन्न होता है, तब कॉल करने के लिए आईएसआर को स्मृति में आईएसआर प्रारंभ-बिंदु पतों (इंटरप्ट सदिश कहा जाता है) की तालिका में देखकर पाया जाता है कि व्यवधान सदिश तालिका (आईवीटी) में इसके टाइप नंबर द्वारा 0 से 255 तक इंटरप्ट का आह्वान किया जाता है और टाइप नंबर को इंटरप्ट सदिश तालिका में इंडेक्स के रूप में उपयोग किया जाता है और उस इंडेक्स में तालिका में आईएसआर का पता पाया जाता है। जो प्रतिक्रिया में चलाया जाता है। अतः रुकावट सॉफ्टवेयर इंटरप्ट केवल इंटरप्ट है। जो सॉफ्टवेयर कमांड द्वारा ट्रिगर किया जाता है। जिससे की, सॉफ्टवेयर सबरूटीन्स जैसे कार्य को बाधित करता है, मुख्य अंतर यह है कि सॉफ्टवेयर इंटरप्ट कॉल करने वाले प्रोग्राम को आईएसआर का पता जानने की जरूरत नहीं है, केवल इसकी इंटरप्ट संख्या सिस्टम व्यवस्था के प्रारूप में प्रतिरूपकता, अनुकूलता और लचीलेपन के लिए इसके लाभ हैं।
BIOS इंटरप्ट कॉल को ऑपरेटिंग सिस्टम जैसे BIOS और BIOS क्लाइंट सॉफ़्टवेयर के बीच संदेश भेजने के लिए तंत्र के रूप में माना जा सकता है। संदेश BIOS से डेटा या कार्रवाई का अनुरोध करते हैं और अनुरोधित डेटा, स्थिति की जानकारी, और/या अनुरोधित कार्रवाई के उत्पाद को कॉलर को लौटाते हैं। संदेशों को श्रेणियों में बांटा गया है, जिनमें से प्रत्येक की अपनी रुकावट संख्या है, और अधिकांश श्रेणियों में उप-श्रेणियां होती हैं, जिन्हें फ़ंक्शन कहा जाता है और फ़ंक्शन संख्याओं द्वारा पहचाना जाता है। BIOS क्लाइंट अधिकांश सूचनाओं को सीपीयू रजिस्टरों में BIOS को पास करता है, और उसी प्रकार से अधिकांश जानकारी वापस प्राप्त करता है, किन्तु रजिस्टरों में फिट होने के लिए बहुत बड़ा डेटा, जैसे नियंत्रण मापदंडों की तालिका या डिस्क ट्रांसफर के लिए डिस्क सेक्टर डेटा, बफर आवंटित करके पारित किया जाता है। (अर्थात कुछ जगह) स्मृति में और रजिस्टरों में बफर के पते को पास करना। (कभी-कभी मेमोरी में डेटा आइटम्स के एकाधिक पते मेमोरी में डेटा संरचना में पास किए जा सकते हैं, उस संरचना के पते रजिस्टरों में BIOS को पास किए जाते हैं।) इंटरप्ट नंबर को सॉफ्टवेयर इंटरप्ट इंस्ट्रक्शन (इंटेल असेंबली लैंग्वेज में) के पैरामीटर के रूप में निर्दिष्ट किया जाता है। , INT निर्देश), और फ़ंक्शन संख्या AH रजिस्टर में निर्दिष्ट है; अर्थात्, कॉलर एएच रजिस्टर को वांछित फ़ंक्शन की संख्या पर सेट करता है। सामान्यतः, प्रत्येक इंटरप्ट संख्या से संबंधित BIOS सेवाएं दूसरे से स्वतंत्र रूप से संचालित होती हैं, किन्तु इंटरप्ट सेवा के भीतर कार्य ही BIOS प्रोग्राम द्वारा नियंत्रित किए जाते हैं और स्वतंत्र नहीं होते हैं। (यह अंतिम बिंदु Reentrancy (कंप्यूटिंग) के लिए प्रासंगिक है।)
BIOS सॉफ़्टवेयर सामान्यतः कॉल करने वाले के पास त्रुटि कोड के साथ वापस आता है यदि सफल नहीं होता है, या स्थिति कोड और/या सफल होने पर अनुरोधित डेटा के साथ। डेटा स्वयं बिट जितना छोटा या पूरे कच्चे डिस्क क्षेत्रों के 65,536 बाइट्स जितना बड़ा हो सकता है (अधिकतम जो वास्तविक-मोड मेमोरी सेगमेंट में फिट होगा)। कई भिन्न-भिन्न कॉरपोरेट संस्थाओं द्वारा BIOS को कई वर्षों में कई बार विस्तारित और बढ़ाया गया है, और दुर्भाग्य से इस विकास का परिणाम यह है कि सभी BIOS फ़ंक्शंस जिन्हें डेटा को प्रारूपित करने और संचार करने या परिणामों की रिपोर्ट करने के लिए सुसंगत सम्मेलनों का उपयोग नहीं कहा जा सकता है। कुछ BIOS फ़ंक्शन विस्तृत स्थिति जानकारी की रिपोर्ट करते हैं, जबकि अन्य सफलता या विफलता की रिपोर्ट भी नहीं कर सकते हैं, किन्तु कॉल करने वाले को सफलता मानने के लिए (या किसी अन्य तरीके से परिणाम का परीक्षण करने के लिए) चुपचाप वापस लौटते हैं। कभी-कभी यह निर्धारित करना भी कठिनाई हो सकता है कि निश्चित कंप्यूटर पर BIOS द्वारा निश्चित BIOS फ़ंक्शन कॉल समर्थित है या नहीं, या कॉल के पैरामीटर की सीमा क्या हैउस कंप्यूटर पर फिर से। (कुछ अमान्य फ़ंक्शन नंबरों के लिए, या प्रमुख मापदंडों के अमान्य मानों के साथ मान्य फ़ंक्शन नंबर - विशेष रूप से प्रारंभिक आईबीएम BIOS संस्करण के साथ - BIOS कुछ भी नहीं कर सकता है और बिना किसी त्रुटि कोड के वापस आ सकता है; तो यह [असुविधाजनक किन्तु अपरिहार्य] जिम्मेदारी है कॉलर या तो ऐसी कॉल न करके इस स्थितिसे बचने के लिए, या कॉल के प्रभावी होने के अतिरिक्त कॉल के अपेक्षित प्रभाव के लिए सकारात्मक रूप से परीक्षण करने के लिए। क्योंकि BIOS अपने इतिहास में कई चरणों में बड़े पैमाने पर विकसित हुआ है, फ़ंक्शन जो मान्य है कुछ निश्चित विक्रेता से BIOS संस्करण उसी विक्रेता से या किसी अन्य विक्रेता से किसी भी संबंधित आयु के BIOS संस्करण में पहले या भिन्न-भिन्न BIOS संस्करण में मान्य नहीं हो सकता है।)
क्योंकि BIOS इंटरप्ट कॉल सीपीयू रजिस्टर-आधारित पैरामीटर पासिंग का उपयोग करते हैं, कॉल असेंबली लैंग्वेज से किए जाने के लिए उन्मुख होते हैं और सीधे उच्च-स्तरीय उच्च स्तरीय प्रोग्रामिंग भाषा| हाई-लेवल लैंग्वेज (HLL) से नहीं किए जा सकते हैं। चूँकि, उच्च स्तरीय भाषा रैपर रूटीन की लाइब्रेरी प्रदान कर सकती है जो उच्च-स्तरीय भाषा द्वारा उपयोग किए जाने वाले फॉर्म (सामान्यतः स्टैक-आधारित) से मापदंडों का अनुवाद BIOS द्वारा आवश्यक रजिस्टर-आधारित फॉर्म में करती है, फिर एचएलएल कॉलिंग कन्वेंशन के बाद BIOS रिटर्न। सी के कुछ रूपों में, सी मॉड्यूल के भीतर इनलाइन असेंबली भाषा का उपयोग करके BIOS कॉल किए जा सकते हैं। (इनलाइन असेंबली भाषा के लिए समर्थन एएनएसआई सी मानक का भाग नहीं है, किन्तु भाषा विस्तार है, जिससे की, इनलाइन असेंबली भाषा का उपयोग करने वाले सी मॉड्यूल शुद्ध एएनएसआई मानक सी मॉड्यूल से कम पोर्तालिका हैं।)
रुकावट का आह्वान
[[आईएनटी (x86 निर्देश)]] x86 असेंबली भाषा निर्देश का उपयोग करके बाधा उत्पन्न की जा सकती है। उदाहरण के लिए, BIOS इंटरप्ट 0x10 का उपयोग कर स्क्रीन पर वर्ण को प्रिंट करने के लिए, निम्नलिखित x86 असेंबली भाषा निर्देशों को निष्पादित किया जा सकता है:
mov ah, 0x0e ; function number = 0Eh : Display Character
mov al, '!' ; AL = code of character to display
int 0x10 ; call INT 10h, BIOS video service
Interrupt table
सामान्य BIOS इंटरप्ट क्लासेस की सूची नीचे पाई जा सकती है। ध्यान दें कि कुछ BIOS (विशेष रूप से पुराने वाले) इन सभी इंटरप्ट कक्षाओं को प्रयुक्त नहीं करते हैं।
BIOS उन प्रोग्रामों में हार्डवेयर ईवेंट इंटरप्ट्स को रिले करने के लिए कुछ इंटरप्ट्स का भी उपयोग करता है जो उन्हें प्राप्त करना चुनते हैं या संदेशों को अपने स्वयं के उपयोग के लिए रूट करते हैं। नीचे दी गई तालिका में केवल वे BIOS इंटरप्ट सम्मिलित हैं जो सेवाओं या जानकारी का अनुरोध करने के लिए प्रोग्राम (INT असेंबली-लैंग्वेज सॉफ़्टवेयर इंटरप्ट इंस्ट्रक्शन का उपयोग करके) द्वारा बुलाए जाने के लिए अभिप्रेत हैं।
| Interrupt vector | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
05h
|
Executed when Shift-Print screen is pressed, as well as when the BOUND instruction detects a bound failure.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
08h
|
This is the real time clock interrupt. It fires 18.2 times/second. The BIOS increments the time-of-day counter during this interrupt. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
09h
|
This is the Keyboard interrupt. This is generally triggered when a key on a keyboard is pressed. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10h
|
Video Services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11h
|
Returns equipment list | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12h
|
Return conventional memory size | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13h
|
Low Level Disk Services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14h
|
Serial port services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15h
|
Miscellaneous system services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16h
|
Keyboard services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17h
|
Printer services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18h
|
Execute Cassette BASIC: On आईबीएम machines up to the early PS/2 line, this interrupt would start the ROM Cassette BASIC. Clones did not have this feature and different machines/BIOSes would perform a variety of different actions if INT 18h was executed, most commonly an error message stating that no bootable disk was present. Modern machines would attempt to boot from a network through this interrupt. On modern machines this interrupt will be treated by the BIOS as a signal from the bootloader that it failed to complete its task. The BIOS can then take appropriate neएक्सटी steps.[3] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19h
|
After POST this interrupt is used by the BIOS to load the operating system. A program can call this interrupt to reboot the computer (but must ensure that hardware interrupts or DMA operations will not cause the system to hang or crash during either the reinitialization of the system by BIOS or the boot process). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ah
|
Real Time Clock Services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ah
|
पीसीI Services - implemented by BIOSes supporting पीसीI 2.0 or later
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Bh
|
Ctrl-Break handler - called by INT 09 when Ctrl-Break has been pressed
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ch
|
Timer tick handler - called by INT 08
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Dh
|
Not to be called; simply a pointer to the VPT (Video Parameter Table), which contains data on video modes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Eh
|
Not to be called; simply a pointer to the DPT (Diskette Parameter Table), containing a variety of information concerning the diskette drives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Fh
|
Not to be called; simply a pointer to the VGCT (Video Graphics Character Table), which contains the data for ASCII characters 80h to FFh
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
41h
|
Address pointer: FDPT = Fixed Disk Parameter Table (1st hard drive) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
46h
|
Address pointer: FDPT = Fixed Disk Parameter Table (2nd hard drive) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4Ah
|
Called by RTC for alarm |
==INT 18h: बेसिक == निष्पादित करें
INT 18h परंपरागत रूप से विकल्प रोम में संग्रहीत कैसेट बेसिक (माइक्रोसॉफ्ट द्वारा प्रदान) के कार्यान्वयन के लिए कूद गया। यदि BIOS स्टार्टअप पर बूट करने योग्य डिस्क वॉल्यूम की पहचान करने में असमर्थ था तो यह कॉल सामान्यतः प्रयुक्त की जाएगी।
1981 में जब मूल आईबीएम पीसी (आईबीएम मशीन प्रकार 5150) जारी किया गया था, उस समय ROM में BASIC प्रमुख विशेषता थी। कमोडोर 64 और ऐप्पल II लाइन जैसे समकालीन लोकप्रिय व्यक्तिगत कंप्यूटरों में भी रोम में माइक्रोसॉफ्ट कैसेट बेसिक था (चूंकि कमोडोर ने अपने लाइसेंस प्राप्त संस्करण कमोडोर बेसिक का नाम बदल दिया), जिससे की अपने इच्छित बाजार के बड़े भाग में, आईबीएम पीसी को प्रतिस्पर्धा करने के लिए बेसिक की आवश्यकता थी। उन अन्य प्रणालियों की प्रकार, आईबीएम पीसी के ROM BASIC ने आदिम डिस्क रहित ऑपरेटिंग सिस्टम के रूप में कार्य किया, जिससे उपयोगकर्ता प्रोग्राम को लोड करने, सहेजने और चलाने के साथ-साथ उन्हें लिखने और परिष्कृत करने की अनुमति देता है। (मूल आईबीएम पीसी भी आईबीएम का एकमात्र पीसी मॉडल था, जो अपने पूर्वोक्त दो प्रतिस्पर्धियों की प्रकार, कैसेट इंटरफ़ेस हार्डवेयर सम्मिलित था। बेस मॉडल आईबीएम पीसी में केवल 16 कीबी रैम और कोई डिस्क ड्राइव [किसी भी प्रकार का] नहीं था, जिससे की कैसेट बेस मॉडल को प्रयोग करने योग्य बनाने के लिए ROM में इंटरफ़ेस और बेसिक आवश्यक थे। 32 KiB से कम रैम वाला आईबीएम पीसी डिस्क से बूट करने में असमर्थ है। मूल आईबीएम पीसी में पाँच 8 KiB ROM चिप्स में से, कुल 40 KiB, चार में होते हैं BASIC और केवल में BIOS होता है; जब केवल 16 KiB RAM स्थापित की जाती है, तो ROM BASIC कुल सिस्टम मेमोरी के आधे से अधिक [4/7, त्रुटिहीन होने के लिए] खाता है।)
जैसे-जैसे समय बीतता गया और बेसिक को सभी पीसी पर शिप नहीं किया गया, यह व्यवधान केवल त्रुटि संदेश प्रदर्शित करेगा जो यह दर्शाता है कि कोई बूट करने योग्य वॉल्यूम नहीं मिला (प्रसिद्ध, नो रॉम बेसिक, या बाद के BIOS संस्करणों में अधिक व्याख्यात्मक संदेश); अन्य BIOS संस्करणों में यह उपयोगकर्ता को बूट करने योग्य वॉल्यूम डालने और कुंजी दबाने के लिए संकेत देगा, और फिर उपयोगकर्ता द्वारा कुंजी दबाए जाने के बाद यह बूटस्ट्रैप लोडर (INT 19h) पर फिर से बूट करने का प्रयास करेगा।
डिजिटल का इंद्रधनुष 100 बी उपयोग किया गया INT 18h इसके BIOS को कॉल करने के लिए, जो आईबीएम BIOS के साथ असंगत था। मेमोरी आवंटन और पेजिंग के लिए टर्बो पास्कल, टर्बो सी और टर्बो सी ++ ने आईएनटी 18 का पुन: उपयोग किया। अन्य कार्यक्रमों ने भी इस सदिश का अपने उद्देश्यों के लिए पुन: उपयोग किया।
BIOS हुक
डॉस
DOS सिस्टम पर, IO.SYS या आईबीएमBIO.COM फ़्लॉपी डिस्क परिवर्तन का पता लगाने, फ़ॉर्मेटिंग कॉल को ट्रैक करने, DMA सीमा त्रुटियों को ठीक करने और पहली कॉल से पहले मॉडल कोड 0xFC के साथ आईबीएम के ROM BIOS 01/10/84 में समस्याओं के समाधान के लिए INT 13 को हुक करता है। .
बायपास BIOS
कई आधुनिक ऑपरेटिंग सिस्टम (जैसे लिनक्स और खिड़कियाँ ) स्टार्टअप के बाद किसी भी BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, इसके अतिरिक्त हार्डवेयर के साथ सीधे इंटरफेस का चयन करते हैं। ऐसा करने के लिए, वे डिवाइस ड्राइवरों पर भरोसा करते हैं जो या तो ओएस कर्नेल का भाग हैं, ओएस के साथ शिप करते हैं, या हार्डवेयर विक्रेताओं द्वारा प्रदान किए जाते हैं।
इस प्रथा के कई कारण हैं। सबसे महत्वपूर्ण यह है कि आधुनिक ऑपरेटिंग सिस्टम प्रोसेसर के साथ संरक्षित मोड (या लंबे मोड) मोड में चलते हैं, जबकि BIOS कोड केवल वास्तविक मोड में निष्पादित होगा। इसका अर्थ यह है कि यदि संरक्षित मोड में चल रहा कोई OS BIOS कॉल करना चाहता है, तो उसे पहले वास्तविक मोड में स्विच करना होगा, फिर कॉल को निष्पादित करना होगा और उसके वापस आने की प्रतीक्षा करनी होगी, और अंत में वापस सुरक्षित मोड में स्विच करना होगा। यह बेहद धीमा और अक्षम होगा। कोड जो वास्तविक मोड में चलता है (BIOS सहित) 16-बिट X86_memory_segmentation का उपयोग करने के कारण केवल 1 मेगाबाइट मेमोरी तक ही सीमित है। इसके अतिरिक्त, BIOS सामान्यतः किसी विशेष कार्य को करने का सबसे तेज़ विधि नहीं है। वास्तव में, BIOS की गति सीमाओं ने इसे DOS युग में भी कार्यक्रमों के लिए सामान्य बना दिया जिससे कि इसकी प्रदर्शन सीमाओं से बचा जा सके, विशेष रूप से वीडियो ग्राफिक्स डिस्प्ले और तेज़ सीरियल संचार के लिए।
उपरोक्त कारकों से परे, BIOS कार्यक्षमता के साथ समस्याओं में परिभाषित कार्यों की सीमा में सीमाएं, विभिन्न कंप्यूटरों पर समर्थित उन कार्यों के सबसेट में असंगतता, और BIOS की गुणवत्ता में भिन्नताएं सम्मिलित हैं (अर्थात कुछ BIOS पूर्ण और विश्वसनीय हैं, अन्य संक्षिप्त हैं और छोटी गाड़ी)। स्थितियों को अपने हाथों में लेने और BIOS पर निर्भरता से बचने के द्वारा, ऑपरेटिंग सिस्टम डेवलपर्स कुछ जोखिमों और जटिलताओं को समाप्त कर सकते हैं जो वे सिस्टम सॉफ़्टवेयर को लिखने और समर्थन करने में सामना करते हैं। दूसरी ओर, ऐसा करने से वे डेवलपर हर भिन्न सिस्टम या पेरिफेरल डिवाइस के लिए बेयर-मेटल ड्राइवर सॉफ़्टवेयर प्रदान करने के लिए ज़िम्मेदार हो जाते हैं, जिसके लिए वे अपने ऑपरेटिंग सिस्टम के साथ कार्य करना चाहते हैं (या उन ड्राइवरों को प्रदान करने के लिए हार्डवेयर उत्पादकों को प्रेरित करने के लिए)।
इस प्रकार यह स्पष्ट होना चाहिए कि छोटे बजट पर विकसित कॉम्पैक्ट ऑपरेटिंग सिस्टम भारी मात्रा में BIOS का उपयोग करते हैं, जबकि बड़े बजट वाले सॉफ्टवेयर इंजीनियरों के विशाल समूहों द्वारा निर्मित बड़े ऑपरेटिंग सिस्टम अधिकांशतः BIOS का उपयोग करने के अतिरिक्त अपने स्वयं के ड्राइवर लिखने का विकल्प चुनते हैं- अर्थात BIOS और संरक्षित मोड की संगतता समस्याओं पर विचार किए बिना भी।
यह भी देखें
- डॉस इंटरप्ट कॉल
- इंटरप्ट डिस्क्रिप्टर तालिका
- इनपुट/आउटपुट आधार पता
- राल्फ ब्राउन की इंटरप्ट लिस्ट
संदर्भ
- ↑ "Booting · Linux Inside". 0xax.gitbooks.io. Retrieved 2020-11-10.
- ↑ "Grub2 Booting Process". 21 June 2016.
- ↑ * BIOS Boot Specification Version 1.01 January 11 1996 Appendix D
- The x86 Interrupt List (a.k.a. RBIL, Ralf Brown's Interrupt List)
- Embedded BIOS User's Manual
- PhoenixBIOS 4.0 User's Manual
- आईबीएम Personal System/2 and Personal Computer BIOS Interface Technical Reference, आईबीएम, 1988, OCLC 20737442
- System BIOS for आईबीएम पीसीs, Compatibles, and EISA Computers, Phoenix Technologies, 1991, ISBN 0201577607
- Programmer's Guide to the AMIBIOS, American Megatrends, 1993, ISBN 0070015619
- The Programmer's पीसी Sourcebook by Thom Hogan, Microsoft Press, 1991 ISBN 155615321X