بت NX

بت NX ( بت عدم التنفيذ ) هو ميزة في المعالج تفصل مناطق مساحة العناوين الافتراضية (تخطيط الذاكرة الذي يستخدمه البرنامج) إلى أقسام لتخزين البيانات أو تعليمات البرنامج. يمكن لنظام التشغيل الذي يدعم بت NX أن يُعلّم مناطق معينة من مساحة العناوين الافتراضية على أنها غير قابلة للتنفيذ، مما يمنع المعالج من تشغيل أي كود مُخزّن هناك. تُعرف هذه التقنية بحماية مساحة التنفيذ أو كتابة XOR تنفيذ ، وهي تحمي أجهزة الكمبيوتر من البرامج الضارة التي تحاول إدخال كود ضار في منطقة تخزين بيانات برنامج آخر وتنفيذه، كما هو الحال في هجوم تجاوز سعة المخزن المؤقت .

استحدثت شركة أدفانسد مايكرو ديفايسز (AMD) مصطلح "بت NX" لأغراض تسويقية. تسوّق إنتل هذه الميزة باسم " بت XD " ( تعطيل التنفيذ )، بينما تشير إليها بنية MIPS باسم " بت XI " ( منع التنفيذ ). أما في بنية ARM ، التي طُرحت في ARMv6 ، فتُعرف باسم "بت XN" ( عدم التنفيذ مطلقًا ). [ 1 ] يُستخدم مصطلح "بت NX" على نطاق واسع لوصف تقنيات حماية مساحة التنفيذ المماثلة في المعالجات الأخرى.

دعم معماري

x86

منذ معالج 80286 ، تضمنت معالجات x86 إمكانية مماثلة مُطبقة على مستوى القطاعات . مع ذلك، فإن معظم أنظمة التشغيل لمعالجات x86 80386 وما بعدها تُطبق نموذج الذاكرة المسطحة ، لذا لا يمكنها استخدام هذه الإمكانية. لم يكن هناك مُؤشر "قابل للتنفيذ" في مدخل جدول الصفحات (واصف الصفحة) في تلك المعالجات لإتاحة هذه الإمكانية لأنظمة التشغيل التي تستخدم نموذج الذاكرة المسطحة، إلى أن أضافت AMD بت "عدم التنفيذ" أو NX إلى مدخل جدول الصفحات في بنية AMD64 ، مما وفر آلية للتحكم في التنفيذ على مستوى كل صفحة بدلاً من مستوى القطاع بأكمله.

طبّقت إنتل ميزة مماثلة في معالجها إيتانيوم ( ميرسيد ) - الذي يعتمد على بنية IA-64 - في عام 2001، لكنها لم تُضفها إلى عائلات معالجات x86 الأكثر شيوعًا ( بنتيوم ، سيليرون ، زيون ، إلخ). في بنية x86، طبّقتها AMD لأول مرة، كبت NX ، لاستخدامها في سلسلة معالجات AMD64 ، مثل أثلون 64 وأوبترون . [ 2 ]

بعد قرار AMD بتضمين هذه الوظيفة في مجموعة تعليمات AMD64، قامت Intel بتطبيق ميزة بت XD المشابهة في معالجات x86 بدءًا من معالجات Pentium 4 المبنية على الإصدارات اللاحقة من نواة Prescott. [ 3 ] يشير بت NX تحديدًا إلى البت رقم 63 (أي البت الأكثر أهمية) في مدخل 64 بت في جدول الصفحات . إذا كانت قيمة هذا البت تساوي 0، فيمكن تنفيذ التعليمات البرمجية من تلك الصفحة؛ أما إذا كانت قيمتها 1، فلا يمكن تنفيذ التعليمات البرمجية من تلك الصفحة، ويُفترض أن أي شيء موجود فيها هو بيانات. يتوفر هذا البت فقط مع الوضع الطويل (وضع 64 بت) أو تنسيقات جدول الصفحات القديمة لامتداد العنوان الفيزيائي (PAE)، ولكنه غير متوفر في تنسيق جدول الصفحات الأصلي 32 بت الخاص بمعالجات x86، لأن مداخل جدول الصفحات في هذا التنسيق تفتقر إلى البت 64 المستخدم لتعطيل وتمكين التنفيذ.

يدعم نظام التشغيل Windows XP SP2 والإصدارات الأحدث خاصية منع تنفيذ البيانات (DEP).

ذراع

في ARMv6 ، تم تقديم تنسيق جديد لإدخالات جدول الصفحات؛ يتضمن بت "عدم التنفيذ مطلقًا". [ 1 ] بالنسبة إلى ARMv8-A ، فإن واصفات الكتل والصفحات VMSAv8-64، وواصفات الكتل والصفحات ذات الواصفات الطويلة VMSAv8-32، في مرحلة الترجمة الأولى، تحتوي على بت "عدم التنفيذ مطلقًا" لكل من الوضعين المميز وغير المميز، بينما تحتوي واصفات الكتل والصفحات في مرحلة الترجمة الثانية على بت واحد "عدم التنفيذ مطلقًا" (بتان بسبب ميزة ARMv8.2-TTS2UXN)؛ أما واصفات جداول الترجمة ذات الواصفات القصيرة VMSAv8-32 في المستوى الأول، فتحتوي على بت "عدم التنفيذ مطلقًا" لكل من الوضعين المميز وغير المميز، بينما تحتوي في المستوى الثاني على بت واحد "عدم التنفيذ مطلقًا". [ 4 ]

ألفا

اعتبارًا من الإصدار الرابع من دليل بنية ألفا، فإن نظام التشغيل ألفا من شركة دي إي سي (الآن إتش بي) يحتوي على خطأ في بت التنفيذ في إدخالات جدول الصفحات مع أنظمة التشغيل أوبن في إم إس ، وترو64 يونكس ، وألفا لينكس بال كود . [ 5 ]

