![]() |
|
دورة منفذ الطابعة: الدرس الرابع-برمجة منافذ الكومبيوتر - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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> . بنهاية هذا الدرس أتمنى أن أكون متأكداً أن استمر بهذه الطريقة ، في الدروس القادمة سوف نبدأ في الهاردوير ويهمني أن اكون متأكداً من فهم وتطبيق الدرس الثالث على وجه التحديد ، وباقي الدروس عموماً حتى يمكننا المتابعة . والله الموفق ... والسلام عليكم ورحمة الله وبركاته . |