vDSO
vDSO ( الكائن المشترك الديناميكي الافتراضي ) هي آلية في نواة النظام لتصدير مجموعة مختارة بعناية من إجراءات مساحة النواة إلى تطبيقات مساحة المستخدم ، بحيث يمكن للتطبيقات استدعاء هذه الإجراءات داخل العملية نفسها، دون تكبّد عبء الأداء الناتج عن تغيير الوضع من وضع المستخدم إلى وضع النواة، وهو أمر لا مفر منه عند استدعاء هذه الإجراءات نفسها عبر واجهة استدعاء النظام . [ 1 ] [ 2 ]
يستخدم vDSO آليات قياسية للربط والتحميل ، أي تنسيق ELF القياسي. [ 3 ] [ 4 ] vDSO عبارة عن مساحة ذاكرة مُخصصة في مساحة المستخدم، تُتيح الوصول إلى بعض وظائف النواة. يتم تخصيص vDSO ديناميكيًا ، ويُوفر أمانًا مُحسّنًا من خلال عشوائية تخطيط مساحة العناوين ، ويدعم أكثر من أربعة استدعاءات نظام. قد تُوفر بعض مكتبات C القياسية ، مثل glibc ، روابط vDSO، بحيث إذا لم تدعم النواة vDSO، يتم إجراء استدعاء نظام تقليدي. [ 5 ] يُساعد vDSO في تقليل الحمل الزائد للاستدعاءات في إجراءات النواة البسيطة، كما يُمكن استخدامه كطريقة لاختيار أفضل طريقة لاستدعاء النظام في بعض معمارية الحاسوب، مثل IA-32 . [ 6 ] من مزاياه على الطرق الأخرى أن هذه الإجراءات المُصدّرة تُوفر معلومات تصحيح أخطاء DWARF (تنسيق السجل المُنسّق). يتضمن التنفيذ عادةً استخدام روابط في الرابط الديناميكي للعثور على vDSOs.
طُوِّرَتْ تقنية vDSO لتوفير ميزات استدعاء النظام الظاهري مع التغلب على قيودها: صغر حجم الذاكرة المخصصة بشكل ثابت ، مما يسمح بأربعة استدعاءات نظام فقط، واستخدام نفس عناوين واجهة التطبيق الثنائية (ABI) في كل عملية، الأمر الذي يُعرِّض الأمان للخطر. وقد تم التخفيف من هذه المشكلة الأمنية عن طريق محاكاة استدعاء نظام ظاهري ، إلا أن هذه المحاكاة تُضيف زمن استجابة إضافيًا. [ 5 ]
مراجع
- ^ إنريكو بيرلا. ماسيميليانو أولداني (16 ديسمبر 2016). Kernel Hacking: عمليات استغلال محدثة ومكتوبة ومخفية: Schwachstellen in Kernel-Architekturen erkennen und Gegenmaßnahmen ergreifen (باللغة الألمانية). فرانزيس فيرلاج. ص 466–. رقم ISBN 978-3-645-20503-0.
- ↑ "vDSO - نظرة عامة على الكائن المشترك الديناميكي الافتراضي ELF" . كانونيكال. مؤرشف من الأصل في 4 مارس 2016. تم الاطلاع عليه في 10 ديسمبر 2015 .
- ↑ "إنشاء vDSO: الدجاجة الأخرى للعقيد" . Linuxjournal.com . تم الاطلاع عليه بتاريخ 16 فبراير 2015 .
- ↑ كوربيت، جوناثان (8 يونيو 2011). "حول استدعاءات النظام الظاهري وvDSO" . Lwn.net . تم الاطلاع عليه بتاريخ 16 فبراير 2015 .
- 1 2 "إجابة المجتمع على السؤال "ما هما vDSO و vsyscall؟"تم الاطلاع عليه بتاريخ 19 نوفمبر 2016 .
- ↑ دريسديل، ديفيد (16 يوليو 2014). "تشريح استدعاء النظام، الجزء 2" . Lwn.net . تم الاطلاع عليه في 19 نوفمبر 2018 .
- ↑ "sourceware.org Git - glibc.git/commit" . sourceware.org . تم الاطلاع عليه بتاريخ 13 نوفمبر 2024 .
- ميزات نواة لينكس