سبارك

تحتوي وحدة إدارة الذاكرة المرجعية SPARC لإصدار Sun SPARC 8 على قيم أذونات القراءة فقط، والقراءة/الكتابة، والقراءة/التنفيذ، والقراءة/الكتابة/التنفيذ في إدخالات جدول الصفحات، [ 6 ] على الرغم من أن معالجات SPARC لا تحتوي جميعها على وحدة إدارة الذاكرة المرجعية SPARC.

قد توفر وحدة إدارة الذاكرة (MMU) في معالج SPARC الإصدار 9 أي مجموعة من أذونات القراءة/الكتابة/التنفيذ، ولكن ليس من الضروري أن توفرها. [ 7 ] يحتوي مدخل جدول الترجمة في مخزن بيانات الترجمة في Oracle SPARC Architecture 2011، الإصدار D1.0.0، على بتات منفصلة للتنفيذ والكتابة. [ 8 ]

باور بي سي/باور آي إس إيه

تحتوي إدخالات جداول الصفحات المُجزأة في معالجات IBM PowerPC على بتة منع التنفيذ. [ 9 ] أما إدخالات جداول الصفحات ذات بنية الشجرة الجذرية في Power ISA، فتحتوي على بتات أذونات منفصلة تمنح صلاحيات القراءة/الكتابة والتنفيذ. [ 10 ]

PA-RISC

تدعم مداخل مخزن الترجمة المؤقت (TLB) ومداخل جدول الصفحات في معالجات PA-RISC 1.1 و PA-RISC 2.0 صفحات القراءة فقط، وصفحات القراءة/الكتابة، وصفحات القراءة/التنفيذ، وصفحات القراءة/الكتابة/التنفيذ. [ 11 ] [ 12 ]

إيتانيوم

تدعم إدخالات TLB في معالجات Itanium صفحات القراءة فقط، والقراءة/الكتابة، والقراءة/التنفيذ، والقراءة/الكتابة/التنفيذ. [ 13 ]

z/Architecture

اعتبارًا من الإصدار الثاني عشر من مبادئ تشغيل z/Architecture ، قد تدعم معالجات z/Architecture خاصية حماية تنفيذ التعليمات، والتي تضيف بتًا في إدخالات جدول الصفحات يتحكم فيما إذا كان يمكن تنفيذ التعليمات من منطقة أو مقطع أو صفحة معينة. [ 14 ]

انظر أيضاً

مراجع

  1. 1 2 "دليل مرجعي لهندسة ARM" (ملف PDF) . شركة ARM المحدودة . الصفحات  B4-8، B4-27. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 2009-02-06. تمت إضافة بتات APX وXN (عدم التنفيذ مطلقًا) في VMSAv6 [هندسة نظام الذاكرة الافتراضية].
  2. تيد سيمبسون؛ جيسون نوفاك (24 مايو 2017). الحوسبة الافتراضية العملية . سينجايج ليرنينج. الصفحات 8-9 . ISBN  978-1-337-10193-6.
  3. "منع تنفيذ البيانات" (ملف PDF) . هيوليت باكارد. 2005. تم الاطلاع عليه بتاريخ 23-03-2014 .
  4. "دليل مرجعي لهندسة ARM، ARMv8، لملف تعريف هندسة ARMv8-A" . شركة ARM المحدودة. الصفحات D4-1779، D4-1780، D4-1781، G4-4042، G4-4043، G4-4044، G4-4054، G4-4055. 
  5. دليل مرجعي لهندسة ألفا (ملف PDF) (الطبعة الرابعة ). شركة كومباك للكمبيوتر . يناير 2002. الصفحات 11-15 ، 17-15 ، 22-25 .  
  6. "دليل SPARC المعماري، الإصدار 8" . SPARC International . ص 244. 
  7. دليل بنية SPARC، الإصدار 9 (ملف PDF) . SPARC International. 1994. F.3.2 السمات التي تربطها وحدة إدارة الذاكرة (MMU) بكل عملية ربط، صفحة 284. ISBN 0-13-825001-4تمت أرشفة النسخة الأصلية (PDF) بتاريخ 18-01-2012.
  8. "Oracle SPARC Architecture 2011, Draft D1.0.0" (PDF) . شركة أوراكل . 12 يناير 2016. ص 452. 
  9. كتاب هندسة بيئة تشغيل PowerPC، الجزء الثالث، الإصدار 2.01 . شركة IBM . ديسمبر 2003. صفحة 31. 
  10. "Power ISA الإصدار 3.0" . شركة IBM. 30 نوفمبر 2015. ص 1003. 
  11. "دليل مرجعي لبنية ومجموعة تعليمات PA-RISC 1.1، الطبعة الثالثة" (ملف PDF) . هيوليت-باكارد . فبراير 1994. ص 3-13 . مؤرشف من النسخة الأصلية (ملف PDF) في 7 يونيو 2011. 
  12. جيري كين. "معمارية PA-RISC 2.0، الفصل 3: العنونة والتحكم في الوصول" (ملف PDF) . هيوليت-باكارد. ص 3-14 . مؤرشف من الأصل (ملف PDF) بتاريخ 9 يناير 2017. 
  13. "دليل مطوري برامج معمارية إنتل إيتانيوم، المجلد 2: معمارية النظام، الإصدار 2.0" . إنتل. ديسمبر 2001. ص 2:46. مؤرشف من الأصل في 9 يناير 2017. 
  14. مبادئ تشغيل بنية z (ملف PDF) . شركة IBM. سبتمبر 2017. ص 3 - 14.