जबकि सिद्धांत रूप में कोई भी किसी भी भाषा में BIOS लिख सकता है, आधुनिक वास्तविकता अधिकांश BIOS को असेंबली, सी या दो के संयोजन से लिखा जाता है ।
BIOS को ऐसी भाषा में लिखा जाना चाहिए जो मशीन कोड को संकलित कर सके , जिसे भौतिक हार्डवेयर-मशीन द्वारा समझा जाता है। यह सीधे या मध्यवर्ती-गीत व्याख्या की गई भाषाओं (पर्ल, पायथन, पीएचपी, रूबी, जावा, सी #, जावास्क्रिप्ट, आदि) को BIOS लिखने के लिए उपयुक्त होने के रूप में समाप्त करता है। (हालांकि, सिद्धांत रूप में, इनमें से कोई एक भाषा को या तो सीधे स्थैतिक मशीन कोड के लिए संकलित कर सकता है या किसी को किसी तरह से दुभाषिया को BIOS में एम्बेड कर सकता है। उदाहरण के लिए, जावा के लिए परित्याग GCJ परियोजना है।)
ज्यादातर ओईएम अमेरिकी मेगेट्रेंड और फीनिक्स टेक्नोलोजी जैसी कंपनियों द्वारा मालिकाना, जेनेरिक BIOS कार्यान्वयन का विस्तार करके एक BIOS को लागू करते हैं । (आपने शायद उन कंपनियों में से एक को कंप्यूटर के पहले बूट स्क्रीन पर प्रदर्शित किया है।) इन कार्यान्वयनों के लिए स्रोत कोड सार्वजनिक रूप से उपलब्ध नहीं है, लेकिन इसमें से कुछ लीक हो गए हैं। मैं इसे सीधे सी और असेंबली सोर्स कोड से लिंक नहीं करना चाहता हूं, लेकिन इंटरनेट पर ऐसे स्थान हैं जहां इस स्रोत कोड पर उन लोगों के लिए चर्चा की जाती है जो तिरछी नज़र से देखते हैं।
कुछ हार्डवेयर निर्माता, जैसे उच्च-प्रदर्शन और गेमिंग बाजारों को लक्षित करने वाले, उनके सटीक कार्यान्वयन के लिए डिज़ाइन किए गए अनुकूलन सुविधाओं, आंकड़ों और आकर्षक उपयोगकर्ता इंटरफेस के साथ अपने BIOS कार्यान्वयन को संतृप्त करते हैं। इनमें से कई विशेषताएं अमेरिकी मेगेट्रेंड्स और अन्य द्वारा उत्पादित जेनेरिक उत्पादों में पेश की जाने वाली चीजों से परे हैं। दुर्भाग्य से, ये कंपनियां अक्सर अपने स्रोत कोड की रिहाई को सुरक्षा जोखिम के रूप में देखती हैं , इसलिए इन उच्च-अंत कार्यान्वयनों के बारे में बहुत कम जाना जाता है क्योंकि उनके बारे में बहुत कुछ साझा किया जाता है। निश्चित रूप से ऐसे BIOS कार्यान्वयन को एक्सेस और डी-कंपाइल करने के तरीके मिल सकते हैं, लेकिन ऐसा करना मुश्किल और संभवतः अवैध हो सकता है।
मूल प्रश्न पर वापस जा रहे हैं, क्योंकि देशी मशीन कोड का उत्पादन करने की आवश्यकता के कारण, एक BIOS को मूल मशीन कोड कंपाइलर द्वारा समर्थित प्रोग्रामिंग भाषा में लागू करना होगा । जबकि ऐसी कई भाषाएं हैं और जब मैं पिछले कुछ दशकों से सुनिश्चित हूं, प्रयोग में कई भाषाओं का उपयोग किया गया है, तो हर खुली BIOS कार्यान्वयन मैं विशेष रूप से C और / या असेंबली के संयोजन पर निर्भर करता है। मुक्त-स्रोत BIOS कार्यान्वयन मैं इस निष्कर्ष के रूप में देखा शामिल OpenBIOS , tinyBIOS , coreboot , इंटेल BIOS , और Libreboot। मैंने कुछ बहुत पुराने BIOS कार्यान्वयनों को भी देखा जो आज भी प्रासंगिक नहीं हैं, लेकिन C और / या असेंबली नियम का भी पालन करते हैं।
मुझे लगता है कि हार्डवेयर के साथ सीधे बातचीत करने के लिए बनाए गए अन्य सॉफ़्टवेयर को देखना भी प्रासंगिक है। हम जानते हैं, उदाहरण के लिए, कि लिनक्स कर्नेल , ओएस एक्स कर्नेल , और विंडोज कर्नेल काफी हद तक कुछ असेंबली और विशिष्ट कार्यों के लिए कुछ उच्च स्तरीय भाषाओं के साथ हैं। हम यह भी जानते हैं कि लिनक्स पर हार्डवेयर ड्राइवर और विंडोज पर हार्डवेयर ड्राइवर सी में बड़े पैमाने पर लिखे गए हैं।
BIOS पर वापस जाना, मुझे लगता है कि चुने हुए प्रोग्रामिंग भाषा के अर्थशास्त्र पर विचार करना भी महत्वपूर्ण है। आमतौर पर BIOS को हार्डवेयर की बिक्री के पूरक के रूप में लिखा जाता है। आधुनिक BIOS सिस्टम को मोटे तौर पर C और / या असेंबली में लिखा जाता है। कुछ अन्य उपकरण के लिए एक कदम महत्वपूर्ण लागत को जोड़ देगा जो आम तौर पर कमोडिटी उत्पाद माना जाता है जो बिक्री पर बहुत प्रतिकूल प्रभाव डाल सकता है। 101 अर्थशास्त्र में शामिल हुए बिना, मैं आपको आश्वासन दे सकता हूं कि शायद यह कोशिश करने के लिए एक OEM के लायक नहीं है, और यह कोशिश की गई है कि सच्चे-औज़ारों से विचलित हो जो दशकों से साबित हो रहे हैं।
बेशक वहाँ हैं और साथ ही साथ BIOS लिखने के लिए hobbyist परियोजनाओं होंगे। ये भी, इस प्रकार अब तक, सी और / या असेंबली का चयन करते प्रतीत होते हैं। शायद एक दिन अन्य तकनीकों का उपयोग किया जाएगा। लेकिन आज, की पसंद अच्छी तरह से परिभाषित है।