/Into the Low Level : V86M and and real mode support (0x02)

Into the Low Level : V86M and and real mode support (0x02)

استكمالا من المقالة السابقة والتي كنا قد تحدثنا خلالها عن طرق عنونة الذاكرة يأتي سؤال قد يكون تردى إلى أذهانكم أثناء قرائتكم المقالة الأولى وهو ..

إن كان نظام التشغيل ويندوز حول طريقة عنونة الذاكرة الخاصة به من Real Mode الى Protected Mode

هذا يعني أنه لايمكن لإصدارات ويندوز ألا تعتمد على NT أن تشغل البرمجيات التي تم برمجتها

من أجل الإصدارات السابقة (Windows 3.1 – Windows 9x..etc ) والتي كانت تعتمد في عنونة الذاكرة على الطريقة الأولى ،

مما يعني أن البرمجيات السابقة مصيرها هو سلة النفايات..فكيف هي الآن لازالت تعمل على الإصدارات من الويندوز التي تعتمد على NT ؟

Microsoft Disk Operating System

إن لم يتردى هذا السؤال إلى ذهنك :

فلماذا يجب أن لا تعمل البرمجيات التي تعتمد على ال Real Mode ونظم تشغيل الويندوز ذات الإصدارات القديمة على الإصدارات التي تعمل بال Protected Mode والتي تعتمد على NT ؟

لأن كما ذكرت في المقالة السابقة أن اختلاف طريقة ال Real Mode عن ال Protected Mode يكمن في تقسيم الذاكرة

فلا يمكن لبرمجيات تستعمل ريجسترات الأقسام أن تستعملها في نظام يستعمل ال GDT/LDT في تقسيم الذاكرة

لأن في ال Protected Mode يستطيع المعالج عنونة 4 جيجا من الذاكرة وحجم القسم فيها هو 4 جيجا وكما أن ريجسترات الأقسام حكر على نظام التشغيل.

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

فإن كنت من مستخدمي الويندوز قديما سوف تلاحظ أن العديد من البرمجيات التي كانت تعمل على ويندوز 95/98 كانت تعمل أيضا على XP.

إذا كيف لم يكن مصيرها النفايات ؟

في الحقيقة ، أشهر وأول المعالجات التي ظهرت تستطيع عنونة كمية من الذاكرة تصل إلى 4 جيجا بايت وتستطيع العمل في ال Protected Mode

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

فكانت المعالجات الجديدة لها القدرة على أن تحد قدرتها  على العمل في ال Real Mode  وتكون ظاهريا معالج 8086 (قديم) وهذا يعرف ب Virtual 8086 Mode (V86M) . 

إن كنت من هواه نظم التشغيل فقد يكون صادفك ذلك المفهوم اثناء عملك او قرائتك.

فعندما كنت تشغل نافذة MS-DOS فى ويندوز NT كانت تعمل من خلال V86M،

فكانت تشغل تلك النافذة من خلال حجز قطعة صغيرة في الذاكرة وتستخدم فيها ال Real Mode segmanted Model.

ولأكون أكثر دقة كانت تعمل تلك البرمجيات (البرمجيات القديمة) على ماكينة تخيلية Virtual Machine تسمى ب NTVDM (NT Virtual DOS Machine) .

والتي كانت تعتمد في الأساس على ال Virtual 8086 Mode.

إن كنت من مستخدمي لينوكس قد تجد مثل تلك الماكينه باسم (DOS Emulator) dosemu. وعادة يستخدمه مبرمجي الأسمبلي(لغه التجميع) لكتابة كود ال MASM
إن لم تتعرف تلك البرمجيات القديمة قد تتعرف عليها من الصورة

انتظروا المقالة الثالثة إن شاء الله في العدد القادم عن ال Registers