Tech B Derja – Software Engineering Fi Loughtek : Chapter 4 — Operating Systems (أنظمة التشغيل)

SAMI
أكتوبر 28, 2025 5 mins to read
Share

Chapter 4 — Operating Systems (أنظمة التشغيل)


Préface

Pourquoi j’ai écrit Tech B Derja

Quand j’ai commencé à apprendre l’informatique, je me suis rapidement rendu compte d’une chose : presque toutes les ressources étaient en anglais ou en arabe classique.
Pour comprendre une seule notion, il fallait traduire, interpréter, puis essayer de l’adapter à notre réalité tunisienne. Beaucoup d’étudiants se découragent à ce stade : non pas parce qu’ils manquent de curiosité ou d’intelligence, mais simplement parce que la barrière linguistique rend l’accès au savoir plus difficile qu’il ne devrait l’être.

Tech B Derja est né de cette frustration — et d’un rêve : rendre la technologie compréhensible dans la langue que nous utilisons tous les jours.
Je voulais qu’un étudiant, un développeur débutant, ou même quelqu’un qui aime la tech sans être ingénieur, puisse ouvrir ce livre et dire : “Ah, enfin un cours qui parle comme moi.”
Parce que la Derja n’est pas un obstacle : c’est un pont entre notre culture et la connaissance moderne.

Ce livre n’a pas la prétention d’être académique. Il cherche simplement à expliquer les grands principes du Software Engineering d’une manière directe, humaine, et fidèle à notre manière tunisienne de raisonner : simple, concrète, et souvent pleine d’humour.
Les termes techniques restent en anglais — parce qu’ils font partie du langage universel des ingénieurs — mais tout ce qui entoure ces mots, tout ce qui fait sens, est raconté avec la voix du pays, avec nos expressions, notre ton, notre réalité.

J’espère que Tech B Derja donnera envie à une nouvelle génération de Tunisiens de comprendre la technologie, de créer, et de partager leurs idées.
Si, grâce à ce livre, un étudiant réussit à voir le code autrement — non plus comme une langue étrangère, mais comme un outil qu’il peut maîtriser — alors le pari est gagné.

Sami BELHADJ
Auteur & Formateur en Technologies
Tunis, 2025

Préface b Derja

3lech katabt Tech B Derja

Ki bdit ntaallam fi domaine ta3 l’informatique, chft elli akther men 90% men l resources kolhom b anglais, w elli ba9i b 3arbi fous7a ki te9ra fih, t7ess rouhek ta9ra traduction, mochkla fel logha 9bal ma tkon mochkla fel tech.

Bech tfhem concept wahda, tkoun 3andek trois mashakel : logha, contexte, w style ta3 teaching li ma ychabahch lina. W barcha tlamdha ysaybou el parcours 5aterhom ma y9drouch ywaff9ou bin el terminology ta3 tech w el 3arbi el 9adim.

Men hna ja l’idée ta3 Tech B Derja.
7bit na3mel livre tech fi loghetna — Derja — logha li nkalmo beha kol youm, li fahminha, li t3abber 3lina.
7bit el student ki y7ell el livre, y9oul : “eyy, hadha yekalmni, mafhmou w 9rib men 9albi.”

Tech B Derja ma houwech cours académique, houwa mouch dictionary ta3 code.
Houwa kitab yfassar el concepts ta3 Software Engineering b derja sahla, b exemples men el 7ay w b respect lel technical terms fi anglais.
El anglaizi b9a f ma7lou, 5ater el engineer fi el dounya lkol yesta3melha, ama el fahm walla fi loughtek inti.

El message ta3i b ssa7 : el tech ma hyaach 7a9r 3la wa7din, w el Derja ma hyaach 3a9ba.
El Derja najmou biha nfahmou, n5arjou projects kbira, w na3mlou innovation men bladna.

Inchallah Tech B Derja ykoun sabab bich talmidh wala developer tounsi yfhem el code b twensa, y7ess elli el tech 9riba menou, w elli el “engineering” ma houwech logha ghorba, bel hiya logha najmou n5alouha tounsia ken na3rfou kif.

Sami BELHADJ
Auteur w Formateur fi Technologies
Tounes, 2025

مقدّمة

علاش كتبت Tech B Derja

