← كل المقالات

شنو هي System Calls و دورها فـ تنفيذ البرامج (Python و C)

شرح عملي وتقني لـ System Calls: شنو كيديرو، علاش مهمين، وكيفاش Python و C كيوصلو للـ kernel.

  • os
  • system-calls
  • python
  • c

مقدمة

فاش كنشغلو شي program سواء بـ C ولا Python، غالباً كنظنو باللي البرنامج هو اللي كيدير كلشي.
ولكن فالحقيقة، أي program ماعندوش الحق يتعامل مباشرة مع hardware (disk, screen, network…).

الحل هو: System Calls.


شنو هي System Calls

التعريف

System Call هي:

طريقة رسمية باش program يطلب service من Operating System (kernel).


علاش كنحتاجو System Calls؟

البرامج العادية (بحال Python ولا C) خدامين فـ:

User Mode

وما عندهمش صلاحيات يديرو مباشرة:

  • كتابة فـ disk
  • قراءة file
  • طباعة فـ الشاشة
  • network access

هاد الشي كامل خاصو يتم فـ:

Kernel Mode

الحل

System Call كتدير transition:

User Mode

System Call

Kernel Mode

Workflow عام

Program (Python / C)

C function (library/runtime)

System Call

Operating System (Kernel)

Hardware

CPU executes instructions

مثال 1: print فـ Python

print("hello")

شنو كيوقع تحت:

Python code

Interpreter (CPython)

C function (print implementation)

System Call (write)

OS (kernel)

Screen output

مثال 2: فتح file

f = open("test.txt")

شنو كيوقع:

Python code

Interpreter

C function (open wrapper)

System Call (open/openat)

OS

Disk access

أمثلة ديال System Calls (Linux)

  • open() -> فتح file
  • read() -> قراءة data
  • write() -> كتابة data
  • close() -> تسكير file
  • fork() -> إنشاء process

فين كاين System Call تقنياً؟

System Call كيدير switch مهم:

User Mode -> Kernel Mode

كيفاش؟

  • instruction خاصة فالـ CPU (بحال syscall)
  • كتبدل context execution وتدخل للـ kernel

علاش ما نخليوش البرامج يديرو كلشي مباشرة؟

لو البرنامج كان يقدر يتعامل مباشرة مع hardware، غادي تكون مشاكل كبيرة:

  • security risks
  • programs يقدرو يخربو النظام
  • access غير مراقب للموارد

الحل:

  • OS كيتحكم فكلشي
  • البرامج خاصها تطلب permission عبر system calls

العلاقة مع Python execution

فـ Python:

Python code

Bytecode

PVM

C functions

System Calls

OS

CPU

مهم:

  • Python ماكيتعاملش مباشرة مع OS
  • كيستعمل C functions
  • وهاد functions هما اللي كيديرو system calls

الفرق مع C

C

C program

System Calls (via libc)

OS

Python

Python program

Interpreter (C)

C runtime functions

System Calls

مفاهيم مهمة

User Mode

  • البرامج العادية
  • صلاحيات محدودة

Kernel Mode

  • OS kernel
  • صلاحيات كاملة

System Call

  • bridge بين User Mode و Kernel Mode

أخطاء شائعة

  • Python كيتعامل مباشرة مع hardware: غلط
  • CPU كينفذ Python source مباشرة: غلط
  • System Calls غير فـ C: غلط (حتى Python كيستعملهم عبر C runtime)

الفهم الصحيح

  • أي program خاصو OS باش يتعامل مع hardware
  • System Calls هما الطريقة الرسمية
  • Python كيوصل لها عبر interpreter مكتوب بـ C

الخلاصة

Program -> System Call -> OS -> CPU