Menu
Coddy logo textTech

מהי קריאת מערכת?

חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 31 מתוך 45.

כתבת הוראות אסמבלי כמו mov ו־lea. ההוראות האלה פועלות ישירות על המעבד. אבל מה אם צריך לעשות משהו שהמעבד לא יכול לעשות בעצמו, כמו להדפיס למסך, לקרוא מהמקלדת או לצאת מתוכנית?

למשימות האלה דרושה לך מערכת ההפעלה (Linux, בקורס הזה).

מהי קריאת מערכת?

syscall (קריאת מערכת) היא בקשה מהתוכנית שלך למערכת ההפעלה. כך מבקשים ממערכת ההפעלה לעשות משהו בשבילך.

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

משימההאם המעבד יכול לבצע אותה לבדו?נדרשת קריאת מערכת?
חיבור שני מספריםכןלא
העברת נתונים בין אוגריםכןלא
הדפסת טקסט על המסךלאכן
קריאת קלט מהמקלדתלאכן
יציאה מתוכניתלאכן
פתיחת קובץלאכן

איך syscall פועלת:

  1. שמים מספר syscall ב-rax (אומר למערכת ההפעלה מה רוצים)
  2. שמים ארגומנטים באוגרים אחרים (rdi, rsi, rdx וכו')
  3. מבצעים את הפקודה syscall
  1. המעבד קופץ לליבת מערכת ההפעלה
  2. מערכת ההפעלה מבצעת את הבקשה
  3. מערכת ההפעלה מחזירה את השליטה לתוכנית שלך

דימוי:

חשבו על קריאת מערכת כאילו אתם מתקשרים למשרד ממשלתי:

שלבדימויבאסמבלי
1החליטו איזה שירות אתם צריכיםבחרו מספר קריאת מערכת (שימו אותו ב־rax)
2מלאו את הטפסיםשימו את הארגומנטים באוגרים
3הגישו את הבקשהבצעו syscall
4הממשלה מטפלת בהליבת מערכת ההפעלה מבצעת את העבודה
5קבלו את התוצאה בחזרההתוכנית ממשיכה

קריאות המערכת שתלמד בקורס הזה:

קריאת מערכתמספרמה היא עושהפרק
exit60מסיימת את התוכניתפרק 4
write1מדפיסה טקסט למסךפרק 5

קריאת המערכת החשובה ביותר לעת עתה: <strong>exit</strong>

בלי exit, התוכנית שלך הייתה ממשיכה לפעול לנצח או קורסת. כל תוכנית שתכתוב חייבת להסתיים בקריאת מערכת מסוג exit.

mov rax, 60    ; מספר ה-syscall ליציאה
mov rdi, 0     ; קוד יציאה (0 = הצלחה)
syscall        ; בקשה ממערכת ההפעלה לצאת

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Assembly אונליין