שאלות נפוצות
ציר זמן
צ'אט
פרספקטיבה

קריאת מערכת

מוויקיפדיה, האנציקלופדיה החופשית

Remove ads

קריאת מערכתאנגלית: System call) היא בקשה שמבצעת תוכנת מחשב מליבת מערכת ההפעלה (Kernel) כדי לבצע פעולה שהיא אינה יכולה לבצע בעצמה. קריאות מערכת הן האחראיות על החיבור שבין המשתמש לליבת המערכת, ובכך מאבזרת את המשתמש ונותנת לו שימוש מרבי בפונקציונליות שהיא מציעה. הדבר כולל בין היתר יכולת קבלת גישה לרכיבי חומרה (למשל קריאת קובץ מהדיסק הקשיח), ליצירת תהליך חדש, להעברת מידע בין תהליכים ועוד[1].

ערך מחפש מקורות
Remove ads

הצורך בקריאות מערכת

כל תהליך הוא בעל רמת הרשאה שמאפשרת להפעיל פקודות מסט הפקודות של המעבד ולכל פקודה בסט הפקודות יש רמת הרשאה הנדרשת על מנת להפעילה. רמות הרשאה אלו נקראות rings. במעבדים בעלי ארכיטקטורת IA-32 למשל, ישנן 4 הרשאות, מ-0 עד 3, כאשר ring 0 היא הרשאה שמאפשרת ביצוע של כל הפקודות ו-ring 3 היא רמת ההרשאה המוגבלת ביותר[2]. מערכת ההפעלה רצה ב-ring 0 ומקבלת גישה לכל הפקודות שהמעבד מספק. כאשר תהליך שרץ תחת מערכת ההפעלה מעוניין להריץ פקודה שאין לו הרשאה לבצעה, עליו לפנות למערכת ההפעלה בבקשה שתבצע עבורו את השירות. הקריאות האפשריות, כמו גם הפרמטרים אותם יש להעביר נקבעים ב-API של מערכת ההפעלה.

Remove ads

אופן הפעולה

כמעט תמיד, קריאת מערכת תשלחנה ממצב ריצה בו ההרשאות נמוכות מהרשאות קרנל (ring 0) לשם הגדלת פונקציונליות. רוב מערכות ההפעלה לא מאפשרות הרצת קריאת מערכת מring 0. עם זאת, ישנן מערכות שמאפשרות שליחת קריאות מערכת גם דרך תהליכים השייכים ל-ring 0.

תהליך מבצע קריאת מערכת באמצעות הרצת פקודה מסט הפקודות של המעבד שגורמת ליצירת פסיקה. הפסיקה מפסיקה את הרצת התהליך ומתחילה להריץ קוד של מערכת ההפעלה שתפקידו לטפל בקריאות מערכת[1]. במקרה שהתהליך מנסה להריץ בעצמו פקודה שאין לו הרשאה להריצה, המעבד יזהה זאת ויודיע למערכת ההפעלה על ידי יצירת פסיקה שמפעילה שגרה של מערכת הפעלה שמטפלת בכך.

Remove ads

דוגמאות לקריאות מערכת

חלונות

NtCreateProcess: זוהי קריאת מערכת המאפשרת ליצור תהליך חדש.

לינוקס

fork: זוהי קריאת מערכת המאפשרת ליצור תהליך חדש.[3]

הערות שוליים

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads