NDISwrapper

NDISwrapper هو برنامج مجاني لتغليف برامج تشغيل الأجهزة ، يُمكّن من استخدام برامج تشغيل أجهزة الشبكة الخاصة بنظام التشغيل Windows XP (مثل بطاقات PCI ، ومودمات USB ، وأجهزة التوجيه ) على أنظمة التشغيل Linux. يعمل NDISwrapper من خلال تطبيق نواة Windows وواجهات برمجة تطبيقات NDIS ، وربط برامج تشغيل شبكة Windows ديناميكيًا بهذا التطبيق. ونتيجةً لذلك، فهو يعمل فقط على الأنظمة التي تعتمد على معمارية مجموعة التعليمات التي يدعمها Windows، وهي IA-32 و x86-64 .

لا تتوفر برامج التشغيل الأصلية لبعض محولات الشبكة على نظام لينكس، حيث يحتفظ بعض المصنّعين بواجهات خاصة بهم ولا يطورون برامج تشغيل متعددة المنصات. يتيح برنامج NDISwrapper استخدام برامج تشغيل ويندوز، المتوفرة لجميع محولات الشبكة الحديثة لأجهزة الكمبيوتر تقريبًا.

يستخدم

تتألف العملية من ثلاث خطوات: إنشاء برنامج تشغيل لنظام لينكس، وتثبيته، واستخدامه. يتكون برنامج NDISwrapper من جزأين رئيسيين: أداة سطر أوامر تُستخدم أثناء التثبيت، ونظام فرعي لنظام ويندوز يُستخدم عندما يستدعي أحد التطبيقات النظام الفرعي لشبكة الواي فاي .

بما أن نتيجة تثبيت NDISwrapper هي إنشاء برنامج تشغيل لنظام Linux لتمكين تطبيقات Linux من العمل معه، فإن أول إجراء يقوم به المستخدم هو "تجميع" ملفين أو أكثر من ملفات Windows، بالإضافة إلى نسخة NDISwrapper من Windows DDK، في وحدة نواة Linux. يتم ذلك باستخدام أداة تُسمى "ndiswrapper". بعد ذلك، يتم تثبيت برنامج تشغيل Linux الناتج (عادةً يدويًا) في نظام التشغيل. يمكن لتطبيق Linux بعد ذلك إرسال طلب إلى برنامج التشغيل هذا، الذي يقوم تلقائيًا بإجراء التعديلات اللازمة لاستدعاء برنامج تشغيل Windows وDDK الخاص به.

لإتمام عملية "التجميع"، يتطلب برنامج NDISwrapper على الأقل ملفي ".inf" و ".sys" اللذين يُرفقان عادةً مع برنامج تشغيل Windows. على سبيل المثال، إذا كان اسم برنامج التشغيل "mydriver"، وكان الملفان هما mydriver.inf و mydriver.sys، وكانت قيمة vendorid:productid هي 0000:0000، فإن NDISwrapper يُثبّت برنامج التشغيل في المسار /etc/ndiswrapper/mydriver/ . يحتوي هذا المجلد على ثلاثة ملفات:

  • 0000:0000.conf ، الذي يحتوي على معلومات مستخرجة من ملف inf
  • mydriver.inf (ملف inf الأصلي)
  • ملف تعريف التشغيل mydriver.sys

واجهات المستخدم الرسومية

واجهة Ndisgtk الرسومية

توجد واجهات رسومية أمامية لبرنامج NDISwrapper، مثل Ndisgtk و NdisConfig، والتي تسمح بتثبيت NDISwrapper باستخدام واجهة مستخدم رسومية بدلاً من أوامر وحدة التحكم.

بنيان

يُمكّن برنامج NDISwrapper نظامًا شبيهًا بنظام يونكس من استخدام برامج تشغيل ويندوز من نوع NDIS وWiFi. وقد كان مفيدًا في وقت لم تكن فيه برامج تشغيل لينكس لبطاقات Wi-Fi الشائعة متوفرة. ويتكون من:

  • برنامج تشغيل NDIS، وهو نوع من التراكب لبرامج تشغيل أجهزة الإيثرنت .
  • مدير شبكة Wi-Fi، للتحكم في جزء الراديو والأمان في بطاقة Wi-Fi. وهو يوفر واجهة "توسيع لاسلكي".
  • مدير USB ومدير PnP لتمكين استخدام بطاقات Wi-Fi المدمجة في ذاكرة USB. يتكون مدير USB من جزأين: أولهما تطبيق USBD صغير (مكدس USB)، ثم برنامج تشغيل USB بسيط من نوع Windows Driver Model (WDM) يتكون بدوره من جزأين: يستقبل الجزء الأمامي طلبات من مكدس NDISwrapper USB (في الواقع، من طلبات واردة من برنامج تشغيل Windows الأصلي كانت مخصصة في الأصل لمكدس USB الخاص بنظام Windows)، بينما يستخدم الجزء الخلفي مكدس USB الخاص بنظام Linux.
  • برنامج Ntoskrnl بسيط يحاكي DDK لـ:
    • إدارة المكالمات من برنامج تشغيل ويندوز.
    • إدارة IRP لبرنامج تشغيل Windows (WDM فقط في الوقت الحالي)
    • إدارة برامج تشغيل المرشحات بطريقة مبسطة
    • تحميل/إلغاء تحميل برامج تشغيل ويندوز
  • برنامج وسيط يحول استدعاءات لينكس إلى ويندوز والعكس، كما يدير النتائج ورموز الأخطاء.

كيف يعمل؟

يستخدم برنامج Ndiswrapper ملفات INF الخاصة بنظام التشغيل Windows . [ 1 ]

عندما يستدعي تطبيق لينكس جهازًا مسجلاً في لينكس كجهاز NDISwrapper، يحدد NDISwrapper برنامج تشغيل ويندوز المستهدف. ثم يحول استعلام لينكس إلى لغة ويندوز، ويستدعي برنامج تشغيل ويندوز، وينتظر النتيجة، ثم يترجمها إلى لغة لينكس، ويرسل النتيجة مرة أخرى إلى تطبيق لينكس. من الممكن لبرنامج تشغيل لينكس (NDISwrapper هو برنامج تشغيل لينكس) استدعاء برنامج تشغيل ويندوز لأنهما يعملان في نفس مساحة العناوين (نفس مساحة عناوين نواة لينكس). إذا كان برنامج تشغيل ويندوز يتكون من برامج تشغيل متعددة الطبقات (على سبيل المثال، برنامج إيثرنت فوق برنامج USB)، فسيتم استدعاء برنامج تشغيل الطبقة العليا، وستقوم هذه الطبقة العليا بإنشاء استدعاءات جديدة (IRP في لغة ويندوز) عن طريق استدعاء "mini ntoskrnl". لذلك، يجب أن يكون "mini ntoskrnl" على دراية بوجود برامج تشغيل أخرى، ويجب أن يكون قد سجلها مسبقًا في قاعدة بياناته الداخلية من خلال قراءة ملفات ".inf" الخاصة بويندوز.

برامج مماثلة

القيود

  • يعتمد برنامج NDISwrapper على "الامتدادات اللاسلكية" لكبار السن لتمكين التطبيقات من الوصول إلى شبكة Wi-Fi.
  • بما أن برنامج NDISwrapper يعتمد على برامج تشغيل ويندوز، فإنه يدعم فقط معماريتي i386 و x86_64 . [ 5 ]
  • لا يدعم برنامج NDISwrapper معيار NDIS 6 ( إصدار ويندوز فيستا ) حتى الآن، مما يحد من برامج التشغيل المتاحة لنظام ويندوز إكس بي. [ 6 ] اعتبارًا من أكتوبر 2013 [ 7 ] وقد تم تطوير فرع برمجي في موقع المشروع منذ عام 2006، [ 8 ] ولكن طلب إضافة ميزة من عام 2009 لم يتم تخصيصه.
على الرغم من أن هذا لا يُمثل مشكلة كبيرة لبنية x86 نظرًا لشعبية نظام التشغيل Windows XP IA-32 ، إلا أن العديد من الشركات المصنعة تُفضل إصدار برامج تشغيل 64 بت لنظام Windows Vista فقط ، مما يعني أن أنظمة Linux التي تستخدم بنية x86-64 غير قادرة على استخدام أجهزة الشبكات هذه (فهي لا تستطيع استخدام برنامج تشغيل NDIS5 الخاص بنظام XP IA-32 لأنها أنظمة 64 بت، ولا برامج تشغيل NDIS6 64 بت لأنها لا تدعم NDIS6). لا يزال من الممكن استخدام برامج تشغيل Windows XP 64 بت التي تُنفذ NDIS5، [ 9 ] إلا أن عدد برامج التشغيل المتاحة لنظام XP 64 (NDIS5/64 بت) أقل من عددها لنظام XP 32 (NDIS5/32 بت). 
  • منذ عام 2006، أصبحت معظم برامج تشغيل ويندوز متوافقة مع معيار Windows Driver Foundation (WDF)، وهو معيار لا يدعمه برنامج NDISWrapper. وهذا يجعل NDISWrapper برنامجًا قديمًا، لأنه يدعم فقط إطار عمل برامج التشغيل WDM السابق.

انظر أيضاً

مراجع

  1. "ما هي توزيعة لينكس التي تعمل مباشرة مع جهاز D-link usb wifi DWL-g122 rev.c1 (Rt73)؟؟" .
  2. بيل بول (24 يناير 2004). "مشروع الشر: الشر مستمر" . freebsd-current (قائمة بريدية). مؤرشف من الأصل في 2 يوليو 2017. تم الاطلاع عليه في 9 سبتمبر 2014 .
  3. "sys/dev/netif/ndis/" . مرجع المستخدم المتميز لنظام BSD . نظام DragonFly BSD . 2018-12-08 . تم الاطلاع عليه بتاريخ 2019-03-04 .
  4. NetBSD-SoC: نقل برنامج تشغيل شبكة NDIS الخاص بنظام FreeBSD إلى NetBSD
  5. "Sourceforge.net: الأسئلة الشائعة - ndiswrapper" . ndiswrapper.sourceforge.net. 2010-01-20 . تم الاطلاع عليه بتاريخ 2011-08-05 .
  6. "SourceForge.net: الأسئلة الشائعة حول ndiswrapper" . Ndiswrapper.sourceforge.net. 2010-01-20 . تم الاطلاع عليه بتاريخ 2024-06-28 .
  7. "SourceForge.net: فرع كود ndisv6" . Ndiswrapper.sourceforge.net. 2013-11-01 . تم الاطلاع عليه بتاريخ 2013-11-01 .
  8. "SourceForge.net: طلب إضافة ميزة ndiswrapper" . Ndiswrapper.sourceforge.net. 12 أبريل 2009. تاريخ الاسترجاع: 28 يوليو 2013 .
  9. "Ndiswrapper / مناقشة / مساعدة: تعذر تحميل برنامج التشغيل netr7364" .