من أوّل ما بديت نتعلّم في الإعلاميّة، لحظت حاجة: أغلب الدروس والمصادر يا بالإنڨليزي، يا بالعربي الفصحى اللي ما نحكيوهاش في حياتنا.
باش تفهم فكرة وحدة، لازم ترجّعها في مخّك، وتفسّرها، وتخمّم فيها بثلاث لغات، وهاك اللوجيك يضيع بيناتهم.
وبرشا طلبة صغار ولا حتّى ديڤلوبر جداد، يتقلقو ويوقّفو، موش خاطر ما عندهمش مخّ، أمّا خاطر اللّغة وقفت قدّامهم.

من غادي جات الفكرة متاع Tech B Derja.
قلت: علاش ما نكتبش كتاب في التكنولوچيا بلغتنا نحنا؟
بالدرجة، بالأسلوب اللي نحكيو بيه كلّ يوم، بلا تكليف، بلا فصحى، بلا غُربة.
نحبّ الطالب كي يقرى يقول: “هاو الكتاب هذا يفهمني، يحكي كيفي، ومخّي يمشي معاه.”

Tech B Derja موش كتاب أكاديمي جامد، وموش قاموس متاع كود.
هو كتاب يحكي على مفاهيم Software Engineering بطريقة قريبة، ساهلة، وبأسلوب تونسي يخليك تفهم وتتصوّر.
خليت المصطلحات التقنية بالإنڨليزي خاطرها لغة الكود في العالم الكلّ، أمّا الباقي كلّو تونسي، مفهوم، وديما قريب من الواقع.

الفكرة إنّو التكنولوچيا ما هيش حاجة بعيدة علينا، وما ثماش سبب يخلّينا نحسّوها غريبة.
الدرجة تنجم تكون لغة علم، كيف ما كانت زمان لغة شعر وتاريخ.
بها نجّمو نفسّرو، نتعلّمو، ونبنيو حاجات كبار من بلادنا.

إن شاء الله Tech B Derja يكون سبب باش تلميذ تونسي ولا شابّ ديڤلوبر يفهم الكود بلغتو،
ويحسّ إليّ الدنيا الرقميّة ما هيش للناس اللّي “فهمين وحدهم”،
بل هي لينا الكلّ،
كيف نفهموها بطريقتنا.

سامي بالحاج
كاتب ومكوّن في التكنولوچيا
تونس، 2025



Introduction

أي computer ولا server ما يخدمش بلا Operating System.
الـ OS هو الأساس اللي يربط بين الهاردوير (المكوّنات الفيزيائية) والـ software (البرامج).
من غيرو، الماشين ما تعرفش كيف تستعمل الـ CPU, الـ RAM, ولا الـ storage.

الـ Operating System هو المسؤول باش ينظّم كل شي:
من وقت التشغيل (booting)
لإدارة الملفات (file system)
وحتّى لتوزيع الموارد بين البرامج (process scheduling).

في الفصل هذا، باش نحكيو على المفاهيم الأساسية متاع أنظمة التشغيل، كيفاش تخدم من داخل، وشنيّة علاقتها بالـ developers والـ system engineers.


1. Role of an Operating System

الـ OS هو الطبقة اللي بين المستخدم والهاردوير.
هو اللي يوفّر الـ interface بين البرامج والموارد الحقيقية.

باش نختصرو:
الـ OS هو “المُدير العام” متاع السيستام، يقرّر شكون يخدم، وقتاش، وبقدّاش موارد.

المهام الرئيسية:

  1. Process Management
  2. Memory Management
  3. File System Management
  4. Device Management
  5. Security & Access Control

كل وحدة منهم ضرورية باش الماشين تخدم بسلاسة.


2. Process Management

الـ process هي برنامج يخدم توا.
أما مش الكود، بل النسخة الحيّة اللي في الـ RAM وقت التشغيل.

الـ OS ينظّم تشغيل الـ processes، يعطيهم وقت في الـ CPU, ويبدّل بينهم بسرعة باش يبان كأنهم يخدمو في نفس الوقت.

الفكرة الأساسية:

  • Program: كود مكتوب ومخزّن.
  • Process: الكود هذا يخدم في الميموار.
  • Thread: وحدة تنفيذ داخل الـ process (تنجم تكون أكثر من وحدة).

Multitasking

وقتلي الـ OS يخلي برشا processes يخدمو مع بعض، هذا يسمّى multitasking.
في الواقع، الـ CPU يخدم وحدة وحدة، أما بسرعة كبيرة يبدّل بيناتهم (context switching).

