
اسمي Andrey Artemyev ، أعمل في Microsoft على جوهر نظام التشغيل Windows 10 ، وقد عملت سابقًا على أنظمة Windows 10x (WCOS) و XBox و Windows Phone و Microsoft Edge. أريد أن أخبر بشكل شائع للأغراض التعليمية كيف يعمل الكمبيوتر على مثال إدخال لوحة المفاتيح ونظام Windows 10. تم تصميم هذه السلسلة من المقالات بشكل أساسي للطلاب من التخصصات الفنية. سنضع في الاعتبار المسار الذي يتم عرض المعلومات حول المفتاح المضغوط من لوحة المفاتيح في Notepad.exe. بسبب اتساع الموضوع وتعدد تخصصاته ، قد تكون هناك بعض الأخطاء في المقالات ، والتي يتم الإبلاغ عنها في التعليقات. قد تكون بعض المعلومات قديمة بسبب السرعة التي يتطور بها Windows.
ما مدى عمق الغوص في الموضوع؟
دعونا أولاً نتحدث عن المستويات التي يمكن عندها النظر في الكمبيوتر. ويستند كل مستوى على المستوى السابق. لنبدأ من الأعلى.
مستوى التطبيق . توجد جميع تطبيقات المستخدم هنا ، هذا متصفح ، Microsoft Office ، المفكرة ، وكذلك خادم الويب IIS ، SQL Server ، البرامج الوسيطة المختلفة مثل Java و .Net وجميع لغات البرمجة النصية ، سواء أكانت ملفات Ruby أو PHP أو Bat.
مستوى نظام التشغيل . نظام التشغيل يمكن اعتباره:
- مدير الموارد - الذاكرة ، محركات الأقراص الصلبة ، الطابعات ، الشاشة ، لوحة المفاتيح ، الموارد المحدودة التي يتم مشاركتها بواسطة البرامج التي تعمل على الكمبيوتر.
- الجهاز الظاهري - الملف هو مثال جيد لكائن افتراضي. إنه يمثل مجموعة من البيانات على القرص ، وواجهة برمجة التطبيقات للتعامل معها ، ويضيف أيضًا مفهوم حقوق الوصول. بدلاً من ملف ، قد يكون هناك مفهوم حاوية البيانات وواجهة برمجة تطبيقات مختلفة تمامًا. هناك العديد من هذه الكائنات الافتراضية في نظام التشغيل.
- يوفر Platform - OS نماذج البرامج والأولويات لإنشاء البرامج. على سبيل المثال ، يتيح لك Windows Drivers Framework إمكانية تطوير برامج التشغيل بسرعة ، ويتم استخدام الإطارات في Windows لإنشاء واجهات مستخدم معقدة. يوفر Dll - نموذجًا لتوسيع وظائف البرنامج من خلال المكونات الإضافية ، فضلاً عن آلية لتنفيذ قارئ الشاشة من خلال مصائد لوحة المفاتيح (انظر خطاف LowLevelKeyboard).
ينقسم نظام التشغيل إلى طبقات ومكونات. بشكل عام ، تبدو بنية Windows 10 هكذا. سنتحدث عن ذلك بالتفصيل بعد ذلك بقليل.
مستوى هندسة الكمبيوتر . يتم تمثيله باللوحة الأم ، التي تحتوي على عامل شكل محدد ، ووظائف مدمجة مشفرة في دوائر كهربائية دقيقة تسمى مجموعة شرائح ومنافذ يمكن من خلالها توسيع وظائف الكمبيوتر عن طريق توصيل بطاقة رسومات ، وبطاقة شبكة ، وذاكرة وصول عشوائي إضافية (RAM) ، ومحركات أقراص ثابتة ، لوحة مفاتيح ، إلخ. تؤثر المنافذ على سرعة وقدرات جهاز الكمبيوتر ، والتي ستحدد الغرض منه ، سواء كان خادمًا لمعالجة آلاف الطلبات في الثانية الواحدة ، أو جهاز لوحي لاستخدام الإنترنت ، أو جهاز كمبيوتر محمول للألعاب به عدة مقاطع فيديو artami. يستخلص نظام التشغيل ميزات اللوحة الأم.
تبدو الدوائر الصغيرة في الصورة أدناه وهي عبارة عن كمبيوتر صغير يقوم بتنفيذ برامج بسيطة للمهام منخفضة المستوى ، على سبيل المثال ، قراءة البيانات من لوحة المفاتيح ونقلها إلى أبعد من ذلك حتى يصلوا إلى المعالج في نهاية المطاف. كقاعدة عامة ، يتم تنفيذها كدائرة كهربائية صغيرة غير قابلة للبرمجة أو متحكم قابل للبرمجة في C.

