طلبات النظام

من أرابيكا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث

طلب النظام (بالإنجليزية: System call)‏ أو طلبات النظام هو الوسيلة لطلب الخدمات من نواة نظام التشغيل حتى يتم تنفيذها. قد تتضمن هذه الخدمات، خدمات معدات الحاسب الآلي (مثل الوصول إلى القرص الصلب) وإنشاء وتنفيذ عمليات جديده، والتواصل مع الخدمات الكاملة لخدمات النواة مثل جدولة المهام. كما أنها توفر واجهة بين المهام ونظام التشغيل. في معظم نظم التشغيل طلبات النظام تصنع في مساحة المستخدم، إلا انه في بعض الأنظمة يقوم رمز النظام المميز بإصدار طلبات النظام (مثل OS/360 and successors).[1]

الامتيازات

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

المكتبة البرمجية كوسيط

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

الطلب من المكتبة لا يدخل في وضع النواة (إذا لم يكن التنفيذ في وضع النواة قبلاَ). طلب النظام الأصلي ينقل التحكم إلى النواة (يعتمد أكثر على التنفيذ وعلى المنصة منه على طلب المكتبة الملخصة له). مثلا في النظم شبيهة يونكس الfork و execve من خصائص مكتبة سي تنفذ تعليمات طلبات النظام fork و execve. جعل طلبات النظام في شفرة التطبيق أكثر تعقيداً وقد يتطلب شفرة بلغة التجميع (assembly) حتى يمكن استخدامها، كذلك يحتاج إلى معرفة مستوى ضعيف من واجة الشفرة الثنائية (binary) لتنفيذ عمليات طلبات النظام التي قد تكون عرضة للتغير مع الزمن وبذلك لا تكون من جزء من التطبيق الواجهة الثنائية، خصائص المكتبة هي من صممت لتستبدل هذا.

أمثلة وأدوات

من طلبات النظام الشهيرة على يونكس، النظم شبيهة يونكس وأنظمة بوزيكس المتوافقة الأخرى:

  • open
  • read
  • write
  • close
  • wait
  • exec
  • fork
  • exit
  • kill

الكثر من الأنظمة الحديثة تحتوي على مئات طلبات النظام. مثلا لينكس وأوبن بي إس دي لديها أكثر من 300 من الطلبات المختلفة[2][3]، نت بي إس دي يحتوي على ما يقارب 500 من طلبات النظام[4]، فري بي ‌إس ‌دي يحتوي على ما يقارب 500 من طلبات النظام[5]، ويندوز7 يحوي على ما يقارب 700[6]، وبلان 9 يحتوي على 51 طلب.[7]

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

أقسام طلبات النظام

1-التحكم في المعالجات:

2-التحكم في الملفات:

  • إنشاء ملف، حذف ملف
  • فتح، اغلاق
  • اقرأ، اكتب، غير المكان
  • سمات الحصول على/ تعين للملف

3-التحكم في الجهاز:

  • اطلب جهاز، أطلق الجهاز
  • اقرأ، اكتب، غير المكان
  • سمات الحصول على / تعين للجهاز
  • ارفاق أو فصل الأجهزة منطقياً

4-صيانة المعلومات:

  • الحصول على / تعين الوقت أو التاريخ
  • الحصول على /تعين بيانات النظام
  • سمات الحصول على /تعين للمعالجات، للملفات، للأجهزة

5-الاتصال:

  • إنشاء، حذف اتصال
  • إرسال، استلام رسائل
  • تحول معلومات عن الحالة
  • ارفاق أو فصل أجهزة التحكم عن بعد

المراجع

  1. ^ BM (March 1967). "Writing SVC Routines". IBM System/360 Operating System System Programmer's Guide (PDF). Third Edition. pp. 32–36. C28-6550-2.
  2. ^ "syscalls(2) - Linux manual page"
  3. ^ OpenBSD (2013-09-14). "System call names (kern/syscalls.c)". BSD Cross Reference.
  4. ^ NetBSD (2013-10-17). "System call names (kern/syscalls.c)". BSD Cross Reference
  5. ^ "FreeBSD syscalls.c, the list of syscall names and IDs"
  6. ^ Author: Mateusz "j00ru" Jurczyk (2017-11-05). "Windows WIN32K.SYS System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)"
  7. ^ "Plan 9 sys.h, the list of syscall names and IDs"