سؤال

قبل أن تقفز المتهور في C#...

لقد شعرت دائما أن ج ، أو ربما C++, كان أفضل لتطوير السائقين على ويندوز.أنا لست حريصا على تطوير فكرة السائق على .صافي آلة.

ولكن .صافي يبدو أن الطريق MS تتجه نحو تطوير التطبيقات ، لذلك أنا أتساءل الآن:

  • هي الناس باستخدام C# لتطوير السائقين ؟
  • عليك أن تفعل الكثير من API السنانير ، أو C# لها المرافق واجهة مع النواة دون الكثير من hackery?
  • يمكن لأي شخص التحدث موثوقية وسلامة تشغيل برنامج C# أقرب إلى الحلقة 0 من شأنه عادة أن يكون الحال ؟

أريد الأجهزة يمكن استخدامها في C# و إذا كان السائق ديف في C# ناضجة ومن الواضح أن هذا الطريق للذهاب, ولكن لا تريد أن تنفق الكثير من الجهد هناك إذا ليس من المستحسن.

  • ما هي بعض موارد جيدة للبدء ، النامية بسيط الظاهري المنفذ التسلسلي السائق ؟

-آدم

هل كانت مفيدة؟

المحلول

أنت لا يمكن أن تجعل kernel-وضع برامج تشغيل الأجهزة في C# كما runtime لا يمكن أن يكون بأمان تحميلها في ring0 و تعمل كما هو متوقع.

بالإضافة إلى ذلك, C# لا خلق ثنائيات مناسبة التحميل برامج تشغيل الأجهزة ، خاصة فيما يتعلق نقاط الدخول أن السائقين تحتاج إلى كشف.الاعتماد على وقت التشغيل إلى القفز في تحليل و جيت الثنائية أثناء التحميل يحظر الوصول المباشر السائق الفرعي يحتاج إلى تحميل الثنائية.

هناك أعمال جارية ، ومع ذلك ، من أجل رفع بعض برامج تشغيل الجهاز في وضع المستخدم ، يمكنك مشاهدة مقابلة هنا مع بيتر فيلاند من UDMF (المستخدم تشغيل وضع إطار) فريق.

برامج تشغيل وضع المستخدم سيكون أكثر مناسبة تمكن العمل ، ولكن عليك أن جوجل قليلا لمعرفة ما إذا كان C#.صافي سوف تكون معتمدة مباشرة.كل ما أعرفه هو أن نواة مستوى السائقين غير قابلة للتنفيذ إلا في C#.

ومع ذلك ، يمكنك على الأرجح إجراء C/C++ السائق و C# خدمة (أو ما شابه) و السائق التحدث إلى التعليمات البرمجية المدارة, إذا كان لديك على الاطلاق لكتابة الكثير من التعليمات البرمجية في C#.

نصائح أخرى

هذا سوف تساعدك في هذه الطريقة: برنامج تشغيل Windows طقم

انها ليست الإجابة المباشرة على سؤالك ولكن إذا كنت مهتما قد تبدو في التفرد المشروع.

يمكن لأي شخص التحدث موثوقية وسلامة تشغيل برنامج C# أقرب إلى الحلقة 0 من شأنه عادة أن يكون الحال ؟

C# يعمل في .صافي ظاهري لا يمكنك نقل أي أنها أقرب إلى الحلقة 0 من VM هو ، VM يعمل في userspace.

إذا كنت على استعداد أن يكون الذهاب في الملكية الإطار ، Jungo هو WinDriver أدوات يدعم برنامج تشغيل وضع المستخدم التنمية (حتى في التعليمات البرمجية المدارة) USB PCI و PCI-E الأجهزة.

مايكروسوفت لديها عدد من المشاريع البحثية في مجال وجود تمكنت رمز نظام التشغيل ، وبعبارة أخرى قتل مع Win32 API.

ترى ماري جو فولي المادة: إعادة بناء إرث

كتابة برامج تشغيل الجهاز في .صافي لا معنى الإصدارات الحالية من ويندوز.

<speculation>
الشائعات هي أن مايكروسوفت تستثمر الكثير من المال في تحقيق التفرد إلى المستوى التالي.مجرد إلقاء نظرة على ميدوري.ولكن هذا في 2015+
</speculation>

إذا كنت أتذكر بشكل صحيح ، دوكان المشروع هو وضع المستخدم ملف نظام التشغيل الذي يسمح أيضا .صافي رمز ليتم تنفيذها من قبل نظام التشغيل: https://github.com/dokan-dev/dokan-dotnet.

لذا أنت يمكن أن تتطور C# "السائق" (وضع المستخدم التطبيق حقا) ، ثم دعا/تحتج C++ برنامج تشغيل وضع kernel.Kernel-سائق يمكن أن تمر ببساطة كل شيء جنبا إلى جنب دون التلاعب في البيانات بمثابة المجمع بسيطة.
وغني عن الذكر أنه غير آمنة جدا و كنت على الأرجح في نهاية مع الموت الزرقاء (حاولت).


أقل ما يقال ذات الصلة:

على الكون المشروع هو مفتوح المصدر نظام التشغيل التي تم تطويرها في C# و يعمل
"(kernel) السائقين" مستوى المستخدم التطبيقات مكتوبة تماما في C#/F#/VB.NET/...

على الرغم من أن هذه من الناحية الفنية على مستوى النواة السائقين ، OS لم يعد ويندوز ولكن الخاصة بك, لذا أعتقد أن هذا هو الجواب الصحيح ......

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top