برنامج تشغيل الجهاز
في الحوسبة ، برنامج تشغيل الجهاز هو برنامج كمبيوتر يعمل أو يتحكم في نوع معين من الأجهزة المتصلة بجهاز كمبيوتر أو جهاز آلي . [1] يوفر برنامج التشغيل واجهة برمجية للأجهزة ، مما يمكّن أنظمة التشغيل وبرامج الكمبيوتر الأخرى من الوصول إلى وظائف الأجهزة دون الحاجة إلى معرفة التفاصيل الدقيقة حول الأجهزة المستخدمة .
يتصل السائق بالجهاز من خلال ناقل الكمبيوتر أو نظام الاتصالات الفرعي الذي يتصل به الجهاز. عندما يستدعي برنامج استدعاء إجراءً روتينيًا في برنامج التشغيل ، يصدر السائق أوامر للجهاز (يقودها). بمجرد أن يرسل الجهاز البيانات مرة أخرى إلى برنامج التشغيل ، يمكن للسائق استدعاء إجراءات في برنامج الاتصال الأصلي.
تعتمد برامج التشغيل على الأجهزة وتختص بنظام التشغيل. وهي توفر عادةً معالجة المقاطعة المطلوبة لأي واجهة أجهزة ضرورية غير متزامنة تعتمد على الوقت. [2]
الغرض
الغرض الرئيسي من برامج تشغيل الجهاز هو توفير التجريد من خلال العمل كمترجم بين الجهاز والتطبيقات أو أنظمة التشغيل التي تستخدمه. [1] يمكن للمبرمجين كتابة كود تطبيق عالي المستوى بشكل مستقل عن أي جهاز محدد يستخدمه المستخدم النهائي. على سبيل المثال ، قد يكون لتطبيق عالي المستوى للتفاعل مع منفذ تسلسلي وظيفتان ببساطة لـ "إرسال البيانات" و "استقبال البيانات". في المستوى الأدنى ، يقوم برنامج تشغيل الجهاز الذي يقوم بتنفيذ هذه الوظائف بالاتصال بوحدة التحكم في المنفذ التسلسلي المعين المثبت على كمبيوتر المستخدم. الأوامر اللازمة للتحكم في 16550 UART تختلف كثيرًا عن الأوامر اللازمة للتحكم في FTDIمحول المنفذ التسلسلي ، ولكن كل برنامج تشغيل جهاز خاص بالأجهزة يلخص هذه التفاصيل في نفس واجهة البرنامج (أو ما شابه).
تطوير
تتطلب كتابة برنامج تشغيل الجهاز فهمًا عميقًا لكيفية عمل الأجهزة والبرامج لوظيفة نظام أساسي معينة . نظرًا لأن السائقين يحتاجون إلى وصول منخفض المستوى إلى وظائف الأجهزة من أجل العمل ، يعمل السائقون عادةً في بيئة ذات امتيازات عالية ويمكن أن يتسببوا في حدوث مشكلات تشغيلية للنظام إذا حدث خطأ ما. في المقابل ، يمكن إيقاف معظم البرامج على مستوى المستخدم في أنظمة التشغيل الحديثة دون التأثير بشكل كبير على بقية النظام. حتى السائقين الذين ينفذون في وضع المستخدم يمكن أن يعطلوا النظام إذا تمت برمجة الجهاز بشكل خاطئ . هذه العوامل تجعل تشخيص المشاكل أكثر صعوبة وخطورة. [3]
وبالتالي تقع مهمة كتابة برامج التشغيل عادةً على عاتق مهندسي البرمجيات أو مهندسي الكمبيوتر الذين يعملون في شركات تطوير الأجهزة. هذا لأن لديهم معلومات أفضل من معظم الغرباء حول تصميم أجهزتهم. علاوة على ذلك ، كان من المعتقد تقليديًا أن من مصلحة الشركة المصنعة للأجهزة ضمان قدرة عملائها على استخدام أجهزتهم بالطريقة المثلى. عادةً ما يتم كتابة برنامج تشغيل الجهاز المنطقي (LDD) بواسطة بائع نظام التشغيل ، بينما يتم تنفيذ برنامج تشغيل الجهاز المادي (PDD) بواسطة بائع الجهاز. ومع ذلك ، في السنوات الأخيرة ، كتب غير البائعين العديد من برامج تشغيل الأجهزة للأجهزة الاحتكارية ، وذلك بشكل أساسي للاستخدام مع المصدر المجاني والمفتوح أنظمة التشغيل . في مثل هذه الحالات ، من المهم أن توفر الشركة المصنعة للجهاز معلومات حول كيفية اتصال الجهاز. على الرغم من أنه يمكن بدلاً من ذلك تعلم هذه المعلومات عن طريق الهندسة العكسية ، إلا أن هذا الأمر أكثر صعوبة مع الأجهزة مقارنة بالبرنامج.
حاولت Microsoft تقليل عدم استقرار النظام بسبب سوء كتابة برامج تشغيل الأجهزة عن طريق إنشاء إطار عمل جديد لتطوير برنامج التشغيل ، يسمى Windows Driver Frameworks (WDF). يتضمن ذلك إطار عمل برنامج تشغيل وضع المستخدم (UMDF) الذي يشجع على تطوير أنواع معينة من برامج التشغيل - بشكل أساسي تلك التي تنفذ بروتوكولًا قائمًا على الرسائل للتواصل مع أجهزتها - كبرامج تشغيل في وضع المستخدم. إذا تعطلت برامج التشغيل هذه ، فإنها لا تسبب عدم استقرار النظام. إطار عمل برنامج تشغيل Kernel-Modeيستمر نموذج (KMDF) في السماح بتطوير برامج تشغيل الأجهزة ذات الوضع kernel ، ولكنه يحاول توفير تطبيقات قياسية للوظائف المعروف أنها تسبب مشكلات ، بما في ذلك إلغاء عمليات الإدخال / الإخراج ، وإدارة الطاقة ، ودعم جهاز التوصيل والتشغيل.
لدى Apple إطار عمل مفتوح المصدر لتطوير برامج التشغيل على macOS ، يسمى I / O Kit.
في بيئات Linux ، يمكن للمبرمجين إنشاء برامج تشغيل للأجهزة كأجزاء من kernel ، بشكل منفصل كوحدات قابلة للتحميل ، أو كبرامج تشغيل في وضع المستخدم (لأنواع معينة من الأجهزة حيث توجد واجهات kernel ، مثل أجهزة USB). يتضمن Makedev قائمة بالأجهزة في Linux ، بما في ذلك ttyS (طرفي) ، و lp ( منفذ متوازي ) ، و hd (قرص) ، وحلقة ، وصوت (بما في ذلك جهاز مزج الصوت ، وجهاز التسلسل ، و dsp ، والصوت). [4]
يمكن أن تحتوي ملفات Microsoft Windows .sys وملفات Linux .ko على برامج تشغيل الأجهزة القابلة للتحميل. تتمثل ميزة برامج تشغيل الأجهزة القابلة للتحميل في أنه لا يمكن تحميلها إلا عند الضرورة ثم تفريغها ، وبالتالي توفير ذاكرة kernel.
وضع Kernel مقابل وضع المستخدم
يمكن تشغيل برامج تشغيل الأجهزة ، خاصة على أنظمة Microsoft Windows الحديثة ، في وضع kernel ( Ring 0 على x86 CPUs ) أو في وضع المستخدم (Ring 3 على x86 CPUs). [5] تتمثل الفائدة الأساسية لتشغيل برنامج التشغيل في وضع المستخدم في تحسين الاستقرار ، حيث لا يمكن لبرنامج تشغيل الجهاز المكتوب بشكل سيئ في وضع المستخدم تعطل النظام عن طريق الكتابة فوق ذاكرة kernel. [6] من ناحية أخرى ، عادةً ما تفرض انتقالات وضع المستخدم / kernel عبئًا كبيرًا على الأداء ، مما يجعل محركات وضع kernel مفضلة للشبكات ذات زمن الوصول المنخفض. [تحديث]
يمكن الوصول إلى مساحة Kernel بواسطة وحدة المستخدم فقط من خلال استخدام استدعاءات النظام. تعد برامج المستخدم النهائي مثل غلاف UNIX أو التطبيقات الأخرى المستندة إلى واجهة المستخدم الرسومية جزءًا من مساحة المستخدم. تتفاعل هذه التطبيقات مع الأجهزة من خلال وظائف تدعم kernel.
التطبيقات
نظرًا لتنوع [تحديث]الأجهزة وأنظمة التشغيل الحديثة ، تعمل برامج التشغيل في العديد من البيئات المختلفة. [7] قد يتفاعل السائقون مع:
- طابعات
- محولات الفيديو
- بطاقات الشبكة
- كروت صوت
- الحافلات المحلية من مختلف الأنواع - على وجه الخصوص ، لإتقان الحافلات على الأنظمة الحديثة
- نواقل الإدخال / الإخراج ذات النطاق الترددي المنخفض من مختلف الأنواع (لأجهزة التأشير مثل الماوس ولوحات المفاتيح وما إلى ذلك)
- أجهزة تخزين الكمبيوتر مثل القرص الصلب والأقراص المضغوطة وناقلات الأقراص المرنة ( ATA و SATA و SCSI و SAS )
- تنفيذ الدعم لأنظمة الملفات المختلفة
- ماسحات الصور
- الكاميرات الرقمية
- موالفات التلفزيون الرقمي للأرض
- محولات جهاز إرسال واستقبال اتصالات التردد اللاسلكي لشبكات المنطقة الشخصية اللاسلكية كما هو مستخدم للاتصالات اللاسلكية قصيرة المدى ومنخفضة السعر في أتمتة المنزل (مثل Bluetooth Low Energy (BLE) و Thread و ZigBee و Z-Wave ).
- محولات IrDA
تتضمن المستويات الشائعة للتجريد لبرامج تشغيل الأجهزة ما يلي:
- للأجهزة:
- التواصل مباشرة
- الكتابة إلى أو القراءة من سجل التحكم في الجهاز
- استخدام واجهة ذات مستوى أعلى (مثل Video BIOS )
- استخدام برنامج تشغيل جهاز آخر ذي مستوى منخفض (على سبيل المثال ، برامج تشغيل نظام الملفات باستخدام برامج تشغيل الأقراص)
- محاكاة العمل مع الأجهزة أثناء القيام بشيء مختلف تمامًا [8]
- بالنسبة للبرنامج:
- السماح لنظام التشغيل بالوصول المباشر إلى موارد الأجهزة
- تنفيذ الأوليات فقط
- تنفيذ واجهة لبرامج غير مشغلة (مثل TWAIN )
- تنفيذ لغة ما ، أحيانًا عالية المستوى (مثل PostScript )
لذا ، غالبًا ما يكون اختيار برامج تشغيل الأجهزة الصحيحة وتثبيتها لأجهزة معينة مكونًا رئيسيًا في تكوين نظام الكمبيوتر. [9]
برامج تشغيل الأجهزة الافتراضية
تمثل برامج تشغيل الأجهزة الظاهرية نوعًا معينًا من برامج تشغيل الأجهزة. يتم استخدامها لمحاكاة جهاز ، خاصة في بيئات المحاكاة الافتراضية ، على سبيل المثال عند تشغيل برنامج DOS على كمبيوتر Microsoft Windows أو عند تشغيل نظام تشغيل ضيف ، على سبيل المثال ، مضيف Xen . بدلاً من تمكين نظام التشغيل الضيف من الحوار مع الأجهزة ، تأخذ برامج تشغيل الأجهزة الافتراضية الدور المعاكس وتحاكي قطعة من الأجهزة ، بحيث يعمل نظام التشغيل الضيف وبرامج التشغيل الخاصة به داخل جهاز افتراضييمكن أن يكون لديهم وهم الوصول إلى أجهزة حقيقية. يتم توجيه محاولات نظام التشغيل الضيف للوصول إلى الأجهزة إلى برنامج تشغيل الجهاز الظاهري في نظام التشغيل المضيف ، على سبيل المثال ، استدعاءات الوظائف . يمكن لبرنامج تشغيل الجهاز الظاهري أيضًا إرسال أحداث محاكاة على مستوى المعالج مثل المقاطعات إلى الجهاز الظاهري.
قد تعمل الأجهزة الافتراضية أيضًا في بيئة غير افتراضية. على سبيل المثال ، يتم استخدام محول شبكة ظاهرية مع شبكة خاصة افتراضية ، بينما يتم استخدام جهاز قرص افتراضي مع بروتوكول iSCSI . يمكن أن يكون برنامج Daemon Tools مثالًا جيدًا على برامج تشغيل الأجهزة الافتراضية .
هناك العديد من المتغيرات لبرامج تشغيل الأجهزة الظاهرية ، مثل VxDs و VLMs و VDDs.
برامج تشغيل مفتوحة المصدر
- برنامج تشغيل جهاز الرسومات
- الطابعات: CUPS
- RAIDs: CCISS [10] (واجهة أوامر Compaq لدعم SCSI-3 [11] )
- الماسحات الضوئية: SANE
- الفيديو: Vidix ، Direct Rendering Infrastructure
أوصاف Solaris لبرامج تشغيل الأجهزة الشائعة الاستخدام:
- fas: جهاز تحكم SCSI سريع / واسع
- hme: إيثرنت سريع (10/100 ميجابت / ثانية)
- isp: وحدات تحكم SCSI التفاضلية وبطاقة SunSwift
- glm: (وحدة ارتباط جيجابود [12] ) وحدات تحكم UltraSCSI
- scsi: أجهزة الكمبيوتر الصغيرة ذات الواجهة التسلسلية (SCSI)
- sf: soc + أو حلقة تحكيم القناة الليفية الاجتماعية (FCAL)
- soc: وحدات تحكم صفيف التخزين SPARC (SSA) وجهاز التحكم
- اجتماعي: وحدات التحكم الضوئية التسلسلية لـ FCAL (soc +)
واجهات برمجة التطبيقات
- Windows Display Driver Model (WDDM) - بنية برنامج تشغيل عرض الرسومات لنظام التشغيل Windows Vista والإصدارات الأحدث.
- نموذج الصوت الموحد (UAM) [13]
- مؤسسة برنامج تشغيل Windows (WDF)
- الأجهزة التعريفية المكونة (DCH) - برنامج تشغيل النظام الأساسي العالمي لـ Windows [14]
- طراز برنامج تشغيل Windows (WDM)
- مواصفات واجهة برنامج تشغيل الشبكة (NDIS) - واجهة برمجة تطبيقات قياسية لتشغيل بطاقة الشبكة
- هندسة صوت Linux المتقدمة (ALSA) - واجهة مشغل الصوت القياسية في Linux
- Scanner Access Now Easy (SANE) - واجهة المجال العام لأجهزة الماسح الضوئي للصور النقطية
- نظام الملفات القابل للتثبيت (IFS) - واجهة برمجة تطبيقات لنظام الملفات لنظام التشغيل IBM OS / 2 و Microsoft Windows NT
- Open Data-Link Interface (ODI) - واجهة برمجة تطبيقات بطاقة الشبكة تشبه NDIS
- واجهة برنامج تشغيل موحدة (UDI) - مشروع واجهة برنامج تشغيل عبر الأنظمة الأساسية
- Dynax Driver Framework (dxd) - إطار عمل برنامج تشغيل متعدد المنصات مفتوح المصدر C ++ لـ KMDF و IOKit [15]
المعرفات
يتم تحديد الجهاز الموجود في ناقل PCI أو USB بواسطة معرفين يتكون كل منهما من 4 أرقام سداسية عشرية . يحدد معرف البائع بائع الجهاز. يحدد معرف الجهاز جهازًا معينًا من الشركة المصنعة / البائع.
غالبًا ما يحتوي جهاز PCI على زوج معرف للشريحة الرئيسية للجهاز ، وأيضًا زوج معرف النظام الفرعي الذي يحدد البائع ، والذي قد يكون مختلفًا عن الشركة المصنعة للرقاقة.
انظر أيضا
المراجع
- ^ أ ب "ما هو كل برنامج تشغيل الجهاز؟" . WhatIs.com . TechTarget. مؤرشفة من الأصلي في 13 فبراير 2021 . تم الاسترجاع 19 مارس 2018 .
- ^ EMC Education Services (2010). تخزين المعلومات وإدارتها: تخزين المعلومات الرقمية وإدارتها وحمايتها . جون وايلي وأولاده. رقم ISBN 9780470618332. مؤرشفة من الأصلي في 2021-02-13 . تم الاسترجاع 2020-11-10 .
- ^ بورك ، تيموثي (1995). برامج تشغيل أجهزة الكتابة: تعليمي ومرجع . الصحافة الرقمية. رقم ISBN 9781555581411. مؤرشفة من الأصلي في 2021-01-26 . تم الاسترجاع 2016-08-05 .
- ^ "MAKEDEV - Linux Command - Unix Command" . Linux.about.com. 2009-09-11. مؤرشفة من الأصلي في 2009-04-30 . تم الاسترجاع 2009-09-17 .
- ^ "وضع المستخدم مقابل برامج تشغيل وضع Kernel" . مايكروسوفت . 2003-03-01. مؤرشفة من الأصلي في 2008-03-09 . تم الاسترجاع 2008-03-04 .
- ^ "مقدمة إلى إطار عمل برنامج تشغيل وضع المستخدم (UMDF)" . مايكروسوفت . 2006-10-10. مؤرشفة من الأصلي في 2010-01-07 . تم الاسترجاع 2008-03-04 .
- ^ ديبورا مورلي (2009). فهم أجهزة الكمبيوتر 2009: اليوم وغدًا . سينجاج ليرنينج. رقم ISBN 9780324830132. مؤرشفة من الأصلي في 2021-06-09 . تم الاسترجاع 2020-11-10 .
- ^ ملحقات الكمبيوتر وواجهات . المنشورات الفنية بيون. يناير 2008. ص.5-8. رقم ISBN 978-8184314748. تم الاسترجاع 2016/05/03 .
- ^ "ما هي برامج تشغيل الأجهزة ولماذا نحتاج إليها؟" . Drivers.com . 17 أبريل 2015. مؤرشفة من الأصلي في 20 من تشرين الثاني 2016 . تم الاسترجاع 19 مارس ، 2018 .
- ^ "CCISS" . المصدر _ 2010. مؤرشفة من الأصلي في 2010-08-21 . تم الاسترجاع 2010-08-11 .
برامج تشغيل لوحدات تحكم HP Smart Array (كومباك سابقًا) التي توفر إمكانية RAID للأجهزة.
- ^ راسل ، ستيف. وآخرون. (2003-10-21). الاختصارات والمختصرات . توحيد الخادم مع IBM eserver xSeries 440 و VMware ESX Serve . منظمة آي بي إم الدولية للدعم الفني. ص. 207. رقم ISBN 0-7384-2684-9. تم الاسترجاع 2011-08-14 .[ رابط معطل دائم ]
- ^ "براءة الاختراع الأمريكية 5969841 - وحدة ارتباط Gigabaud مع إشارة اكتشاف الطاقة المستقبلة" . شركة PatentStorm LLC. مؤرشفة من الأصلي في 12 يونيو 2011 . تم الاسترجاع 2009-09-08 .
يتم توفير وحدة Gigabaud Link (GLM) المحسنة لإجراء عمليات نقل البيانات ثنائية الاتجاه بين جهاز مضيف ووسيط نقل تسلسلي.
- ^ "Unified Audio Model (Windows CE 5.0)" . msdn.microsoft.com . مؤرشفة من الأصلي في 22 يونيو 2017 . تم الاسترجاع 2016/09/19 .
- ^ ديل الولايات المتحدة. "ما هي برامج تشغيل DCH ولماذا تحتاج إلى معرفتها؟ | Dell US" . www.dell.com . تم الاسترجاع 2020/10/29 .
- ^ "dxd - dynax driver framework: Main Page" . dxd.dynax.at . مؤرشفة من الأصلي في 29 مايو 2016 . تم الاسترجاع 2016/09/19 .