مثلاً، كي تشغّل VS Code وChrome مع بعض، الـ OS يعطي شويّة وقت للأول وشويّة للثاني.


Process States

أي process تنجم تكون في حالة من الحالات التالية:

  • New: توا باش تبدا.
  • Ready: مستعدّة تخدم.
  • Running: قاعدة تخدم.
  • Waiting: تستنى في حاجة (كيما input).
  • Terminated: كملت.

الـ OS Scheduler هو اللي ينظّم التبديل بين الحالات حسب الأولويّة (priority).


3. Memory Management

الـ Memory (RAM) هي المكان اللي يتخزّن فيه كل شي مؤقّت وقت التشغيل.
الـ OS هو اللي يقرّر شنوّة يتخزّن، وين، وقدّاش.

باش يوفّر الكفاءة، الـ OS يستعمل مفاهيم كيما:

  • Paging: تقسيم الذاكرة إلى صفحات صغيرة (pages) باش نتحكّمو فيها بسهولة.
  • Virtual Memory: استعمال جزء من الـ storage كذاكرة إضافية وقت اللي الـ RAM تكمّل.
  • Segmentation: تقسيم حسب نوع البيانات أو الوظيفة.

هكاكا، كل process تحسّ عندها RAM خاصّة بيها، أما في الواقع الكل يخدمو على نفس الموارد.


4. File System Management

الـ File System هو الطريقة اللي يخزّن بيها الـ OS الملفات في القرص (disk).
هو اللي ينظّم كيفاش تتخزّن، تتسمّى، وتتقرا.

أمثلة على file systems:

  • NTFS (Windows)
  • EXT4 (Linux)
  • APFS (macOS)

الـ File System يخزّن كل ملف في شكل blocks في القرص، ومعاه metadata (المعلومات اللي توضّح اسم الملف، حجمو، المالك، الصلاحيات…).


5. Device Management

الـ OS هو اللي ينسّق بين البرامج والأجهزة الفيزيائية:
الفأرة، الكيبورد، الطابعة، الكاميرا…

كل جهاز عندو driver — برنامج صغير يربط بين الهاردوير والسيستام.
الـ OS يستعمل هالـ drivers باش يعرف كيفاش يتعامل مع الجهاز.

مثلاً:
كي تضغط على حرف في الكيبورد، الـ driver يبعث الإشارة للنظام، والنظام يفسّرها كرمز.


6. System Calls

الـ System Call هي الوسيلة اللي البرامج تتعامل بيها مع الـ OS.
يعني كيما “طلبات رسمية” باش تعمل عمليات حسّاسة.

مثلاً:

  • open() لفتح ملف
  • read() لقراءة البيانات
  • write() للكتابة
  • fork() لإنشاء process جديدة

الـ System Calls توفّر حماية، خاطر البرامج ما تمسّش الهاردوير مباشرة، تمرّ ديما عبر الـ OS.


7. User Mode vs Kernel Mode

الـ OS يخدم في زوز أوضاع:

  1. User Mode: وقت البرامج العادية تخدم. ما عندهاش صلاحية تمسّ النظام مباشرة.
  2. Kernel Mode: فيها صلاحيات كاملة للتحكم في الموارد. يخدم فيها الـ OS نفسه.

الـ Kernel هو قلب النظام، المسؤول على التواصل بين كل الطبقات.
الـ user mode هو للـ applications العادية.

هكا نحمي السيستام من crash ولا access خاطيء.


8. Concurrency vs Parallelism

الناس برشا تخلّط بيناتهم، أما الفرق واضح.

  • Concurrency معناها السيستام ينجم يتعامل مع برشا عمليات في نفس الوقت (لكن مش بالضرورة يخدمهم فعلاً مع بعض).
  • Parallelism معناها يخدم أكثر من عملية في نفس اللحظة على multiple CPUs ولا cores.

مثلاً:
لو عندك 4 CPU cores, تنجم تشغّل 4 عمليات في نفس اللحظة.
هذا Parallelism.
لكن وقت تستعمل نفس CPU وتبدّل بين العمليات بسرعة، هذا Concurrency.


9. Package Managers

في الأنظمة الحديثة، ما عادش نركّبو البرامج يدوي.
نستعمل package managers — أدوات تركّب، تحذف، وتحدّث البرامج بطريقة منظّمة.

