هندسة وعمارة نظام ويندوز إن تي

هندسة وعمارة ويندوز (Windows NT)، عبارة عن مجموعة من أنظمة التشغيل التي تنتجها وتبيعها شركة Microsoft ، وهي بالأصل عبارة عن تصميم متعدد الطبقات يتكون من عنصرين رئيسيين وهما، وضع المستخدم ووضع kernel . يعتبر النظام هذا نظام وقائي ومهيأ لعمليات إعادة الدخول الأحادي ومخصص لتلبية وتنفيذ عدة مهام في آن واحد ، كونه نظام تشغيلي (متعدد الوظائف) ، والذي تم تصميمه للعمل مع المعالجات ذات الخواص الأحادية وأيضاً المعالجات المتعددة المتماثلة (SMP) المستندة إلى أجهزة الكمبيوتر. ومن أجل معالجة طلبات الإدخال / والإخراج (I / O) ، فإنه يستخدم خصائص I / O التي تحركها الحزمة المطلوبة ، والذي يستخدم حزم I / O بطلب من (IRPs) و  I / O الغير متزامن . بدءًا من نظام التشغيل Windows XP ، بدأت شركة Microsoft في توفير إصدارات 64 بت من نظام التشغيل Windows ؛ قبل ذلك ، كانت هناك إصدارات 32 بت فقط من أنظمة التشغيل هذه.
البرامج والأنظمة الفرعية في وضع المستخدم محدودة من حيث موارد النظام التي من الممكن الوصول إليها ، في حين أن وضع kernel لديه وصول غير مقيد إلى ذاكرة النظام والأجهزة الخارجية. يتمتع وضع Kernel في نظام التشغيل Windows NT بالوصول الكامل إلى موارد النظام والأجهزة للكمبيوتر. kernel Windows NT هو kernel مختلط ؛ حيث أنه يشتمل على البنية بواسطة kernel بسيط ، وطبقة تجريد الأجهزة المسماة بـ (HAL) ، وبرامج التشغيل ، ومجموعة من الخدمات (تُسمى جماعيًا Executive ) ، وكلها موجودة في وضع kernel. 
يتكون وضع المستخدم في نظام التشغيل Windows NT من الأنظمة الفرعية القادرة على تمرير طلبات الإدخال / والإخراج إلى برامج تشغيل أجهزة وضع kernel المناسبة باستخدام مدير الإدخال / والإخراج (I/O). تتكون طبقة وضع المستخدم في نظام التشغيل Windows NT من "النظم الفرعية للبيئة" ، التي تقوم بتشغيل التطبيقات المكتوبة للعديد من أنواع أنظمة التشغيل المختلفة ، و "النظام الفرعي المتكامل" ، الذي يقوم بدوره على تشغيل وظائف خاصة بالنظام نيابة عن الأنظمة الفرعية للبيئة. يمنع وضع kernel خدمات وتطبيقات وضع المستخدم من الوصول إلى المناطق الهامة في نظام التشغيل والتي يجب ألا يكون لها حق الوصول إليها.
تتعامل واجهات Executive ، مع جميع الأنظمة الفرعية لوضع المستخدم ، ومع I / O ، وإدارة الكائنات ، والأمن وإدارة العمليات. تقع النواة (kernel) بين طبقة تجريد الأجهزة والسلطة التنفيذية لتوفير تزامن المعالجات ذات الخواص المتعددة ، وجدول عمليات الخيط والترحيل والإرسال ، ومعالجة الملائمة وإرسال الاستثناء. أيضاً ، النواة مسؤولة عن تهيئة برامج تشغيل الأجهزة عند بدء عمليات التشغيل. تتواجد وتتمحور برامج التشغيل التي وضع Kernel في ثلاثة مستويات رئيسية هي: -برامج التشغيل العليا -وبرامج التشغيل المتوسطة -وبرامج التشغيل ذات المستوى المنخفض. يوجد Windows Driver Model (WDM) في الطبقة المتوسطة ، حيث أنه تم تصميمها بشكل أساسي لتكون متوافقة مع مصدر تشغيل ثنائي بين نظامي التشغيل Windows 98 و Windows 2000 . برامج التشغيل ذا المستوى المنخفض هي إما برامج تشغيل أجهزة Windows NT القديمة التي تتحكم في الجهاز مباشرة أو يمكن أن تكون ناقل أجهزة التوصيل والتشغيل (PnP).

وضع النواة (kernel)

وكما تم شرحه سابقاً ، يتمتع وضع kernel الخاص بنظام التشغيل Windows NT بالوصول الكامل إلى موارد الجهاز والنظام للكمبيوتر ويقوم بتشغيل التعليمات البرمجية في منطقة ذاكرة محمية. علاوة على ذلك ، إنه يتحكم في الوصول إلى الجدولة وتحديد أولويات الخيط وإدارة الذاكرة والتفاعل مع الأجهزة. يمنع وضع kernel خدمات وتطبيقات وضع المستخدم من الوصول إلى المناطق الحرجة في نظام التشغيل والتي لا ينبغي لهما الوصول إليها ؛ ويجب أن تطلب عمليات وضع المستخدم من وضع kernel إجراء مثل هذه العمليات نيابة عنهم.
بينما تدعم بنية وبيئة x86 أربعة مستويات امتياز مختلفة (مرقمة من 0 إلى 3) ، يتم استخدام مستويات الامتياز الشديدة فقط. يتم تشغيل برامج Usermode باستخدام CPL 3 ، ويتم تشغيل kernel باستخدام CPL 0. وغالبًا ما يشار إلى هذين المستويان باسم "ring 3" و "ring 0" ، على التوالي. تم اتخاذ قرار التصميم هذا لتحقيق قابلية نقل الشفرة لأنظمة RISC التي تدعم مستويان فقط من الامتيازات ،  على الرغم من أن هذا يقطع التوافق مع تطبيقات OS / 2 التي تحتوي على شرائح امتياز I / O والتي تحاول جاهداً الوصول مباشرة إلى الأجهزة.
تتضمن التعليمات البرمجية التي يتم تشغيلها في وضع kernel ما يلي:
-السلطة التنفيذية ، والتي تتكون في حد ذاتها من العديد من الوحدات التي تقوم بمهام محددة ؛
-النواة ، والتي توفر خدمات منخفضة المستوى تستخدمها السلطة التنفيذية ؛ وهي طبقة تجريد الأجهزة (HAL) ؛ وأقراص النواة .

النواة

تقع النواة بين HAL والسلطة التنفيذية وتوفر تزامن مع المعالجات ذات الخواص المتعددة، والجدولة والمقاطع والجدولة الخاصة مع عمليات الإرسال ، ومعالجة الملائمة وإرسال الاستثناء ؛ كما أنها مسؤولة عن تهيئة برامج تشغيل الأجهزة عند بدء التشغيل والتي تعتبر ضرورية لتشغيل نظام التشغيل وعمليات إستعداده. أي أن النواة تؤدي جميع مهام النواة الصغيرة التقليدية تقريبًا ؛ وتعد بمثابة التمييز الصارم بين Executive و Kernel ، وهي أبرز بقايا تصميم microkernel الأصلي ، وتشير وثائق التصميم التاريخي باستمرارها إلى مكون kernel باسم "microkernel".
تتداخل النواة غالبًا مع مدير العمليات.  مستوى التجريد هو أن النواة لا تستدعي أبدًا مدير العملية ، فقط في الاتجاه المعاكس (باستثناء عدد قليل من الحالات ، التي لا تزال مخصصة إلى درجة الاعتماد الوظيفي).

برامج التشغيل بوضع Kernel

