Chapter 4 — Operating Systems (أنظمة التشغيل)
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
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 موش كتاب أكاديمي جامد، وموش قاموس متاع كود.
هو كتاب يحكي على مفاهيم Software Engineering بطريقة قريبة، ساهلة، وبأسلوب تونسي يخليك تفهم وتتصوّر.
خليت المصطلحات التقنية بالإنڨليزي خاطرها لغة الكود في العالم الكلّ، أمّا الباقي كلّو تونسي، مفهوم، وديما قريب من الواقع.
الفكرة إنّو التكنولوچيا ما هيش حاجة بعيدة علينا، وما ثماش سبب يخلّينا نحسّوها غريبة.
الدرجة تنجم تكون لغة علم، كيف ما كانت زمان لغة شعر وتاريخ.
بها نجّمو نفسّرو، نتعلّمو، ونبنيو حاجات كبار من بلادنا.
إن شاء الله Tech B Derja يكون سبب باش تلميذ تونسي ولا شابّ ديڤلوبر يفهم الكود بلغتو،
ويحسّ إليّ الدنيا الرقميّة ما هيش للناس اللّي “فهمين وحدهم”،
بل هي لينا الكلّ،
كيف نفهموها بطريقتنا.
سامي بالحاج
كاتب ومكوّن في التكنولوچيا
تونس، 2025
أي computer ولا server ما يخدمش بلا Operating System.
الـ OS هو الأساس اللي يربط بين الهاردوير (المكوّنات الفيزيائية) والـ software (البرامج).
من غيرو، الماشين ما تعرفش كيف تستعمل الـ CPU, الـ RAM, ولا الـ storage.
الـ Operating System هو المسؤول باش ينظّم كل شي:
من وقت التشغيل (booting)
لإدارة الملفات (file system)
وحتّى لتوزيع الموارد بين البرامج (process scheduling).
في الفصل هذا، باش نحكيو على المفاهيم الأساسية متاع أنظمة التشغيل، كيفاش تخدم من داخل، وشنيّة علاقتها بالـ developers والـ system engineers.
الـ OS هو الطبقة اللي بين المستخدم والهاردوير.
هو اللي يوفّر الـ interface بين البرامج والموارد الحقيقية.
باش نختصرو:
الـ OS هو “المُدير العام” متاع السيستام، يقرّر شكون يخدم، وقتاش، وبقدّاش موارد.
المهام الرئيسية:
كل وحدة منهم ضرورية باش الماشين تخدم بسلاسة.
الـ process هي برنامج يخدم توا.
أما مش الكود، بل النسخة الحيّة اللي في الـ RAM وقت التشغيل.
الـ OS ينظّم تشغيل الـ processes، يعطيهم وقت في الـ CPU, ويبدّل بينهم بسرعة باش يبان كأنهم يخدمو في نفس الوقت.
الفكرة الأساسية:
وقتلي الـ OS يخلي برشا processes يخدمو مع بعض، هذا يسمّى multitasking.
في الواقع، الـ CPU يخدم وحدة وحدة، أما بسرعة كبيرة يبدّل بيناتهم (context switching).
مثلاً، كي تشغّل VS Code وChrome مع بعض، الـ OS يعطي شويّة وقت للأول وشويّة للثاني.
أي process تنجم تكون في حالة من الحالات التالية:
الـ OS Scheduler هو اللي ينظّم التبديل بين الحالات حسب الأولويّة (priority).
الـ Memory (RAM) هي المكان اللي يتخزّن فيه كل شي مؤقّت وقت التشغيل.
الـ OS هو اللي يقرّر شنوّة يتخزّن، وين، وقدّاش.
باش يوفّر الكفاءة، الـ OS يستعمل مفاهيم كيما:
هكاكا، كل process تحسّ عندها RAM خاصّة بيها، أما في الواقع الكل يخدمو على نفس الموارد.
الـ File System هو الطريقة اللي يخزّن بيها الـ OS الملفات في القرص (disk).
هو اللي ينظّم كيفاش تتخزّن، تتسمّى، وتتقرا.
أمثلة على file systems:
الـ File System يخزّن كل ملف في شكل blocks في القرص، ومعاه metadata (المعلومات اللي توضّح اسم الملف، حجمو، المالك، الصلاحيات…).
الـ OS هو اللي ينسّق بين البرامج والأجهزة الفيزيائية:
الفأرة، الكيبورد، الطابعة، الكاميرا…
كل جهاز عندو driver — برنامج صغير يربط بين الهاردوير والسيستام.
الـ OS يستعمل هالـ drivers باش يعرف كيفاش يتعامل مع الجهاز.
مثلاً:
كي تضغط على حرف في الكيبورد، الـ driver يبعث الإشارة للنظام، والنظام يفسّرها كرمز.
الـ System Call هي الوسيلة اللي البرامج تتعامل بيها مع الـ OS.
يعني كيما “طلبات رسمية” باش تعمل عمليات حسّاسة.
مثلاً:
الـ System Calls توفّر حماية، خاطر البرامج ما تمسّش الهاردوير مباشرة، تمرّ ديما عبر الـ OS.
الـ OS يخدم في زوز أوضاع:
الـ Kernel هو قلب النظام، المسؤول على التواصل بين كل الطبقات.
الـ user mode هو للـ applications العادية.
هكا نحمي السيستام من crash ولا access خاطيء.
الناس برشا تخلّط بيناتهم، أما الفرق واضح.
مثلاً:
لو عندك 4 CPU cores, تنجم تشغّل 4 عمليات في نفس اللحظة.
هذا Parallelism.
لكن وقت تستعمل نفس CPU وتبدّل بين العمليات بسرعة، هذا Concurrency.
في الأنظمة الحديثة، ما عادش نركّبو البرامج يدوي.
نستعمل package managers — أدوات تركّب، تحذف، وتحدّث البرامج بطريقة منظّمة.
أمثلة:
الـ package manager يتكفّل بالـ dependencies (المكتبات المطلوبة)، وهاك كيفاش السيستام يبقى stable ومحدّث.
الـ Scheduler في الـ OS هو اللي يقرّر أي process تخدم توا.
يستعمل خوارزميات مختلفة باش يوازن بين الأداء والعدالة.
أنواعها:
كل واحدة عندها مميزات وعيوب حسب طبيعة السيستام.
الـ processes تنجم تتبادل البيانات بين بعضها.
الـ OS يوفّر وسائل كيما:
مثلاً في client-server system, الـ client يبعث request عبر socket, والـ server يجاوبو في نفس القناة.
الـ Virtualization معناها تشغيل أكثر من OS على نفس الهاردوير.
الـ Hypervisor هو اللي يوزّع الموارد بين الأنظمة الافتراضية (Virtual Machines).
أنواع الـ hypervisors:
الفايدة:
نجم نستعمل نفس السيرفر لأكثر من نظام، نختبر برامج بأمان، ونقسّم الموارد حسب الحاجة.
الـ Containers (كيما Docker) تشبه VMs، أما أخفّ.
ما تعزلش OS كامل، بل تعزل environment خاصّ بالـ application.
الفرق:
| العنصر | Virtual Machine | Container |
|---|---|---|
| الحجم | كبير | خفيف |
| الإقلاع | بطيء | سريع |
| الموارد | أكثر | أقل |
| التوافق | نظام كامل | بيئة تشغيل فقط |
الـ containers خفّاف وساهلين في النشر (deployment).
اليوم كل الشركات الكبيرة تستعملهم، خاصة مع Kubernetes.
| النظام | الخصائص | الإستعمال |
|---|---|---|
| Windows | واجهة سهلة، قوي في الـ desktop | المؤسسات والمكاتب |
| Linux | مفتوح المصدر، آمن، خفيف | السيرفرات والمطورين |
| macOS | تصميم أنيق، موجه للمبدعين | التصميم والتطوير |
| Android | مبني على Linux، مفتوح المصدر | الهواتف الذكية |
| iOS | نظام مغلق ومستقر | أجهزة Apple المحمولة |
كل نظام عندو فلسفة تصميم خاصة به، لكن المفاهيم الأساسية تبقى نفسها.
الأمان في الـ OS يبدأ من:
في Linux مثلاً، المستخدم العادي ما ينجمش يمسح ملفات النظام إلا بإذن root.
وفي Windows، السيستام يحذّر وقت تحب تركّب حاجة تمسّ النظام.
الـ Operating System هو القلب اللي يحرّك الماشين.
من غيره، لا كود يخدم، لا application يشتغل، لا user يلقى واجهة.
اللي يفهم الـ OS يفهم كيف يخدم الـ hardware، كيف يتصرّف الـ memory, وكيف نحقّق الأداء العالي والأمان مع بعض.
كمطوّر، لازمك تكون على الأقل فاهم الأساسيات: processes, threads, memory, files, وsecurity.
خاطر الكود متاعك، في النهاية، ما يخدمش في الفراغ — يخدم فوق نظام تشغيلي لازم تعرفه.