2012-06-05 15 views
15

क्या कम से कम पाइथन का उपयोग कर ऑपरेटिंग सिस्टम बनाना संभव है?
मैं वास्तव में असेंबली जैसे निम्न स्तर कोड में नहीं जाना चाहता, इसलिए मैं एक सरल
पर्ल, या पायथन जैसी भाषा का उपयोग करना चाहता हूं। पर कैसे?क्या पाइथन का उपयोग कर एक ऑपरेटिंग सिस्टम बनाना संभव है?

+0

आप क्या हासिल करने की उम्मीद कर रहे हैं? – NPE

+2

https: // launchpad।नेट/पिकॉर्न – pyfunc

+2

बिना असेंबली या सी का उपयोग किया जा रहा है _somewhere_ - यहां तक ​​कि पिकॉर्न बूटस्ट्रैप कोड के लिए असेंबली है। इसी प्रकार हैंडलर को बाधित करें। –

उत्तर

24

दुर्भाग्य से पायथन को very high level programming language के रूप में वर्गीकृत किया गया है। इसका उपयोग नहीं किया जा सकता है, उदाहरण के लिए, सीधे हार्डवेयर तक पहुंचने और निम्न-स्तरीय डेटा संरचना मैनिपुलेशन करने के लिए। यह हार्डवेयर से अमूर्त करने के लिए पूरी तरह से निर्भर है, और यह कर्नेल है। हालांकि, यह पाइथन पर केंद्रित एक ऑपरेटिंग सिस्टम बनाने के लिए तकनीकी रूप से संभव है, जो है; सी और असेंबली में लिखे गए केवल बहुत कम स्तर की सामग्री है और इसमें पाइथन में लिखे गए अधिकांश ऑपरेटिंग सिस्टम हैं।

This article अधिक विस्तार से चर्चा करता है कि कौन सी भाषाएं ऑपरेटिंग सिस्टम कर्नेल लिखने के लिए उपयुक्त हैं।

+4

अच्छा लेख। इसका सबसे अच्छा उद्धरण यह है: _ सी के अलावा कई भाषाओं में असेंबली और सी विकास की उचित मात्रा आवश्यक है ताकि उचित रनटाइम पर्यावरण को भाषा के abstractions.__ का समर्थन किया जा सके। – C2H5OH

1

मेरा सुझाव है कि आपको ऑपरेटिंग सिस्टम डिज़ाइन पर एक अच्छी पाठ्यपुस्तक मिलती है, और इसका अध्ययन करें। मुझे पूरा यकीन है कि आपको पाइथन स्रोत कोड के साथ ऐसी पुस्तक नहीं मिलेगी; सी अधिक संभावना है। (आपको एक पुरानी पाठ्यपुस्तक मिल सकती है जो सी के बजाय पास्कल का उपयोग करती है, लेकिन यह वास्तव में अलग नहीं है।)

एक बार जब आप एक ऑपरेटिंग सिस्टम लिखने में सक्षम होने के लिए पर्याप्त ऑपरेटिंग सिस्टम डिज़ाइन का अध्ययन कर लेते हैं, तो आपको पर्याप्त जानकारी होगी आपकी राय क्या भाषाओं पर उपयुक्त होगी।

3

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

हालांकि आपको इंटरप्ट्स, निम्न स्तरीय मेमोरी प्रबंधन आदि के लिए असेंबली और सी लिखना होगा। मेरे मामले में, मैंने Newlib सी लाइब्रेरी के विरुद्ध विशेष रूप से संशोधित पायथन 2.5.2 बनाया; कम से कम मामले में आपको न्यूलिब लाइब्रेरी के लिए हीप मेमोरी प्रबंधन प्रदान करने की आवश्यकता है, और आप इसके ऊपर पाइथन चला सकते हैं।

इस प्रकार, पायथन दुभाषिया में अपना ढेर कार्यान्वयन नहीं होता है, और यह सी लाइब्रेरी पर निर्भर करता है, इसलिए आप इसे सीधे नंगे धातु पर नहीं चला सकते हैं, लेकिन ऑपरेटिंग सिस्टम कर्नेल को पारंपरिक रूप से लिखा गया है, पायथन में भी लिखा जा सकता है।

पाठ्यक्रम का विशेष मामला microkernels हैं, जहां अधिकांश कार्यक्षमता उपयोगकर्ताओं के रूप में सेवाओं के रूप में है; इन्हें किसी भी पसंदीदा प्रोग्रामिंग भाषा में पाइथन में अधिक स्वाभाविक रूप से कार्यान्वित किया जा सकता है।

6

आप The Intel BIOS Implementation Test Suite (BITS) Project द्वारा दिखाए गए अनुसार ओएस के बिना निश्चित रूप से पायथन चला सकते हैं। scripting guide बताते हैं:।

"... हार्डवेयर प्लेटफार्म के विभिन्न निम्न स्तर कार्यक्षमता, ACPI, सीपीयू और चिपसेट रजिस्टर, पीसीआई, और पीसीआई एक्सप्रेस आप स्क्रिप्ट का पता लगाने के लिख सकते हैं और परीक्षण सहित उपयोग करने के लिए भी शामिल है पायथन एपीआई प्लेटफार्म कार्यक्षमता, 32-बिट रिंग 0 में पाइथन की पूरी शक्ति का उपयोग करके, ओएस के बिना .. "

अब, बीआईटीएस इंटेल हार्डवेयर के लिए विशिष्ट एक BIOS परीक्षण प्लेटफॉर्म है, और कस्टम नहीं चलाने के लिए पायथन आधारित ओएस, लेकिन इसका मतलब यह नहीं है कि आप इसे आजमा सकते हैं ...