منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
دورة منفذ الطابعة: الدرس الرابع-برمجة منافذ الكومبيوتر - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113)
+---- قسم : سلسلة التحكم بالعالم الخارجي عن طريق الكومبيوتر (http://vb4arb.com/vb/forumdisplay.php?fid=134)
+---- الموضوع : دورة منفذ الطابعة: الدرس الرابع-برمجة منافذ الكومبيوتر (/showthread.php?tid=4323)



دورة منفذ الطابعة: الدرس الرابع-برمجة منافذ الكومبيوتر - Ahmad Jawad - 22-09-12

بسم الله الرحمن الرحيم .


السلام عليكم ورحمة الله وبركاته .

كنا في الدرس السابق قد تعلمنا كيفية كتابة الكود ، في هذا الدرس سنتعلم كيف يتم تنفيذ هذه الأوامر فعلياً قبل أن ننطلق في الدرس القادم في عالم الهاردوير .

يتم التعامل مع المنافذ في الكومبيوتر أو مع الهاردوير عموماً مروراً بأربعة مراحل :

1- Device Driver : وهو عبارة عن برنامج خاص بالتعامل مع هاردوير معين يتم انتاجه من قبل الشركة المصنعة لهذا الجهاز ، حيث أن الشركة المصنعة للطابعة تقوم مثلاً بعمل البرنامج الخاص بالطابعة بحيث يحتوي على مجموعة من الأوامر مثل : Print Page ، Print Pages ... الخ ، حيث يقوم المبرمج أو نظام التشغيل بالتعامل مع هذه الأوامر فقط دون الدخول في تفاصيل كيفية عمل هذه الأوامر والتي تهتم بها فقط الشركة المصنعة .

2- Operating System : في اصدارات قديمة من نظام التشغيل Windows كان يمكن للمبرمج التعامل مباشرة مع منافذ الكومبيوتر أو تحديداً مع ال Device Driver مباشرة ، وكان هذا في DOS و Window 9x حيث كان الموضوع يقتر على مجموعة من ال API's للتعامل مباشرة ، ولكن بعد هجوم CIH عام 98 الشهير بدأت نظم التشغيل تحمي الهاردوير عن طريق عدم السماح لأي شخص بالتعامل معه مباشرة .
مع الاصدارت التالية تم فقط تعريف نظامين للتعامل مع الهاردوير ، 0 و 3 ، حيث يقوم المبرمج بالعمل في 3 في حين يعمل الهاردوير وال Kernel في ال 0 أو ما يعرف باسم الحلقة 0 - ring 0 - حيث لا يمكن للمستخدم الوصول مباشرة إلى الهاردوير إلا عن طريق kernel وهو المرحلة الثالثة من عملنا .

3- Kernel Mode Driver : وهو برنامج مخصص يمكنه نقل البيانات من وإلى ال Device Driver ، ويتم استخدامه في نظم التشغيل التي لا تسمح بالوصول المباشر إلى الهاردوير .

أشهر أنواع ال KMD كمبرمج ويندوز هي inpout32.dll - ارفقناها في الدرس السابق- والتي تحتوي على جزء منها Kernel Mode Driver والجزء الآخر خاص بدول API العادية التي تحتويها المكتبة .

4- Programming : المرحلة الأخيرة من هذه العملية ، حيث يتم من خلالها عمل البرنامج الخاص بالتعامل مع المستخدم من جهة ومع الهاردوير من جهة أخرى ، لن تفرق لغات البرمجة كثيراً في هذه النقطة ، في الدرس السابق شرحنا كيفية التعامل من خلال C#,VB.net وفيجوال بيسك 6 ، هنا نضيف انه في ال Java سوف نستخدم Javax.comm.parallelport ، في ال PHP سوف نستخدم إحدى السيرفس والتي تسمى lptout ،بخصوص C++ فهي مثلها مثل C# تحت الويندوز ، أما C++ في نظام التشغيل لينوكس فسوف نستخدم ioperm الموجودة في <asm/io.h> .

بنهاية هذا الدرس أتمنى أن أكون متأكداً أن استمر بهذه الطريقة ، في الدروس القادمة سوف نبدأ في الهاردوير ويهمني أن اكون متأكداً من فهم وتطبيق الدرس الثالث على وجه التحديد ، وباقي الدروس عموماً حتى يمكننا المتابعة .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .