مساحة المستخدم ومساحة النواة
يستخدم نظام تشغيل الحاسوب الحديث عادةً الذاكرة الافتراضية لتوفير مساحات عناوين منفصلة أو مناطق ضمن مساحة عنوان واحدة، تُسمى مساحة المستخدم ومساحة النواة . [ 1 ] [ أ ] يوفر هذا الفصل في المقام الأول حماية للذاكرة وحماية للأجهزة من السلوك البرمجي الضار أو الخاطئ.
مساحة النواة مخصصة حصراً لتشغيل نواة نظام التشغيل ذات الامتيازات ، وامتدادات النواة، ومعظم برامج تشغيل الأجهزة . في المقابل، مساحة المستخدم هي منطقة الذاكرة التي تُنفذ فيها برامج التطبيقات ، والخدمات ، وبعض برامج التشغيل، وعادةً ما يكون لكل عملية مساحة عنوان واحدة.
تُعرف عمليات الاستغلال التي تستهدف مساحة المستخدم بشكل عام باسم "استغلالات مساحة المستخدم".
ملخص
يشير مصطلح "مساحة المستخدم" (أو "بيئة المستخدم ") إلى جميع التعليمات البرمجية التي تعمل خارج نواة نظام التشغيل. [ 2 ] وتشير مساحة المستخدم عادةً إلى البرامج والمكتبات المختلفة التي يستخدمها نظام التشغيل للتفاعل مع النواة: البرامج التي تُجري عمليات الإدخال/الإخراج ، وتتعامل مع كائنات نظام الملفات ، وبرامج التطبيقات ، وما إلى ذلك.
عادةً ما تعمل كل عملية في مساحة المستخدم ضمن مساحة ذاكرة افتراضية خاصة بها ، ولا يمكنها الوصول إلى ذاكرة العمليات الأخرى إلا بإذن صريح. هذا هو أساس حماية الذاكرة في أنظمة التشغيل الشائعة اليوم، وعنصر أساسي في فصل الصلاحيات . كما يمكن استخدام وضع مستخدم منفصل لإنشاء آلات افتراضية فعّالة - انظر متطلبات المحاكاة الافتراضية لبوبك وغولدبيرغ . مع توفر الصلاحيات الكافية، يمكن للعمليات أن تطلب من النواة ربط جزء من مساحة ذاكرة عملية أخرى بمساحتها الخاصة، كما هو الحال بالنسبة لأدوات تصحيح الأخطاء . يمكن للبرامج أيضًا طلب مناطق ذاكرة مشتركة مع عمليات أخرى، على الرغم من وجود تقنيات أخرى متاحة للسماح بالاتصال بين العمليات .
| وضع المستخدم | تطبيقات المستخدم | باش ، ليبر أوفيس ، جيمب ، بلندر ، 0 AD ، موزيلا فايرفوكس ، ... | ||||
|---|---|---|---|---|---|---|
| مكونات النظام | برنامج بدء التشغيل : OpenRC ، runit ، systemd ، ... | برامج النظام : polkitd ، smbd ، sshd ، udevd ، ... | نظام النوافذ : X11 ، Wayland ، SurfaceFlinger (أندرويد) | الرسومات : ميسا ، برمجيات AMD ، ... | مكتبات أخرى: GTK ، Qt ، EFL ، SDL ، SFML ، FLTK ، GNUstep ، ... | |
| مكتبة C القياسية | fopenexecv... ( حتى 2000 روتين فرعي ) تهدف مكتبة glibc إلى أن تكون سريعة، وتهدف مكتبة musl إلى أن تكون خفيفة الوزن، وتستهدف مكتبة uClibc الأنظمة المدمجة، وقد كُتبت مكتبة bionic لنظام Android ، إلخ . وتهدف جميعها إلى أن تكون mallocمتوافقة مع معيار POSIX / SUS .memcpylocaltimepthread_create | |||||
| وضع النواة | نواة لينكس | stat، splice، dup، ، read، open، ioctl، write، mmap، close، exitإلخ. (حوالي 380 استدعاء نظام) تهدف واجهة استدعاء النظام لنواة لينكس (SCI) إلى أن تكون متوافقة مع POSIX / SUS [ 3 ] | ||||
| نظام فرعي لجدولة العمليات | نظام IPC الفرعي | نظام فرعي لإدارة الذاكرة | نظام الملفات الافتراضية | النظام الفرعي للشبكات | ||
| مكونات أخرى: ALSA ، DRI ، evdev ، klibc ، LVM ، مُحدد الأجهزة ، مُجدول شبكة لينكس ، Netfilter . وحدات أمان لينكس : SELinux ، TOMOYO ، AppArmor ، Smack. | ||||||
| المكونات المادية ( وحدة المعالجة المركزية ، الذاكرة الرئيسية ، أجهزة تخزين البيانات ، إلخ). | ||||||
تطبيق
تتمثل الطريقة الأكثر شيوعًا لتنفيذ وضع المستخدم بشكل منفصل عن وضع النواة في حلقات الحماية الخاصة بنظام التشغيل . وتُنفذ حلقات الحماية بدورها باستخدام أوضاع وحدة المعالجة المركزية . عادةً، تعمل برامج مساحة النواة في وضع النواة ، والذي يُسمى أيضًا وضع المشرف ؛ بينما تعمل التطبيقات القياسية في مساحة المستخدم في وضع المستخدم.
تعتمد بعض أنظمة التشغيل على مساحة عنوان واحدة ، حيث تُستخدم مساحة عنوان واحدة لجميع تعليمات وضع المستخدم. (قد تكون تعليمات وضع النواة في نفس مساحة العنوان، أو في مساحة عنوان منفصلة). بينما تعتمد أنظمة تشغيل أخرى على مساحات عناوين خاصة بكل عملية، حيث تُستخدم مساحة عنوان منفصلة لكل عملية من عمليات وضع المستخدم.
انظر أيضاً
ملحوظات
- ↑ لا تستخدمأنظمة التشغيل القديمة، مثل DOS و Windows 3.1x ، هذه البنية.
مراجع
- ↑ "مساحة العناوين" . خيارات مساحة العناوين لأنظمة 32 بت.
- ↑ "userland, n." The Jargon File . Eric S. Raymond . مؤرشف من الأصل بتاريخ 18-07-2017 . تم الاطلاع عليه بتاريخ 14-08-2016 .
- ↑ "دليل المسؤول README" . مستودعات Kernel.org git .
روابط خارجية
- تعريف مساحة نواة لينكس
- الدخول إلى وضع المستخدم في آلة Wayback (تمت أرشفته في 26 مارس 2016)
- تقنية نظام التشغيل
- برامج تشغيل الأجهزة
