التعامل (الحوسبة)

في برمجة الحاسوب ، المقبض هو مرجع مجرد لمورد يتم استخدامه عندما يشير برنامج التطبيق إلى كتل من الذاكرة أو كائنات تتم إدارتها بواسطة نظام آخر مثل قاعدة البيانات أو نظام التشغيل .

يمكن أن يكون مُعرِّف المورد مُعرِّفًا مُبهمًا ، وفي هذه الحالة غالبًا ما يكون عددًا صحيحًا (عادةً ما يكون فهرسًا في مصفوفة أو "جدول" يُستخدم لإدارة هذا النوع من الموارد)، أو قد يكون مؤشرًا يُتيح الوصول إلى معلومات إضافية. تشمل مُعرِّفات الموارد الشائعة مُعرِّفات الملفات ، ومنافذ الشبكة ، واتصالات قواعد البيانات ، ومُعرِّفات العمليات (PIDs)، ومُعرِّفات المهام . تُعد مُعرِّفات العمليات ومُعرِّفات المهام أعدادًا صحيحة مرئية صراحةً؛ بينما تُمثَّل مُعرِّفات الملفات والمنافذ (التي غالبًا ما تُنفَّذ كشكل من أشكال مُعرِّفات الملفات) بأعداد صحيحة، إلا أنها تُعتبر عادةً مُبهمة. في التطبيقات التقليدية، تكون مُعرِّفات الملفات فهارس في جدول مُعرِّفات الملفات (لكل عملية)، ومن ثم جدول الملفات (على مستوى النظام) .

مقارنة بالمؤشرات

بينما يحتوي المؤشر على عنوان العنصر الذي يشير إليه، فإن المقبض هو تجريد للمرجع تتم إدارته خارجيًا؛ إذ تسمح غموضه للنظام بنقل المرجع في الذاكرة دون إبطال المقبض، مما يجعله مشابهًا للذاكرة الافتراضية للمؤشرات، ولكنه أكثر تجريدًا. وبالمثل، تزيد طبقة التوجيه غير المباشر الإضافية من تحكم النظام المُدير في العمليات التي تُجرى على المرجع. عادةً ما يكون المقبض فهرسًا أو مؤشرًا إلى مصفوفة عامة من علامات الحذف .

يُعدّ تسريب المقابض نوعًا من أخطاء البرمجيات التي تحدث عندما لا يُحرر برنامج الحاسوب مقبضًا سبق له تخصيصه. وهذا شكل من أشكال تسريب الموارد ، يُشابه تسريب الذاكرة للذاكرة المُخصصة مسبقًا.

حماية

في مجال الحوسبة الآمنة ، ولأن الوصول إلى مورد ما عبر مُعرّف يتم بوساطة نظام آخر، فإن المُعرّف يعمل كصلاحية : فهو لا يُعرّف الكائن فحسب، بل يربط أيضاً حقوق الوصول . على سبيل المثال، بينما يُمكن تزوير اسم الملف (فهو مجرد مُعرّف يُمكن تخمينه)، فإن المُعرّف يُمنح للمستخدم من قِبل نظام خارجي، وبالتالي فهو لا يُمثل الهوية فحسب، بل يُمثل أيضاً حق الوصول الممنوح.

على سبيل المثال، إذا رغب برنامج ما في قراءة ملف كلمة مرور النظام ( /etc/passwd) في وضع القراءة/الكتابة ( O_RDWR)، فيمكنه محاولة فتح الملف عبر الاستدعاء التالي:

int fd = open ( "/etc/passwd" , O_RDWR );

يطلب هذا الاستدعاء من نظام التشغيل فتح الملف المحدد بالصلاحيات المحددة. إذا سمح نظام التشغيل بذلك، فإنه يفتح الملف (ينشئ مدخلاً في جدول واصفات الملفات لكل عملية ) ويعيد مؤشرًا (واصف الملف، وفهرسًا في هذا الجدول) إلى المستخدم: يتحكم نظام التشغيل في الوصول الفعلي، والمؤشر هو دليل على ذلك. في المقابل، قد يرفض نظام التشغيل الوصول، وبالتالي لا يفتح الملف ولا يعيد مؤشرًا.

في نظام قائم على الصلاحيات، يمكن تمرير مؤشرات بين العمليات، مع ما يرتبط بها من حقوق وصول. تجدر الإشارة إلى أنه في هذه الحالات، يجب ألا يكون المؤشر عددًا صحيحًا صغيرًا فريدًا على مستوى النظام، وإلا فإنه قابل للتزوير. مع ذلك، يمكن استخدام هذا العدد الصحيح لتحديد صلاحية داخل عملية ما؛ على سبيل المثال، لا يمكن تزوير مُعرّف الملف في لينكس لأن قيمته العددية وحدها لا معنى لها، ولا يمكن أن يشير إلى أي شيء إلا في سياق العملية. يتطلب نقل هذا المؤشر عناية خاصة، إذ غالبًا ما يجب أن تختلف قيمته بين العملية المُرسِلة والعملية المُستقبِلة.

في المقابل، في الأنظمة غير القائمة على الصلاحيات، يجب على كل عملية الحصول على مُعرّف خاص بها، وذلك بتحديد هوية المورد وحقوق الوصول المطلوبة (على سبيل المثال، يجب على كل عملية فتح ملف بنفسها، بتحديد اسم الملف ونمط الوصول). يُعد هذا الاستخدام أكثر شيوعًا حتى في الأنظمة الحديثة التي تدعم تمرير المُعرّفات، ولكنه عُرضة لثغرات أمنية مثل مشكلة الوكيل المُربك .

أمثلة

كانت المقابض حلاً شائعاً لإدارة الذاكرة في أنظمة التشغيل في التسعينيات، مثل نظامي التشغيل ماك أو إس [ 1 ] وويندوز . بنية بيانات FILE في مكتبة الإدخال/الإخراج القياسية للغة سي هي مقبض ملف ، حيث تُجرّد تمثيل الملف الأساسي (في أنظمة يونكس، تُسمى هذه المقابض بوصفات الملفات ). وكما هو الحال في بيئات سطح المكتب الأخرى ، تستخدم واجهة برمجة تطبيقات ويندوز المقابض بكثافة لتمثيل الكائنات في النظام وتوفير مسار اتصال بين نظام التشغيل ومساحة المستخدم . على سبيل المثال، تُمثَّل نافذة على سطح المكتب بمقبض من النوع HWND(مقبض، نافذة).

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

انظر أيضاً

مراجع

  1. هيرتزفيلد، آندي (يناير 1982)، ماكنتوش الأصلي: المجرية ، تم الاطلاع عليه بتاريخ 10 مايو 2010