2009-06-11 12 views

उत्तर

16

हां। आप "क्लासिक" कर्नेल-मोड ड्राइवर नहीं बना सकते हैं। हालांकि, एक्सपी से शुरू होने पर, विंडोज User-Mode Driver Framework प्रदान करता है। वे सब कुछ नहीं कर सकते हैं, जाहिर है - ओएस को बूट करने में उपयोग किए जाने वाले किसी भी ड्राइवर को स्पष्ट रूप से कर्नेल-मोड होना चाहिए। लेकिन यूएमडीएफ के साथ, आपको केवल COM घटकों को लागू करने की आवश्यकता है।

  • हैंडल व्यवधान
  • इस तरह के प्रत्यक्ष स्मृति पहुँच (डीएमए) के रूप में सीधे पहुँच हार्डवेयर,
  • सख्त समय छोरों है:

    बूट समय ड्राइवरों के अलावा, आप भी नहीं UMDF ड्राइवरों कि लिख सकते हैं

  • उपयोग गैर-पृष्ठांकित पूल या अन्य संसाधनों है कि अपने अच्छे जवाब के लिए सभी के लिए कर्नेल मोड के लिए आरक्षित हैं
+0

मैं प्रश्न के जवाब में "पायथन = क्रेज़ी" लेखन में मानक लिखने वाला था, लेकिन मुझे लगता है कि एक यूएमडीएफ चालक काम करेगा। दिलचस्प! –

+0

दिलचस्प शब्द है। मैं इसका अध्ययन करूंगा .. – Armageddon

+0

मैं अपनी कंपनी के लिए एक लिनक्स ड्राइवर डेवलपर हूं और अब हम अपने ड्राइवर मंच को स्वतंत्र बनाने के लिए अजगर की खोज कर रहे हैं। उच्च प्रबंधन द्वारा सुझाए गए और इन दिनों आरएनडी कर रहे हैं। –

1

पायथन वर्चुअल मशीन में चलता है, इसलिए नहीं।

लेकिन:

आप एक संकलक कि मशीन भाषा के लिए अजगर कोड तब्दील लिख सकते हैं। एक बार ऐसा करने के बाद, आप इसे कर सकते हैं।

+0

मैंने अनुमान लगाया कि ऐसा नहीं हो सका। :(आप से .. – Armageddon

+2

या आप ड्राइवर में पाइथन दुभाषिया एम्बेड कर सकते हैं। या कर्नेल में पाइथन दुभाषिया समेत माइक्रोसॉफ्ट से बात करें। तकनीकी रूप से, ऐसा कोई कारण नहीं है कि यह क्यों नहीं किया जा सका। विंडोज़ अभी वर्तमान में ऑफर नहीं करता है आप इसके लिए बहुत समर्थन करते हैं।;) – jalf

0

कभी कभी नहीं कहते हैं लेकिन हाँ .. कोई

आप ड्राइवरों के उपयोगकर्ता मोड भागों को चलाने के लिए अजगर में एक साथ कुछ हैक करने में सक्षम हो सकता है। लेकिन कर्नेल-मोड सामान केवल सी या असेंबली में किया जा सकता है।

+0

बूह :( वैसे भी धन्यवाद :) मुझे लगता है कि मुझे सी या असेंबली सीखना है ..;) – Armageddon

+0

चालक में दुभाषिया (सी में लिखित) को एकीकृत करने के बारे में क्या है और फिर पाइथन लिपि को निष्पादित करने के लिए ड्राइवर में डेटा के रूप में भी संग्रहीत किया जाता है? –

+0

@ जुज मेगार्डन: यह उपयोगकर्ता-मोड में काम कर सकता है लेकिन कर्नेल-मोड क्या कॉल किया जा सकता है पर बहुत ही सीमित है। संभावना है कि आपका दुभाषिया वहां नहीं चलाएगा। कर्नेल मोड विकास एक काला कला की तरह है। – Mendelt

0

नहीं वे नहीं कर सकते हैं। विंडोज ड्राइवरों एक भाषा है कि

  1. सी आधारित एपीआई
  2. साथ इंटरफेस

फिर मशीन कोड के लिए नीचे संकलित कर सकते हैं में लिखा होना चाहिए, एक संकलक कि अजगर तब्दील लिखने से क्या रोक रहा कुछ भी नहीं है मशीन कोड के लिए;)

+0

हमम .. अगर मैं इस तरह के कंपाइलर को लिखने में सक्षम हो सकता हूं ... मैं वास्तव में पाइथन में ड्राइवर लिखने की परवाह नहीं करता हूं: डी – Armageddon

+0

आवश्यक लेकिन पर्याप्त नहीं – MSalters

1

मुझे विंडोज़ (मेमोरी आवंटन योजनाओं, पुस्तकालयों के गतिशील लोड और सभी) पर ड्राइवरों पर प्रतिबंधों को नहीं पता है, लेकिन आप अपने ड्राइवर में एक पाइथन दुभाषिया को एम्बेड करने में सक्षम हो सकते हैं, जिस बिंदु पर आप wha कर सकते हैं आप चाहते हैं कि tever। ऐसा नहीं है कि मुझे लगता है कि यह एक अच्छा विचार है :)

+0

यह एक "वसा" और "धीमा" चालक बना देगा :) – Armageddon

+1

मैं वही बात सोच रहा था। हालांकि, लूआ ऐसा IMHO करने के लिए एक बहुत ही बेहतर भाषा होगी। –

+1

300 बॉड मॉडेम के लिए ड्राइवर लिखने के लिए यह सही होगा। ;-) – Nosredna

3

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

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

3

अंतर्दृष्टि प्राप्त करने का एक अच्छा तरीका ड्राइवरों में सी ++ के उपयोग पर Microsoft's advice पढ़कर व्यावहारिक रूप से असंभव क्यों है। सी के व्युत्पन्न के रूप में, सी ++ का उपयोग सीधा लगता है। अभ्यास में, ऐसा नहीं है।

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

संबंधित मुद्दे

 संबंधित मुद्दे