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

Nov 23, 2024

מערכות הפעלה - תרגול

נושאים עיקריים

  • מערכת קבצים (File System)
  • מטלת תכנות בנושא קריאות מערכת (System Calls)

מערכת הקבצים

  • סוגי מערכות קבצים:

    • iNode בלינוקס
    • NTFS ו-FAT32 בווינדוס
    • מערכת קבצים של מק
  • קריאות מערכת (System Calls):

    • מותאמות למערכת ההפעלה המסוימת
    • לא פועלות על מערכות הפעלה אחרות

עבודה עם שרתים ומכונות וירטואליות

  • שימוש במכונה וירטואלית להתקנה ותרגול
  • אפשרות חיבור לשרת באמצעות טרמינל
  • התקנת BitVise להעברת קבצים בין מחשב לשרת

קריאות מערכת (System Calls)

System Call: Open

  • פותח file descriptor לזיהוי קבצים
  • מחזיר מספר מזהה או מינוס אחד במקרה של כשל
  • פלגים להגדרת הרשאות (read, write, execute וכו')

System Call: Close

  • סוגר file descriptor
  • חשוב לשחרר משאבים

System Call: Read

  • קורא נתונים מקובץ ל-buffer
  • מחזיר מספר בתים שקרא בפועל

System Call: Write

  • כותב נתונים מ-buffer לקובץ
  • מחזיר מספר בתים שכתב בפועל

System Call: LSeek

  • משחק עם המיקום בקובץ
  • יכול להזיז את הסמן קדימה ואחורה

System Call: Dup

  • משכפל file descriptor
  • מאפשר ניתוב מחדש של תקני קלט ופלט סטנדרטיים

מטלה

  • כתיבת קוד שמשווה בין שני קבצים
  • החזרה של 0 אם הקבצים זהים, 1 אם שונים, -1 במקרה של שגיאה
  • שימוש בשמות קבצים כארגומנטים בשורת פקודה
  • טיפול בשגיאות ובדיקת מספר ארגומנטים בקוד

המלצות

  • לבצע את המטלה בימים הקרובים כדי לשמור את המידע טרי
  • לשמור חלק א' לסיום חלק ב' מאוחר יותר

שאלות ותשובות

  • הסבר על ניתוב קלט ופלט סטנדרטיים באמצעות dup
  • חשיבות בדיקת שגיאות ושחרור משאבים
  • דוגמה לקוד שמשכפל קבצים