يمكن اعتبار اللوحة الأم مستعمرة للدوائر الدقيقة التي تتواصل مع بعضها البعض عبر الحافلات ومن خلالها يتم نقل البيانات من الأجهزة المتصلة إلى المعالج والعكس صحيح. مجموعة شرائح هو نوع من الجهاز العصبي الكمبيوتر. تم إنشاء جميع الرقائق على اللوحة الأم في الأصل للعمل مع بعضها البعض. قد يكون لبعضها وظائف خاصة ، على سبيل المثال ، مؤقت أو تخزين إعدادات BIOS. ولعل أهمها هو البرنامج الذي يحتوي على برنامج مضمن (البرامج الثابتة ، BIOS ، UEFI) الذي يبدأ التشغيل بمجرد ظهور الكهرباء. إنها تعثر على محرك الأقراص الثابت باستخدام أداة تحميل نظام التشغيل Windows وتنقل التحكم فيه ، والذي يقوم بدوره بتشغيل الملف القابل للتنفيذ لنظام التشغيل ، والذي يمكن تسميته Windows10.exe ، بالفعل NtOsKrnl.exe. يعرف نظام الإدخال / الإخراج الأساسي (BIOS) ما الذي تبحث عنه بفضل اتفاق بين الشركات المصنعة للأجهزة وأنظمة التشغيل.
حول اللوحة الأم ، يمكنك تجميع هاتف محمول أو وحدة تحكم ألعاب أو محطة خادم أو جهاز ذكي. في الصورة أدناه ، والعوامل شكل شائع من اللوحات الأم.
يمثل مستوى البنية الدقيقة بواسطة المعالج (CPU) ، وهذا هو جوهر اللوحة الأم وهناك حاجة إلى مجموعة شرائح كاملة لخدمة وحدة المعالجة المركزية. المعالج هو كمبيوتر موجود على جهاز كمبيوتر ، وهو متحكم أكثر قوة وتقدماً لا يحتاج إلى برامج ثابتة ، لأن تدفق الأوامر يأتي بسرعة عندما يغير برنامج جدولة مؤشر الترابط سياق المعالج. تنقسم وظائف المعالج إلى أنظمة فرعية ، على سبيل المثال ، مكون مشارك في العمليات الرياضية والمنطقية ، ومعالج مساعد رياضي ، وذاكرة تخزين مؤقت. اعتاد بعضهم أن يكونوا شريحة منفصلة على اللوحة الأم ، لكنهم أصبحوا الآن جزءًا من وحدة المعالجة المركزية ، على سبيل المثال ، وحدة تحكم مقاطعة وشريحة تسمى الجسر الشمالي ، مما زاد من سرعة العمل.
العمارة الدقيقة ليست هي نفسها
العمارة . تنقسم جميع وظائف وحدة المعالجة المركزية إلى مكونات تعمل معًا. هذه المكونات وتفاعلها هو العمارة الدقيقة. في المخطط الانسيابي أدناه ، يتم تمثيلها بواسطة المستطيلات والمربعات الملونة.
بنية المعالج هي في الأساس وثيقة تصف الوظيفة التي يجب أن تتمتع بها من أجل التوافق ، على سبيل المثال ، مع بنية x86 أو x64 أو ARM المستخدمة على الأجهزة المحمولة. يصف هذا المستند الأوامر وتخصيصات السجل ومنطق التشغيل الذي يجب دعمه. يمكن لمنشئي معالجات Intel و AMD و Elbrus تنفيذ هذه الوظيفة كما يحلو لهم وإضافة ميزات جديدة إليها في شكل أوامر وسجلات وأعلام ومقاطعات ، وإذا كان نظام التشغيل يعرف عنها ، فيمكنه استخدامها. من حيث OOP ، فإن بنية وحدة المعالجة المركزية هي الواجهة ، والهيكل الدقيق هو تنفيذها.
دوائر المنطق . تتكون المستطيلات الملونة من مخطط كتلة وحدة المعالجة المركزية من دوائر منطقية تؤدي عملياتها على تسلسل من الأصفار والأخرى. يرى المعالج جميع البيانات والتعليمات في شكل وحدات البت (0 و 1) ، وفقًا للمعادلة ، يمكن تمثيل أي رقم عشري كتسلسل 0 و 1 ، ولكن ما يعنيه رقم معين يعتمد على السياق. يمكن أن يكون رمز ، رقم ، حرف. وحدة حساب والمنطق (ALU) يمكن أن تضيف رقمين من خلال عمليات bitwise. لطالما كانت خوارزميات البت في الجمع والطرح والضرب والقسمة معروفة ؛ ولا يحتاج مطورو الدائرة المنطقية إلا إلى تنفيذها بفعالية.

تعمل الدوائر الرقمية مع البيانات على مستوى الأصفار والأخرى ، بينما تعتمد الدوائر التناظرية على استغلال قوانين الفيزياء. يقومون بمعالجة بت بسيطة ، مثل التحولات و AND أو OR ، XOR. من خلال هذه البدائية يتم تنفيذ عمليات أكثر تعقيدًا. تُظهر الصورة أدناه المشغل AND التناظري الذي تم تنفيذه من خلال الترانزستورات. عند إخراج الدائرة ، فلن يتواجد جهد غير صفري إلا إذا كان موجودًا على كل من ملامسي الإدخال (Bx1 و Bx2) ، وإلا فلن يكون هناك فولت. يعمل عامل التشغيل && في C # بنفس الطريقة. وتستند الدوائر الرقمية في نهاية المطاف على التناظرية. لا يمكن تنفيذ العناصر المنطقية المادية في دوائر المنطق الإلكترونية ، بل أيضًا الطرق الميكانيكية والهيدروليكية والبصرية وغيرها.
مستوى الاذاعة . تعتمد الدوائر التناظرية الجسدية على عناصر الراديو التي تستغل فعليًا قوانين الفيزياء. معظمهم من أشباه الموصلات ، أي في ظل ظروف معينة ، قد يقومون بتوصيل الكهرباء ، لكن قد لا يقومون بذلك. يقوم الصمام الثنائي بتوصيل التيار في اتجاه واحد فقط ، إذا كان غير ملحوم ، ثم تحول إلى 180 وخلف في الخلف ، فلن يمر التيار خلاله. يمر الترانزستور الحالي فقط إذا كان هناك الجهد على الساق السيطرة. لقد تعلمت الإنسانية جعل الترانزستورات مجهرية وبالتالي يمكن وضعها على لوح صغير بالملايين. في الصور أدناه ، عناصر راديو أشباه الموصلات والترانزستور التقليدي بجوار ترانزستور نانو تحت المجهر الإلكتروني.
مستوى قوانين الفيزياء . وأخيرًا ، المستوى الأدنى هو مستوى قوانين الفيزياء التي يتم تضمينها في عناصر أشباه الموصلات اللاسلكية.
سنتحدث كثيرًا عن مستوى نظام التشغيل وأقل قليلاً عن هندسة الكمبيوتر والهيكل المصغر والدوائر التناظرية وعناصر الراديو. بالنسبة للجزء الأخير ، يجب أن يكون لديك فهم لكيفية عمل كل هذا معًا.
أساسيات نظام التشغيل
عندما ذهبنا إلى لغة التجميع في الجامعة ، كان لدى العديد من الطلاب ذهول من بعض الكلمات الذكية مثل "أوضاع النواة والمستخدم" ، والتي بموجبها يتم إخفاء نظام مصادقة دور معروف جيدًا تحت الجميع ، وفي كل المواقع يوجد "مسؤول" على الأقل لديه حق الوصول إلى جميع الصفحات و "المستخدم" لديه وصول محدود. بنفس الطريقة ، فإن دور "Core" لديه حق الوصول إلى جميع إمكانيات وحدة المعالجة المركزية ، وقد لا يتسبب دور "المستخدم" في جميع أوامر المعالج وليس مع جميع الوسائط. علاوة على نموذج الدور هذا ، تم بناء نظام التشغيل على مبدأ بنية خادم العميل ، حيث يعد الخادم هو العنصر الأساسي الذي يقوم بتنفيذ وظيفة نظام التشغيل ، والعميل هو برامج المستخدم. في عالم الويب ، يتم فصل العميل والخادم فعليًا - وهما جهازي كمبيوتر مختلفان يتواصلان عبر الشبكة. في نظام التشغيل ، يعيش العميل والخادم على نفس الجهاز وعلى نفس الجهاز. يحتوي الخادم على واجهة برمجة تطبيقات معينة تتيح للعملاء تغيير حالته ، على سبيل المثال ، تتيح لك واجهة برمجة تطبيقات Twitter إنشاء مشاركات وتسجيل الدخول وتحميل موجز تغريدة إلى عميل متنقل. يحتوي Windows على Win API ، وهو أكثر تعقيدًا فقط بسبب مجموعة واسعة من المهام ؛ اليوم ، يحتوي Windows على حوالي 330،000 من واجهات برمجة التطبيقات بالإضافة إلى API لتطبيقات UWP. إذا كانت مفاهيم Twitter أكثر وضوحًا للجميع - النشر ، المستخدم ، الخلاصة - فقد تتطلب مفاهيم نظام التشغيل بعض التعمق في جوانبها الداخلية. لذلك ، قد يكون من الصعب فهم واجهات برمجة تطبيقات Windows دون فهم البنية الداخلية لنظام التشغيل.
في الواقع ، النواة تعني ثلاثة أشياء مختلفة. النواة مثل كل رمز نظام التشغيل. kernel كنظام فرعي مسؤول عن آليات نظام التشغيل ، مثل جدولة مؤشر الترابط ، وتبديل السياق ، ومعالجة المقاطعة ، وتبادل الذاكرة الظاهرية إلى الفعلية (Kernel) والنظام الفرعي kernel لدعم أنظمة التشغيل الأخرى - CSRSS.exe (Windows) ، PSXSS.exe (POSIX) ، OS2SS.exe (OS / 2) أو WSL (نظام Windows الفرعي لنظام التشغيل Linux). في هذا السياق ، يتم فهم المعنى الأول - كل رمز نظام التشغيل.عندما تظهر نافذة على الشاشة ، تظهر بنية البيانات في جانب الخادم من نظام التشغيل (وضع kernel) الذي يصف هذه النافذة - موضعها على الشاشة ، الحجم ، نص العنوان ، وظيفة النافذة التي يسمح نظام التشغيل من خلالها للتطبيق بالاستجابة للأحداث. نظرًا لوجود العديد من الأنظمة الفرعية في نظام التشغيل ، يمكن أن يكون هناك العديد من هياكل البيانات التي تصف كائنًا واحدًا ، على سبيل المثال ، المعلومات حول عملية المستخدم في المكونات:
- التنفيذي - هنا هو منطق نظام التشغيل. تقوم هذه الطبقة بالتحقق مما يمكن للعمليات وما لا يمكنها القيام به يحتوي هذا الملف على معلومات حول العملية الأصل ، ومعلمات بدء العملية (Process Environment Block) ، وحساب المستخدم المرتبط ، واسم ملف exe للعملية.
- يتم تطبيق آليات Kernel - OS مثل جدولة مؤشر الترابط هنا. إنه يخزن مقدار الوقت الذي تقضيه العملية في وضع المستخدم و kernel ، والذي ترتبط به معالجات مؤشرات الترابط الخاصة بها ، وهي الأولوية الأساسية لخيوط العملية.
- النظام الفرعي Windowing - معلومات حول كائنات GDI التي يتم استخدامها للرسم في النافذة. هذه بدايات مثل الفرشاة والقلم وما إلى ذلك.
- DirectX - كل ما يتعلق بـ DirectX: التظليل ، الأسطح ، كائنات DX ، عدادات أداء GPU ، إعدادات الذاكرة لذاكرة الرسومات.
- النظام الفرعي Windows الذي يمثله عملية CSRSS.exe (النظام الفرعي لوقت تشغيل خادم العميل). كان Windows يدعم نظام التشغيل POSIX سابقًا (عملية PSXSS.exe) ونظام التشغيل OS / 2 (OS2SS.exe). في تلك الأيام ، جاءت الفكرة لجعل Windows النظام الفرعي نفسه ، ولكن هذا كان بطيئًا ، وقريباً تم نقل جزء من CSRSS.exe إلى win32k.sys ، والذي ينقسم الآن إلى عدة ملفات - win32k.sys و win32kbase.sys و win32kfull.sys. يتم تخزين المعلومات حول بيانات مجموعة العمليات ومستوى إيقاف التشغيل وبيانات الجلسة وما إلى ذلك.
كان دعم POSIX و OS / 2 رسميًا على الأرجح ، لأنه لنقل البرنامج من أنظمة التشغيل هذه ، كان عليك العثور على الكود المصدري وإعادة ترجمته بطريقة خاصة للحصول على ملف exe حيث تمت إعادة توجيه جميع المكالمات إلى API OS إلى PSXdll.dll (NETAPI.DLL و DOSCALLS.DLL لنظام التشغيل OS / 2 و User32.dll لتطبيقات Windows) ، والذي كان عبارة عن مجمّع رفيع عبر واجهة برمجة تطبيقات Windows. تم تخزين حالة بعض واجهات برمجة التطبيقات في عملية النظام الفرعي PSXSS.exe (OS2SS.exe). نظرًا لأنه لا يمكن تعيين جميع واجهات برمجة التطبيقات إلى 1 إلى 1 ، فإن هذا البرنامج يعمل بشكل غير مستقر. تمت إضافة دعم Linux في نظام التشغيل Windows 10 ويعمل بطريقة مختلفة تمامًا. يتم استضافة نظام Linux الفرعي في وضع kernel والفرق بين نظام Windows الفرعي لنظامي Linux و Linux هو نفسه تقريبًا كما هو بين النظم المختلفة. خاصة بالنسبة لـ WSL ، تم تقديم نوع جديد من العمليات - عملية PICO.
ما هو المكون؟ هذه وظيفة مجمعة منطقيا. يمكن أن يسمى مكون فئة OOP ، دلل ، مجلد ، مجموعة من الوظائف مع بادئة مشتركة ، مساحة الاسم ، طبقة في الهندسة المعمارية.المزيد عن تقسيم خادم العميل
يتم تنفيذ فصل العميل والخادم باستخدام الوظيفة المدمجة لوحدة المعالجة المركزية ومشاركة الذاكرة والتحقق من البرنامج.
يتعاون مصنعو المعدات مع مطوري نظام التشغيل ، لذلك ، لدى المعالج آليات تم إنشاؤها مع مراعاة احتياجات منشئي أنظمة التشغيل. في جميع المعالجات الحديثة ، يتم تطبيق آلية دور المستخدم ، حيث يتم فهم المستخدم على أنه الرمز القابل للتنفيذ حاليًا. في تطبيقات الويب ، يتم تخزين دور المستخدم الذي قام بتسجيل الدخول في متغير ، بالإضافة إلى الاسم الواضح المسؤول أو المستخدم ، لديه معرف لهذا الدور ، والذي يستخدم غالبًا أثناء الترخيص ، لأن مقارنة الأرقام أسرع وأسهل من السلاسل. في المعالج ، يتم تخزين دور المستخدم الحالي في حقل يسمى "حلقة الأمان" ، وليس "CurrentUser.Role.Id". في معظم المعالجات ، يأخذ هذا الحقل أربع قيم من 0 إلى 3. يستخدم Windows 0 للدور المسمى "وضع Kernel" ، لأنه هو الوضع الأكثر امتيازًا وأكبر قيمة للدور هي "وضع المستخدم" ، لأنه الدور الأكثر تحديدًا. لا يتم استخدام الأدوار المتبقية لأن الفرق بين 0 و 1 و 2 و 3 لا يكاد يذكر. تحد هذه الأدوار من صفحات الذاكرة التي يمكن معالجتها ، ولا يمكنك الاتصال ببعض الإرشادات ، أو لا يمكنك الاتصال بها باستخدام وسائط معينة. هناك أيضًا قيود على استخدام تقنية منافذ الإدخال / الإخراج لتبادل البيانات مع الأجهزة مثل لوحة المفاتيح ، ولكن لم يتم استخدامها لمدة 10 سنوات. يحدث التبديل إلى وضع kernel من خلال الأمر syscall ، والذي يجد حسب الفهرس الوظيفة المراد استدعاؤها في صفيف المؤشرات إلى واجهات برمجة تطبيقات Windows. يتم تخزين مؤشر لهذه المجموعة في سجل معالج خاص أثناء تشغيل نظام التشغيل.
دعوت على وجه التحديد وحدة المعالجة المركزية تسجيل حقل. عندما تكتب برنامجًا في C # ، يمكنك إضافة العديد من الحقول إلى صفك كما تشاء ومنحهم أسماء مألوفة. بالنسبة للمعالجات وأجهزة التحكم الدقيقة ، تسمى الحقول سجلات. عندما تقوم بتصميم قطعة من الحديد ، فأنت بحاجة إلى أن تفهم بالفعل في هذه المرحلة عدد السجلات (الحقول) التي تحتاجها ، وما حجمها وما هي الوظيفة التي يجب تعيينها لها ، بحيث يكون هذا كافياً لجميع المناسبات لجميع المواقف التي لا يمكن تصوره. تخيل أنك بحاجة إلى كتابة برنامج بلغة برمجة تشبه لغة C # والتي تحتوي على 16 حقلًا محددًا مسبقًا في الفصل الدراسي ولا يمكنك استخدام المتغيرات المحلية. أي يمكن استخدام نفس الحقل لتخزين المستخدم الذي قام بتسجيل الدخول أو الصفيف المصنف أو البيانات المؤقتة أو نتيجة الطريقة. يجب أن تكون أسماء هذه الحقول شائعة قدر الإمكان ، بدلاً من tempData و funcResult ، ستكون هناك أسماء غريبة EAX و AH و AL و DX ، وما إلى ذلك. إذا كتبت محاكيًا للمعالج على هندسة x86 في C # ، فقد يبدو الرمز رمزًا مثل هذا (DIV - divide، command تقسيم عدد صحيح):

لتوضيح ذلك ، أضفت التحقق من وضع kernel. في حالة حدوث قسمة على صفر خطأ ، يقوم المعالج بإخطار نظام التشغيل عبر مقاطعة (يلقي حدثًا). في وقت التمهيد ، يوفر نظام التشغيل للمعالج مجموعة من المؤشرات أحادية البعد لدالة تسمى متجه المقاطعة ، حيث يتوافق كل مؤشر مع نوع من الأحداث ، على سبيل المثال ، القسمة على صفر. يعرف نظام التشغيل بنية المعالج الذي يعمل عليه ويمكنه ترتيب مؤشرات الوظائف في صفيف. وحدة المعالجة المركزية تستدعي هذه الوظيفة ونظام التشغيل لديه رمزه الخاص. على سبيل المثال ، يبحث Windows في السجل عما إذا كان مصحح الأخطاء مثبتًا ويعرض رسالة تفيد بحدوث خطأ ومن الممكن تشغيل مصحح الأخطاء للنظر في المكان الذي حدث فيه. يطلق على المقاطعة مقاطعة لأنها تتدخل في المسار الطبيعي لتنفيذ البرنامج وتمكن معالج المقاطعة من التنفيذ وفقط بعد اكتماله يمكن للمعالج العودة إلى تنفيذ البرنامج.
يمكن إنشاء المقاطعات ليس فقط عن طريق المعالج ولكن أيضًا عن طريق أجهزة خارجية (لوحة المفاتيح أو الماوس) أو رمز البرنامج. يقوم برنامج جدولة مؤشر الترابط بتعيين جهاز ضبط وقت يقوم بإنشاء فواصل زمنية من الكم (بشكل افتراضي ، حوالي 15 مللي ثانية ، في Windows Server أكثر) لتعيين مؤشر ترابط آخر للتنفيذ وفقًا للخوارزمية الداخلية. يعتمد التنفيذ التدريجي للبرنامج في Visual Studio أيضًا على آلية المقاطعة - حيث يتم تعيين علامة على المعالج ، والتي تتسبب ، بعد كل أمر ، في مقاطعة تتم معالجتها بواسطة Windows Debugging Engine وإخطارها من خلال Visual Studio API.
يتم تنفيذ مشاركة الذاكرة بفضل الذاكرة الافتراضية. قلت في وقت سابق أن نظام التشغيل هو مدير الموارد والجهاز الظاهري. 1 RAM 32 Windows 4 , .. 1, 4. ( ). . 4096 (4), :
- . . CPU , . , , , , . .
- , . RAM 4. RAM , .
- , ( new ++) / . Exe- , c . .
- RAM . / - . RAM , , . Windows 10 , .
Windows 10 , — ( ), .
64 16 , 18,446,744,073,709,551,616 . RAM 48 , 16 . Win x64 , . , 64 Windows “” 256 Tb . 8TB IA64 7TB x64. Windows 10 — 2TB, . RAM Windows 10 , .
(HEX) , ? , . , — . CPU — CPU . HEX . , 32 ( 64) . — , HEX , .
- ( - ) . / . -, .
Windows?
Windows - . - — , , dll, . *.sys, *.dll , API , C, . C++. :
:
- Hyper-V Hypervisor — Windows . , Hyper-V , , .
- HAL.dll — Hardware Abtraction Layer — — , , — Windows HAL.dll, . , , . , - ACPI.sys.
Advanced Configuration and Power Interface? 1996 UI, .
1996 ACPI, , .. . ACPI , CD drive, .. .
- Device Drivers — . *.sys, , . Process Explorer SysInternals .
- Kernel — Kernel Mode Execution Environment , , , , . .
- Executive — , - .
- Windowing & Graphics — DirectX .
- NtDll.dll — . dll , ( .. dll) . Nt Native, Native American. أي API , . dll Nt (NtDestroyMenu). Win API User32.dll. NtDll.dll, Nt* (level of indirection) — subsystem dll User32.dll PSXdll.dll DOSCALLS.DLL Windows. NtDll.dll ( S ession M anagement S ub S ystem .exe , Win dows Init itialize .exe .), .
- SubSystem dlls — . Windows User32.dll. - API , Nt* NtDll.dll, CreateFile NtCreateFile).
- Environment Subsystems — CSRSS.exe, Windows. POSIX ( PSXSS.exe) OS/2 (OS2SS.exe). Windows Subsystem for Linux -.
- System Processes — , LSASS.exe (Local Security Authority SubSystem) .
- Service Processes — Windows ( Plug and Play Manager) *.exe . SvcHost.exe , *.dll-. SvcHost'.
- User Processes — . — , , . .
. .