السلام عليكم ورحمة الله وبركاته
ده رابط يحتوي على قائمة بال system calls في كيرنل اللينكس, مع شرح الarguments وكيفية الرد
http://sourceforge.net/projects/lscr
ملف المساعدة هتلاقوه في /help/main.html
أتمنى انه يكون مفيد
السلام عليكم ورحمة الله وبركاته
ده رابط يحتوي على قائمة بال system calls في كيرنل اللينكس, مع شرح الarguments وكيفية الرد
http://sourceforge.net/projects/lscr
ملف المساعدة هتلاقوه في /help/main.html
أتمنى انه يكون مفيد
تم تعديل هذه المشاركة بواسطة ماشي في 15 مايو 2007 في 19:45
هه
أنا فاكر الكلمه دي أيام ماكنا بناخد لينوكس في الكليه
system calls ودي بقه كأوامر تنفيذيه ولا دوال c ؟؟؟
الsystem calls هي طلب الخدمات الرئيسية المختلفة في الكيرنل مثل عمل fork أو تخصيص ذاكرة (وإن كان في اللينكس يتم استخدام sys_mmap أو sys_brk للقيام بذلك)
يتم في الغالب استدعاء الخدمة بعمل software interrupt وتكون فعلاً مكتوبة في صيغة دوال إذا كان الكيرنيل مكتوب بلغة عالية المستوى
وممكن بمكتبة الC القيام بهذه المهمات في أغلب النظم الشبيهة باليونكس
ياااااااااااااااااااااااااااااااااه فكرتني بأام مادة نظم التشغيل، علي فكره أنا كنتفيها عامل زي الحما ، ولا بلاش :D
أنا فهمت كل حاجه معادا السطر ده :
اقتباسيتم في الغالب استدعاء الخدمة بعمل software interrupt وتكون فعلاً مكتوبة في صيغة دوال إذا كان الكيرنيل مكتوب بلغة عالية المستوى
ممكن تبسطه شويه
زادك الله معرفة
أخي الكريم daziplqa
قصدي انه طرق طلب خدمات النظام تختلف من نظام لأخر .. لكنها في الغالب تكون عبر طلب software interrupt أي تحويل التحكم لinterrupt handler وهو مكان أخر في الذاكرة يكون فيه التعليمات الكفيلة بالتعامل مع خدمات النظام
مثال بسيط على sys_exit في كيرنل اللينكس لإنهاء عملية
movl $1, %eax movl $0, %ebx int $0x80
في المثال السابق حطينا رقم الخدمة المطلوبة (sys_exit هي الخدمة رقم 1) في مسجل الeax والstatus في مسجل الebx (صفر تعني عدم حدوث اخطاء) ثم طلبنا المقاطعة رقم 0x80 أي 128 بالنظام العشري
والمفترض أن يتم انهاء العملية التي تطلب الخدمة رقم 1 من المقاطعة $0x80
اقتباسوتكون فعلاً مكتوبة في صيغة دوال إذا كان الكيرنيل مكتوب بلغة عالية المستوى
إذا كان الكيرنل مكتوب بلغة عالية المستوى (مثل لغة الC في حالة اللينكس) .. فالأرجح أن يتم تقسيم الخدمات المختلفة على هيئة دوال بالفعل ..
تعالى نأخد مثال عملي من كيرنل اللينكس نفسه (اخترت نسخة قديمة جداً حتى تكون صغيرة الحجم)
http://www.kernel.org/pub/linux/kernel/His...nux-0.11.tar.gz
ستجد أن الخدمات الأساسية مكتوبة على هيئة دوال فعلاً في المجلد /kernel
(مثالنا السابق ستجده في الملف /kernel/exit.c)
int sys_exit(int error_code)
وكذلك ستجد الHandler في الملف system_call.s, وهو المسؤول عن طلب الدالة الصحيحة عند طلب خدمة معينة (أي طلب sys_exit عندما نضع الرقم 1 في الaccumulator , كما في مثالنا السابق)
وأعتذر إذا ماكانش شرحي واضح بما يكفي
ما قصرت ، جزاك الله خيرا
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…