يستخدم Windows NT برامج تشغيل الأجهزة في وضع kernel لتمكينها من التفاعل مع الأجهزة. يحتوي كل من برامج التشغيل على إجراءات نظام محددة بشكل جيد وإجراءات داخلية يتم تصديرها إلى بقية نظام التشغيل. يُنظر إلى جميع الأجهزة بواسطة رمز وضع المستخدم ككائن ملف في مدير الإدخال والإخراج (I / O ) ، على الرغم من أنه بالنسبة لمدير الإدخال والإخراج نفسه ، فإن الأجهزة تُعتبر مثل كائنات الجهاز ، والتي تُعرف بأنها إما كائنات أو جهاز أو برنامج تشغيل. تكون برامج التشغيل في وضع Kernel على ثلاثة مستويات مهمة وهي: -برامج التشغيل العليا ، -وبرامج التشغيل المتوسطة ، -وبرامج التشغيل ذات المستوى المنخفض. تعتمد برامج تشغيل المستوى الأعلى ، مثل برامج تشغيل نظام الملفات لـ FAT و NTFS ، على برامج تشغيل متوسطة. تتألف برامج التشغيل المتوسطة من برامج تشغيل الوظائف - أو برنامج التشغيل الرئيسي لجهاز معين ومحدد - حيث أنه يتم تحديده اختيارياً بين برامج تشغيل لعوامل التصفية ذات المستوى الأدنى والعالي. يعتمد برنامج التشغيل الوظيفي على برنامج تشغيل ناقل - أو برنامج تشغيل يخدم وحدة تحكم ناقل أو مهايئ أو جسر - والذي يمكن أن يحتوي على برنامج تشغيل لعامل تصفية ناقل اختياري يكون متواجد بينه وبين برنامج تشغيل الوظيفة. تعتمد برامج التشغيل المتوسطة على برامج تشغيل المستوى الأدنى وذلك من اجل أن تعمل. يوجد طراز برنامج تشغيل Windows (WDM) في الطبقة المتوسطة. برامج التشغيل ذات المستوى الأدنى هي إما برامج تشغيل جهاز Windows NT القديمة التي تتحكم في جهاز مباشرة أو يمكن أن تكون ناقل أجهزة PnP. تتحكم برامج التشغيل ذات المستوى الأدنى هذه بشكل مباشر في الأجهزة ولا تعتمد على أي برامج تشغيل أخرى.

طبقة المواد الصلبة

طبقة تجريد أجهزة Windows NT ، أو طبقة تجريد الأجهزة (HAL)  أو كما تسمى بـ "طبقة المواد الصلبة"، هي طبقة تتواجد بين الأجهزة الفعلية للكمبيوتر ونظام التشغيل. تم تصميمها لإخفاء الاختلافات في الأجهزة وتوفير نظام أساسي ثابت يتم تشغيل النواة عليه. تتضمن طبقة تجريد الأجهزة (HAL) تعليمات برمجية خاصة بالأجهزة لتتحكم في واجهات الإدخال / والإخراج ووحدات تحكم المقاطعات وعمليات المعالجات ذات الخصائص المتعددة.
ومع ذلك ، على الرغم من غرض تلك الطبقة ومكانها المعين داخل الهيكل العملي للنظام ، فإن طبقة تجريد الأجهزة هذه ليست طبقة تقع تمامًا أسفل النواة ، والطريقة التي تتواجد وتقع عليها هذه الطبقة هي فعلياً مدمجة تحت خواص المسؤول التنفيذي للنواة.
ولكن ورغم كل ذلك ، تعتمد جميع تطبيقات HAL المعروفة إلى حد ما على النواة نفسها ، أو حتى على عمليات السلطة التنفيذية (التي تم شرحها مسبقاً). في الممارسة العملية ، هذا يعني أن متغيرات kernel و HAL تأتي في مجموعات مطابقة مصممة خصيصًا للعمل معًا.
ولا سيما بأن تجريد الأجهزة هو أمر لاينطوي على استخلاص مجموعة التعليمات، التي تقع عادة في إطار مفهوم أوسع من مفهوم القابلية. يتم إجراء "خلاصة مجموعة التعليمات" ، عند الضرورة (مثل معالجة المراجعات العديدة لمجموعة التعليمات x86 ، أو محاكاة معالج رياضيات مفقود) ، بواسطة kernel ، أو عبر محاكاة الأجهزة الافتراضية .