أمثلة:

  • apt, yum (Linux)
  • brew (macOS)
  • npm, pip, composer (للبرمجة)

الـ package manager يتكفّل بالـ dependencies (المكتبات المطلوبة)، وهاك كيفاش السيستام يبقى stable ومحدّث.


10. Scheduling Algorithms

الـ Scheduler في الـ OS هو اللي يقرّر أي process تخدم توا.
يستعمل خوارزميات مختلفة باش يوازن بين الأداء والعدالة.

أنواعها:

  • First Come, First Served (FCFS): أول من يجي، أول من يخدم.
  • Shortest Job Next (SJN): العملية الأقصر تخدم قبل الطويلة.
  • Round Robin (RR): يعطي وقت صغير لكل process، ويدوّر بينهم.
  • Priority Scheduling: يعطي الأولوية حسب الأهمية.

كل واحدة عندها مميزات وعيوب حسب طبيعة السيستام.


11. Inter-Process Communication (IPC)

الـ processes تنجم تتبادل البيانات بين بعضها.
الـ OS يوفّر وسائل كيما:

  • Pipes
  • Message Queues
  • Shared Memory
  • Sockets

مثلاً في client-server system, الـ client يبعث request عبر socket, والـ server يجاوبو في نفس القناة.


12. Virtualization

الـ Virtualization معناها تشغيل أكثر من OS على نفس الهاردوير.
الـ Hypervisor هو اللي يوزّع الموارد بين الأنظمة الافتراضية (Virtual Machines).

أنواع الـ hypervisors:

  • Type 1 (Bare Metal): يخدم مباشرة على الهاردوير (مثلاً VMware ESXi).
  • Type 2 (Hosted): يخدم فوق OS (مثلاً VirtualBox).

الفايدة:
نجم نستعمل نفس السيرفر لأكثر من نظام، نختبر برامج بأمان، ونقسّم الموارد حسب الحاجة.


13. Containers vs Virtual Machines

الـ Containers (كيما Docker) تشبه VMs، أما أخفّ.
ما تعزلش OS كامل، بل تعزل environment خاصّ بالـ application.

الفرق:

العنصرVirtual MachineContainer
الحجمكبيرخفيف
الإقلاعبطيءسريع
المواردأكثرأقل
التوافقنظام كاملبيئة تشغيل فقط

الـ containers خفّاف وساهلين في النشر (deployment).
اليوم كل الشركات الكبيرة تستعملهم، خاصة مع Kubernetes.


14. Operating System Examples

النظامالخصائصالإستعمال
Windowsواجهة سهلة، قوي في الـ desktopالمؤسسات والمكاتب
Linuxمفتوح المصدر، آمن، خفيفالسيرفرات والمطورين
macOSتصميم أنيق، موجه للمبدعينالتصميم والتطوير
Androidمبني على Linux، مفتوح المصدرالهواتف الذكية
iOSنظام مغلق ومستقرأجهزة Apple المحمولة

كل نظام عندو فلسفة تصميم خاصة به، لكن المفاهيم الأساسية تبقى نفسها.


15. Security in Operating Systems

الأمان في الـ OS يبدأ من:

  • User Privileges: كل user عندو صلاحيات محدودة.
  • File Permissions: نتحكم شكون ينجم يقرا، يكتب، ولا يشغّل الملفات.
  • Sandboxing: نحصر البرامج في بيئة محدودة.
  • Updates: لازم تحديث مستمرّ ضدّ الثغرات.

في Linux مثلاً، المستخدم العادي ما ينجمش يمسح ملفات النظام إلا بإذن root.
وفي Windows، السيستام يحذّر وقت تحب تركّب حاجة تمسّ النظام.


Summary

الـ Operating System هو القلب اللي يحرّك الماشين.
من غيره، لا كود يخدم، لا application يشتغل، لا user يلقى واجهة.

اللي يفهم الـ OS يفهم كيف يخدم الـ hardware، كيف يتصرّف الـ memory, وكيف نحقّق الأداء العالي والأمان مع بعض.

كمطوّر، لازمك تكون على الأقل فاهم الأساسيات: processes, threads, memory, files, وsecurity.
خاطر الكود متاعك، في النهاية، ما يخدمش في الفراغ — يخدم فوق نظام تشغيلي لازم تعرفه.

Leave a comment

Your email address will not be published. الحقول الإلزامية مشار إليها بـ *