What Happens Inside the Computer When You Run a Program?
?
إيه اللي بيحصل جوه الكمبيوتر لما بتشغّل برنامج؟
رحلة من الصفر 🚀 — مش محتاج تكون فاهم أي حاجة في الكمبيوتر قبل كده. هنمشي خطوة خطوة من أول ما تدوس Run لحد ما النتيجة تنوّر قدامك على الشاشة.
كل يوم بتفتح برامج وتطبيقات: واتساب، يوتيوب، لعبة… بتدوس على الأيقونة وفي ثواني البرنامج بيفتح.
بس عمرك سألت نفسك: إيه اللي حصل جوه الجهاز في الثواني دي؟ 🤔
في الملف ده هنفتح "كبّوت" الكمبيوتر ونشوف كل قطعة بتعمل إيه، بالتشبيهات البسيطة اللي أي حد يفهمها.
هنجاوب على أسئلة زي: • الكمبيوتر بيفهم كلامي إزاي؟ • يعني إيه RAM وليه الناس بتقول "زوّد الرامات"؟ • مين "المدير" جوه الجهاز؟ • إزاي الرقم 8 ظهر على الشاشة بعد ما حسبت 5 + 3؟
قاعدة الملف ده: مفيش مصطلح هنقوله من غير ما نشرحه بمثال من الحياة. لو لقيت كلمة إنجليزي، جنبها معناها بالبلدي 😄
التشبيه اللي هنمشي بيه 🍽️
هنتخيّل الكمبيوتر مطعم: فيه شيف بيطبخ، طاولة تجهيز قدامه، مخزن كبير، رسّام بيزيّن الأطباق، ومدير بينظّم الكل. كل واحد فيهم هيطلع قطعة في الكمبيوتر… هتعرفهم في الصفحة الجاية!
?
طيب قبل أي حاجة… يعني إيه "كمبيوتر" أصلاً؟
1/20→
?
يعني إيه كمبيوتر أصلاً؟ وإيه الفرق بينه وبين الآلة الحاسبة؟
الكمبيوتر ببساطة: آلة بتاخد مدخلات، تعمل عليها حسابات، وتطلّع نتيجة. الفرق عن الآلة الحاسبة؟ إنه بيعرف ينفّذ أي سلسلة أوامر تديهاله — مش الجمع والطرح بس.
Input مدخلات
كيبورد · ماوس · ملف · كاميرا
→
Process معالجة
الحسابات جوه الجهاز
→
Output مخرجات
شاشة · سماعة · طابعة
1
Hardware = العتاد
القطع اللي تقدر تلمسها بإيدك: الشاشة، الكيبورد، المعالج، الرامات، الهارد. لو فتحت الجهاز هتشوفها.
2
Software = البرامج
الحاجات اللي ما تقدرش تلمسها: Windows، واتساب، الألعاب، الكود اللي بتكتبه. دي "تعليمات" بتقول للعتاد يعمل إيه.
main.py
print("Hi")
تشبيه لذيذ 🎹
Hardware = البيانو نفسه (خشب ومفاتيح). Software = النوتة الموسيقية اللي بتقول تدوس على أنهي مفتاح وإمتى. البيانو من غير نوتة ساكت، والنوتة من غير بيانو مجرد ورقة!
يعني إيه "برنامج"؟ مجموعة أوامر مكتوبة بالترتيب، الكمبيوتر بينفّذها واحد ورا التاني. زي وصفة الطبخ: "اغلي المياه، حط المكرونة، استنى 10 دقايق". الكمبيوتر بيعمل بالظبط اللي مكتوب — لا أكتر ولا أقل!
مهم تعرف: الكمبيوتر غبي جدًا وسريع جدًا 😅 مش بيفهم ولا بيفكّر، بس بينفّذ ملايين الأوامر البسيطة في الثانية. الذكاء كله في الأوامر اللي البشر كتبوها.
?
طيب مين أبطال الرحلة اللي جوه الجهاز؟
2/20→
?
تعرّف على أبطال الرحلة القطع اللي جوه الكمبيوتر
5 أبطال هنقابلهم في كل صفحة جاية. خد فكرة سريعة عنهم دلوقتي، وبعدين هنتعمّق في كل واحد لوحده.
CPU — المعالج
الشيف 👨🍳 اللي بينفّذ كل الأوامر. بيحسب، يقارن، ينقل بيانات — بسرعة مليارات العمليات في الثانية. لما تسمع "Core i7" أو "Ryzen" ده هو.
RAM — الذاكرة المؤقتة
طاولة التجهيز 🍳 اللي قدام الشيف. أي حاجة الشيف شغّال عليها دلوقتي بتبقى عليها عشان يوصلها بسرعة. لما تقفل الجهاز بتتمسح خالص. (8GB، 16GB…)
SSD / HDD — الهارد
المخزن الكبير 📦 اللي فيه كل الأكل والمكونات. كل ملفاتك وبرامجك وصورك ساكنة هنا بشكل دائم حتى لو قفلت الجهاز. كبير بس أبطأ من الطاولة. (512GB، 1TB…)
GPU — كارت الشاشة
الرسّام 🎨 اللي بيزيّن الطبق. شغلته يرسم الصورة اللي بتشوفها على الشاشة، نقطة نقطة (Pixel). ضروري جدًا في الألعاب والفيديو.
OS — نظام التشغيل
المدير 👔 اللي بينظّم المطعم كله. Windows، macOS، Linux، Android، iOS — كلهم أنظمة تشغيل. بيدير القطع اللي فوق ويخلّي البرامج تشتغل من غير ما تتخانق.
ملحوظة: في قطع تانية (اللوحة الأم Motherboard، الباور سبلاي…) بس دول الـ 5 الأساسيين اللي بيشتركوا في رحلة البرنامج. ركّز معاهم وهتفهم 90% من اللي بيحصل.
?
طيب يعني إيه "كود"؟ وإزاي بنكلّم الكمبيوتر؟
3/20→
?
يعني إيه كود؟ وإزاي بنكلّم الكمبيوتر؟
الكود = أوامر مكتوبة بلغة الكمبيوتر بيعرف يتعامل معاها. زي ما بتكتب رسالة لصاحبك بالعربي، بتكتب للكمبيوتر بلغة برمجة زي Python.
1
أبسط برنامج في الدنيا
main.py
print("Hello World!")
السطر ده بيقول للكمبيوتر: "اطبع الجملة دي على الشاشة". خلاص! ده برنامج كامل، وأول برنامج أي مبرمج في العالم بيكتبه 😄
نفكّك السطر: • print = الأمر (اطبع / اعرض) • ( ) = القوسين بيحطّوا جوّاهم الحاجة اللي هنطبعها • "Hello World!" = النص اللي هيظهر • .py = امتداد الملف بيقول إنه ملف Python
2
ليه اسمها "لغة"؟
لأن ليها كلمات وليها قواعد (Syntax). لو غلطت في حرف واحد أو نسيت قوس، الكمبيوتر مش هيفهمك وهيقولك "Error". مش بيخمّن قصدك زي البشر!
غلط ❌
print("Hello World!"
ناقص قوس ← SyntaxError
تشبيه لذيذ
الكود زي وصفة طبخ لشيف حرفي جدًا: لو كتبت "حط ملح" من غير ما تقول قد إيه، هيقف ويسألك. ولو كتبت "اغلي" قبل "حط مياه"… هيحرق الحلّة 🔥
JavaScript 🌐 لغة المواقع. أي زرار بيتحرك في صفحة ويب ورا منه JavaScript.
C / C++ ⚙️ سريعة جدًا وقريبة من العتاد. بتتكتب بيها الألعاب الكبيرة وأنظمة التشغيل نفسها.
كلها بتوصل لنفس النتيجة في الآخر: أوامر الكمبيوتر ينفّذها. الفرق في السهولة والسرعة والاستخدام — زي ما في عربية للمشاوير وعربية للسباق 🏎️
?
كتبت الكود وضغطت Run… مين أول واحد بيستلم؟
4/20→
?
ضغطت Run … مين بيبدأ الشغل؟
لما تدوس Run، مش بيحصل "سحر"… ده 3 لاعيبة بيسلّموا بعض الكورة بالترتيب: الـ IDE ← المترجم ← نظام التشغيل.
1
IDE — المحرر اللي بتكتب فيه
الـ IDE (زي VS Code أو PyCharm) هو البرنامج اللي بتكتب فيه الكود. زي "Word" بس للكود: بيلوّن الكلمات، يقولك فين الغلط، وفيه زرار Run الأخضر.
المفاجأة: الـ IDE نفسه مش بيفهم Python! هو مجرد دفتر ذكي. لما تدوس Run، كل اللي بيعمله إنه بيكتب الأمر ده في الخلفية:
Terminal
$ python main.py
يعني إيه الأمر ده؟ "يا python، شغّل الملف اللي اسمه main.py". تقدر تكتبه بنفسك في الـ Terminal (الشاشة السودا) من غير IDE خالص!
main.py
1print("Hello World!") 2
يعني إيه Terminal؟ شاشة سودا بتكتب فيها أوامر للكمبيوتر بالكلام بدل الماوس. شكلها مخيف بس هي أبسط ما يكون 😄
2
Python Interpreter — المترجم
برنامج اسمه python بيفتح ملفك ويقرأه سطر سطر ويحوّل كل سطر لحاجة الكمبيوتر يقدر ينفّذها. هنتكلم عنه بالتفصيل في الصفحة الجاية.
main.py
→
Python Interpreter
→
3
OS — المدير بيدّي الأدوات
المترجم نفسه برنامج ومحتاج حد يشغّله ويديله مكان! نظام التشغيل بيفتحه، يديله ذاكرة، يديله وقت على المعالج، ويسمح له يقرأ ملفك من الهارد.
ذاكرة
وقت معالج
قراءة الملف
تشبيه لذيذ
الـ IDE = الجرسون اللي كتب طلبك · المترجم = الواسطة اللي بتفهّم الشيف الطلب بلغته · الـ OS = المدير اللي أدّاهم المطبخ والأدوات عشان يشتغلوا 🍽️
?
طيب المترجم ده بيعمل إيه بالظبط؟
5/20→
?
الـ Interpreter المترجم الفوري بيشتغل إزاي؟
ملف الـ .py بتاعك هو مجرد نص عادي زي أي ملف Word. من غير المترجم، الكمبيوتر بيشوفه حروف وخلاص. المترجم هو اللي بيحوّل الحروف دي لـ"أفعال".
1
بيقرأ ويفحص
أول حاجة بيعملها: يقرأ الملف كله ويتأكد إن مفيش أخطاء في الكتابة (قوس ناقص، كلمة غلط). لو لقى غلطة بيوقف فورًا ويطبع لك Error بيقولك السطر كام.
main.py
1 name = "Ahmed" 2 age = 20 3print(name, age)
2
بينفّذ سطر سطر
بعدين يبدأ من السطر 1، ينفّذه، يروح للسطر 2، ينفّذه… وهكذا. كل سطر بيتحوّل لحظة التنفيذ لتعليمات صغيرة الكمبيوتر يفهمها.
سطر 1 ← "احجز مكان في الذاكرة اسمه name وحط فيه Ahmed"
سطر 2 ← "احجز مكان اسمه age وحط فيه 20"
سطر 3 ← "هات اللي في name و age واعرضهم على الشاشة"
تشبيه لذيذ 🎧
المترجم الفوري في المؤتمرات: الرئيس بيتكلم جملة، المترجم يترجمها على طول، الرئيس يقول الجملة اللي بعدها، المترجم يترجمها… جملة جملة في نفس اللحظة. ده بالظبط الـ Interpreter. (في طريقة تانية اسمها Compiler هنعرفها بعد شوية).
3
طيب الـ Interpreter بيحوّل الكود لإيه؟
main.py
الكود بتاعك
→
Python Interpreter
→
1010 0101
Bytecode
لغة وسيطة
→
Python Virtual Machine
→
Bytecode يعني إيه؟ لغة "نص نص": مش الكود اللي كتبته ولا لغة الآلة، حاجة في النص بينهم أسهل في التنفيذ. Python بيحفظها في فولدر __pycache__ — شوفته قبل كده؟ 😉
ما تقلقش: كل ده بيحصل أوتوماتيك في أجزاء من الثانية. إنت بتدوس Run وخلاص. بس المهم تعرف إن في "وسيط" بين كودك والمعالج.
?
بس استنى… هو الكمبيوتر أصلاً بيفهم Python؟
6/20→
?
هو الكمبيوتر بيفهم Pythonأصلاً؟
لأ! الكمبيوتر ما بيفهمش Python ولا أي لغة برمجة. الحاجة الوحيدة اللي بيفهمها: لغة الآلة (Machine Code) = أصفار ووحايد 0 1 0 1
1
ليه 0 و 1 بس؟
لأن المعالج من جوه عبارة عن مليارات المفاتيح الكهربائية الصغيرة (Transistors). والمفتاح الكهربائي ليه حالتين بس:
كهرباء ماشية = 1
كهرباء واقفة = 0
عشان كده أي حاجة في الكمبيوتر — أرقام، حروف، صور، أغاني — في الآخر متخزّنة كسلسلة من 0 و 1. الـ Bit هو صفر أو واحد، و8 بتات = Byte.
2
يعني إيه "تعليمة" بلغة الآلة؟
كل مجموعة من الـ 0 و 1 = أمر بسيط جدًا جدًا للمعالج:
10110000 01100010 11001101 00010010
← حط رقم في مكان ← اجمع رقمين ← قارن ← انقل بيانات
الأوامر دي تافهة لوحدها، بس المعالج بينفّذ مليارات منها في الثانية — فبتطلع لعبة أو فيلم!
تشبيه لذيذ 🧱
الـ 0 و 1 زي طوبة واحدة: لوحدها ملهاش لازمة. بس مليون طوبة متراصين صح = عمارة. والكمبيوتر بيرصّ مليارات في الثانية.
3
طيب ليه ما نكتبش بالـ 0 و 1 على طول؟
زمان كانوا بيعملوا كده فعلًا! 😱 وكان كابوس: صعب، بطيء، وأي غلطة في رقم واحد بتبوّظ كل حاجة. عشان كده اخترعوا لغات عالية المستوى (High-Level) زي Python: إنت تكتب كلام قريب من الإنجليزي، و"مترجم" يحوّله لـ 0 و 1.
طيب الترجمة دي ليها طريقتين… Compiler ولا Interpreter؟
7/20→
?
Compiler ولا Interpreter؟ طريقتين للترجمة
عندك كتاب بالإنجليزي وعايز تفهمه. يا إمّا تترجمه كله الأول وتقرأ النسخة العربية براحتك، يا إمّا تجيب حد يترجم لك جملة جملة وإنت ماشي. دول بالظبط الطريقتين.
1
Compiler = ترجمة الكتاب كله
بيترجم الكود كله مرة واحدة لملف جاهز بلغة الآلة (زي .exe على Windows). بعد كده تشغّل الملف ده على طول — وتوزّعه على أي حد من غير ما يحتاج الكود الأصلي.
.cpp
→
Compiler
→
0101 1100
.exe
لغات:C · C++ · Rust · Go ✅ سريع جدًا وقت التشغيل ✅ الملف الناتج شغّال لوحده ⏳ لازم تعمل Compile قبل كل تجربة 😅 الأخطاء بتظهر كلها قبل التشغيل
2
Interpreter = مترجم فوري
بيشغّل الكود سطر سطر في نفس لحظة التشغيل. كل مرة تدوس Run بيعيد القراءة والترجمة من أول وجديد. ومحتاج يكون Python متسطّب على الجهاز اللي هيشغّل الكود.
.py
→
Interpreter
→
لغات:Python · JavaScript · PHP · Ruby ✅ تجرّب وتعدّل بسرعة ✅ نفس الكود يشتغل على أي جهاز 🐢 أبطأ شوية وقت التشغيل 😅 الغلطة ممكن تظهر في النص وإنت شغّال
مثال من الحياة
Compiler = فيلم أجنبي مدبلج: اتترجم مرة واحدة في الاستوديو، وبعدين أي حد يتفرّج من غير مجهود. Interpreter = مترجم لغة إشارة واقف جنب المذيع بيترجم لحظة بلحظة.
طيب أنهي أحسن؟ ولا واحد! كل واحد ليه مكانه. Python اتصمّمت عشان تكون سهلة وسريعة في التجربة فاستخدمت Interpreter. والألعاب الكبيرة محتاجة أقصى سرعة فبتتكتب بـ C++ وتتعمل لها Compile.
?
طيب مين "المدير" اللي بيشغّل كل ده ويديله ذاكرة ومعالج؟
8/20→
?
مين المدير جوه الجهاز؟ نظام التشغيل (OS)
نظام التشغيل = أول برنامج بيشتغل لما تفتح الجهاز، وآخر واحد بيقفل. هو اللي بيدير كل القطع وكل البرامج، ومن غيره الجهاز مجرد حديد ساكت.
1
أمثلة إنت عارفها
💻 Windows — أشهر نظام على اللابتوب والـ PC
🍎 macOS — نظام أجهزة Apple (ماك بوك)
🐧 Linux — مجاني ومفتوح، بيشغّل أغلب السيرفرات في العالم
كلهم بيعملوا نفس الوظيفة الأساسية، بس بشكل وطريقة مختلفة. عشان كده برنامج Windows مش بيشتغل على Mac مباشرة.
2
ليه محتاجينه؟
تخيّل كل برنامج لازم يعرف يكلّم الكيبورد بنفسه، ويعرف يرسم على الشاشة بنفسه، ويحجز ذاكرة بنفسه… كان هيبقى كل برنامج حجمه جيجات ومليان أخطاء!
الـ OS بيعمل كل ده مرة واحدة للجميع. البرنامج بيقوله "عايز أطبع كلمة" والـ OS يتصرّف. زي الكاونتر في المطعم: إنت بتطلب، ومش شغلك تعرف المطبخ شغّال إزاي.
3
المدير مسؤول عن إيه بالظبط؟
إدارة العمليات
يشغّل البرامج، يوزّع عليهم وقت المعالج، ويقفل اللي بيهنج.
إدارة الذاكرة
يدّي كل برنامج مساحة في الـ RAM ويمنعهم يدوسوا على بعض.
الملفات
الفولدرات والملفات وأسماءها والصلاحيات — كله شغل الـ OS.
الأجهزة (Drivers)
يكلّم الكيبورد والماوس والشاشة والطابعة بلغة كل واحد فيهم.
🔐
الأمان
مين مسموح له يفتح إيه، كلمات السر، والمستخدمين.
🌐
الشبكة
الواي فاي والإنترنت وتبادل البيانات مع الأجهزة التانية.
?
طيب لما أشغّل برنامج… المدير بيعمل إيه بالظبط؟
9/20→
?
البرنامج اتشغّل… يعني إيه Process؟
البرنامج وهو نايم على الهارد اسمه Program (ملف). أول ما تشغّله ويبقى صاحي وشغّال في الذاكرة، اسمه Process (عملية).
1
الـ OS بيعمل Process جديدة
لما تدوس Run، نظام التشغيل بيعمل الآتي بالترتيب:
① يقرأ ملف البرنامج من الهارد (SSD)
② يحجز له مساحة في الذاكرة (RAM)
③ يديله رقم تعريف فريد اسمه PID
④ يحطه في طابور المستنيين دور على المعالج
⑤ المعالج يبدأ ينفّذ أول تعليمة فيه 🚀
main.py
Program (نايم)
→→
Process PID: 1234
Process (صاحي)
يعني إيه PID؟ Process ID = رقم البطاقة بتاع البرنامج. زي ما كل مواطن ليه رقم قومي، كل Process ليها رقم عشان الـ OS يعرف يتابعها أو يقفلها.
تشبيه لذيذ 🎭
Program = نص المسرحية مكتوب على ورق في الدرج. Process = الممثلين بيمثّلوها فعلًا على المسرح دلوقتي. ونفس النص ممكن يتمثّل على 3 مسارح في نفس الوقت = 3 Processes من نفس البرنامج (زي ما تفتح Chrome 3 مرات).
2
شوفها بعينك! 👀
افتح Task Manager على Windows (اضغط Ctrl + Shift + Esc) أو Activity Monitor على Mac. هتلاقي قايمة بكل الـ Processes الشغّالة دلوقتي، وكل واحدة بتاكل قد إيه من المعالج والذاكرة.
ولما برنامج "يهنج" وتعمل End Task — إنت كده بتقول للـ OS: "اقتل الـ Process دي" 💀
Task Manager
Name PID CPU RAM chrome.exe 4821 12% 850MB python.exe 1234 3% 40MB Code.exe 7710 5% 320MB spotify.exe 2290 1% 210MB
?
طيب إزاي 50 برنامج شغّالين "مع بعض" على معالج واحد؟
10/20→
?
50 برنامج شغّالين على معالج واحد… إزاي؟
المعالج (كل نواة فيه) بيشتغل على برنامج واحد بس في اللحظة الواحدة. طيب إزاي بتسمع أغاني وتكتب كود و30 تاب مفتوحين في نفس الوقت؟ السر في حاجتين: التبديل السريع وعزل الذاكرة.
1
CPU Scheduling — جدولة المعالج
جوه الـ OS في جزء اسمه Scheduler (المنظّم). بيدّي كل Process شريحة وقت صغيرة جدًا على المعالج — حوالي جزء من ألف من الثانية — وبعدين يسحبه ويدّي اللي بعده، ويرجع للأول… وهكذا.
التبديل ده بيحصل آلاف المرات في الثانية، فعينك مش بتلحق تحس، وبتفتكر إن الكل شغّال مع بعض. اسمه Multitasking.
Chrome
Python
Spotify
Ready Queue
مستنّين دورهم
→→
Spotify
Running
شغّال دلوقتي
تشبيه لذيذ 👨🍳
شيف واحد وقدامه 5 حلل: يقلّب دي ثانية، يبص على دي ثانية، يملّح دي ثانية… بسرعة لدرجة إن الـ 5 أطباق بيستووا "مع بعض". وعشان كده لما تفتح حاجات كتير أوي الجهاز بيبطّأ — الشيف مش لاحق!
2
Memory Management — عزل الذاكرة
الـ OS بيدّي كل Process مساحة ذاكرة خاصة بيها ومعزولة عن الباقي. كل برنامج "فاكر" إن الذاكرة كلها بتاعته لوحده، بس في الحقيقة الـ OS بيوزّع الـ RAM الحقيقية بينهم كلهم (اسمها Virtual Memory).
الفايدة: لو Chrome هنج أو عمل غلطة، مش هيبوّظ ملف الـ Word اللي إنت بتكتب فيه — لأن كل واحد في "أوضته" لوحده 🚪
Chrome
Python
Spotify
⇢⇢
RAM الحقيقية
تشبيه لذيذ 🏨
فندق: كل نزيل (Process) ليه أوضة بمفتاح خاص. ما ينفعش يدخل أوضة غيره ولا يعرف فيها إيه. والمدير (OS) هو اللي بيوزّع الأوض وبيعرف مين فين.
?
طيب البرنامج بيتخزن فين وهو شغّال؟ في الـ RAM ولا الـ SSD؟
11/20→
?
البرنامج بيتخزن فين وهو شغّال؟
البرنامج ساكن بشكل دائم على الهارد (SSD / HDD)… لكن وقت التشغيل، الأجزاء المطلوبة منه بتتنقل للـ RAM، لأن المعالج ما بيقراش غير من الـ RAM.
1
SSD / HDD
المخزن الدائم
بيتحمّل منه الجزء المطلوب
⟶
2
RAM
طاولة الشغل
المعالج يقرأ منها
⇄
ويرجّع لها النتائج
3
CPU
الشيف
التشبيه الأهم في الملف كله 📚
تخيّل إنك بتذاكر في مكتبة عامة:
• الـ SSD = الرفوف الكبيرة اللي فيها آلاف الكتب (كل ملفاتك).
• الـ RAM = المكتب اللي قاعد عليه: بتحط عليه بس الكتب اللي بتذاكر منها دلوقتي. صغير بس كل حاجة عليه قريبة من إيدك.
• الـ CPU = إنت وإنت بتقرأ وبتحل.
مستحيل تقرأ وإنت واقف قدام الرف — لازم تجيب الكتاب على المكتب الأول. وعشان كده المعالج ما بيشتغلش من الهارد مباشرة!
ليه الناس بتقول "زوّد الرامات"؟ 🤔 لو المكتب صغير ومليان، ومحتاج كتاب جديد… هتضطر ترجّع كتاب للرف عشان تفضّي مكان، وبعدين ترجع تجيبه تاني لما تحتاجه. ده اسمه Swapping، وهو اللي بيخلّي الجهاز "يزنّ" ويبطّأ لما تفتح برامج كتير. مكتب أكبر = كتب أكتر قدامك = سرعة.
وليه الـ SSD بيخلّي الجهاز "يطير"؟ 🚀 الـ HDD القديم عبارة عن قرص بيلف وإبرة بتدور عليه (زي الأسطوانة) — بطيء. الـ SSD مفيش فيه حاجة بتتحرك، إلكتروني خالص — أسرع 10 مرات أو أكتر. فالكتب بتوصل للمكتب أسرع بكتير، وWindows بيفتح في ثواني بدل دقايق.
معلومة لذيذة: مش لازم البرنامج كله يتحمّل في الـ RAM مرة واحدة! الـ OS بيقسّمه لصفحات صغيرة (Pages) ويحمّل بس اللي محتاجه دلوقتي. عشان كده لعبة حجمها 100 جيجا بتشتغل على رامات 16 جيجا 🎮
?
طيب إيه الفرق بالظبط بين RAM و SSD؟
12/20→
?
RAM و SSD الفرق بينهم في جدول واحد
الاتنين "ذاكرة" بيخزّنوا بيانات… بس لكل واحد شغلانة مختلفة تمامًا. الناس بتخلط بينهم كتير، فخلّينا نحسمها.
وجه المقارنة
RAM (الذاكرة المؤقتة)
SSD / HDD (الهارد)
الشغلانة
طاولة الشغل — اللي شغّال عليه دلوقتي
المخزن — اللي محفوظ على طول
لما تقفل الجهاز
كل حاجة بتتمسح 💨
كل حاجة بتفضل موجودة ✅
السرعة
سريعة جدًا جدًا ⚡
أبطأ بكتير (حتى الـ SSD)
الحجم المعتاد
8 – 32 جيجا
256 جيجا – عدة تيرا
السعر
أغلى لكل جيجا 💰
أرخص لكل جيجا
مين بيستخدمها
المعالج بيقرأ منها مباشرة
الـ OS بينقل منها للـ RAM
مثال
الصفحة المفتوحة في Chrome دلوقتي
صورك وأغانيك وملفات Windows
1
مثال عملي: بتفتح صورة
① الصورة نايمة على الـ SSD في فولدر Pictures
② بتدوس عليها دبل كليك ← الـ OS يفتح برنامج الصور (Process)
③ الـ OS ينسخ الصورة من الـ SSD للـ RAM
④ المعالج يفك ضغطها ويجهّزها، والـ GPU يعرضها
⑤ تقفل البرنامج ← النسخة اللي في الـ RAM تتمسح، الأصل فاضل على الـ SSD
2
طيب ليه بنحفظ (Save)؟ 💾
دلوقتي فهمت! لما تكتب في Word، الكلام بيبقى في الـ RAM بس. لو الكهربا قطعت… راح 😱
لما تدوس Ctrl + S، إنت بتقول للـ OS: "انقل النسخة دي من الـ RAM وسجّلها على الـ SSD" — عشان تفضل موجودة للأبد.
ده السبب إن البرامج الحديثة بتعمل Auto-Save كل شوية 😉
في كمان ذاكرة تالتة!
جوه المعالج نفسه في ذاكرة صغيرة جدًا وأسرع من الـ RAM اسمها Cache — زي الورقة اللي في إيدك وإنت بتحل، أقرب حتى من المكتب. هنشوفها في الصفحة الجاية.
?
طيب المعالج بيجيب التعليمات من الـ RAM وينفّذها إزاي؟
13/20→
?
إزاي الـ CPU بيفهم وينفّذ الأوامر؟
المعالج بيكرّر 3 خطوات بس… مليارات المرات في الثانية. كل عبقرية الكمبيوتر في التكرار ده!
المعالج ما بيعرفش يعمل حاجة "كبيرة". بيعرف يعمل حاجة صغيرة جدًا بس، وبيكرّرها بسرعة خرافية. الدورة دي اسمها Fetch – Decode – Execute.
1Fetch هات التعليمة
→
2Decode افهمها
→
3Execute نفّذها
↺ وارجع للخطوة 1 مع التعليمة اللي بعدها… وهكذا لحد ما البرنامج يخلص
1
Fetch = هات
المعالج بيروح يجيب التعليمة التالية من الـ RAM. بيعرف يجيبها منين؟ عنده "إصبع" بيأشّر على السطر الجاي اسمه Program Counter (PC).
Program Counter (الإصبع)
↓
Cache
↓
زي ما بتحط إصبعك على السطر وإنت بتقرأ عشان ما تتوهش.
2
Decode = افهم
جزء اسمه Control Unit (وحدة التحكم) بيبص على الـ 0 و 1 ويفهم: "دي عملية إيه؟ جمع؟ نقل؟ مقارنة؟" و"الأرقام اللي هشتغل عليها فين؟"
10110000
↓
Control Unit
↓
"دي جمع! والأرقام في R0 و R1"
زي ما تقرأ "اجمع 5 + 3" وتفهم إن المطلوب جمع.
3
Execute = نفّذ
المعالج ينفّذ فعلًا. لو جمع، يبعته لـALU (الآلة الحاسبة). لو نقل، ينقل. والنتيجة بتتحفظ في مكان صغير اسمه Register.
R0
5
R1
3
→→
8
أمثلة: جمع · طرح · مقارنة · نقل · "اقفز لسطر تاني" (ده اللي بيعمل الـ if والـ loop!)
يعني إيه 3 GHz؟ يعني الساعة الداخلية بتدق 3 مليار مرة في الثانية ⏱️ — وكل دقة بتتم فيها خطوة من الدورة. و"4 Cores" يعني 4 شيفات بيشتغلوا مع بعض!
?
طيب إيه اللي جوه المعالج؟ ALU و Registers دول إيه؟
14/20→
?
نفتح المعالج من جوه إيه اللي فيه؟
المعالج مش قطعة واحدة… ده "مطبخ صغير" فيه 4 أجزاء رئيسية بيشتغلوا مع بعض. تعالى نتعرّف عليهم واحد واحد.
CPU
Control Unit
وحدة التحكم = المدير الصغير
بيفهم التعليمة وبيقول لباقي الأجزاء "إنت اعمل كده، وإنت هات ده". هو اللي بيعمل خطوة الـ Decode.
ALU = الآلة الحاسبة
Arithmetic Logic Unit. بتعمل الحساب (+ − × ÷) والمقارنة (أكبر؟ يساوي؟) والمنطق (و / أو / لا). أي "تفكير" في الكمبيوتر بيحصل هنا.
R0
5
R1
3
R2
8
Registers = جيوب الشيف
أماكن تخزين صغيرة جدًا (عشرات بس) وأسرع حاجة في الجهاز كله. الـ ALU ما بيحسبش غير من هنا. زي الجيوب: مش بيشيلوا كتير بس أسرع من أي دولاب.
Cache
الكاش = الرف اللي جنبك
ذاكرة صغيرة جوه المعالج، أسرع من الـ RAM وأبطأ من الـ Registers. بتحتفظ بالحاجات اللي المعالج استخدمها قريب عشان ما يروحش للـ RAM كل مرة.
سلّم السرعة: كل ما تقرّب من المعالج، أسرع وأصغر وأغلى
Registers
أسرع · بايتات
>
Cache
ميجابايتات
>
RAM
جيجابايتات
>
SSD
تيرابايتات · أبطأ
تشبيه لذيذ 🧑🍳
الشيف وهو بيطبخ: الجيوب (Registers) فيها الملعقة اللي في إيده · الرف اللي جنبه (Cache) فيه الملح والفلفل · طاولة التجهيز (RAM) فيها مكونات النهارده · المخزن (SSD) فيه كل حاجة. كل ما الحاجة بعيدة، بياخد وقت أطول يجيبها.
الـ 5 والـ 3 جايين من الـ RAM. المعالج ينسخهم في Register رقم 0 ورقم 1 عشان يبقوا في إيده.
R0
5
R1
3
2
اجمع
ADD R2, R0, R1
وحدة التحكم تقول للـ ALU: "اجمع اللي في R0 على اللي في R1 وحط الناتج في R2".
5
3
→→
8
3
احفظ النتيجة
STORE [mem], R2
الناتج 8 دلوقتي في R2. المعالج يرجّعه للـ RAM في مكان البرنامج حاجزه عشان يستخدمه بعدين.
R2
8
→
4
اطلب عرضها
CALL print
البرنامج يقول للـ OS: "اعرض الرقم ده". وهنا بتبدأ رحلة تانية خالص — رحلة الـ 8 للشاشة (الصفحة الجاية).
يعني إيه الكلام ده (LOAD, ADD, STORE)؟ دي لغة اسمها Assembly: أقرب لغة للـ 0 و 1 بس بكلمات بدل أرقام عشان البشر يعرفوا يقرأوها. كل سطر فيها = تعليمة واحدة للمعالج. الـ Python بتاعك بيتحوّل لحاجة زي دي في الآخر!
الصورة الكبيرة 🖼️
سطر واحد كتبته في ثانية = عشرات التعليمات للمعالج. وبرنامج عادي = ملايين. والمعالج بينفّذ مليارات في الثانية. عشان كده بتحس إن كل حاجة "فورية" ✨
?
المعالج حسب الـ 8… إزاي ظهرت على الشاشة؟
16/20→
?
الـ CPU حسب النتيجة… إزاي وصلت للشاشة؟
الرقم 8 لسه جوه المعالج كأصفار ووحايد! عشان يوصل لعينك لازم يعدّي على 4 محطات. والمفاجأة: البرنامج بتاعك عمره ما بيكلّم الشاشة مباشرة.
1
البرنامج يحوّل الرقم لنص
main.py
print(5 + 3)
الرقم 8 في الذاكرة عبارة عن 00001000. الـ Python Runtime بيحوّله لـحرف "8" (اللي شكله رقم) ويضيف في آخره "سطر جديد" \n.
زي الفرق بين إنك تعرف إن معاك 8 جنيه وإنك تكتبها على ورقة.
2
يرميها في "صندوق البوسطة"
كل Process عندها 3 "أنابيب" الـ OS بيديهالها أوتوماتيك:
stdin — المدخل القياسي (الكيبورد عادةً)
stdout — المخرج القياسي (الشاشة عادةً) ← هنا بيروح الـ 8
stderr — مخرج الأخطاء (الكلام الأحمر)
الـ print بتحط النص في stdout وخلاص. مش شغلها تعرف هيروح فين!
3
البوسطجي (OS) يوصّلها
نظام التشغيل بيستلم اللي في stdout ويوصّله للجهة اللي البرنامج متوصّل بيها — هنا نافذة الـ Terminal. وممكن يوصّلها لـملف بدل الشاشة لو طلبت!
"8\n"
→→
Terminal
جرّب: python main.py > out.txt — الـ 8 هتروح لملف بدل الشاشة. نفس الكود، وجهة مختلفة!
4
الـ Terminal يعرض النص
نافذة الـ Terminal برنامج عادي زي أي برنامج. شغلته الوحيدة: يستلم نصوص من الـ OS ويحطها تحت بعض في النافذة.
لحد هنا الـ 8 بقت "حرف في نافذة"… بس لسه مش صورة على الشاشة! الخطوة الأخيرة في الصفحة الجاية.
تشبيه لذيذ 📮
البرنامج كتب جواب (الـ "8") ورماه في صندوق البوسطة (stdout). البوسطجي (OS) أخده ووصّله للعنوان المكتوب عليه (Terminal). والبرنامج ما يعرفش ولا يهمه الجواب راح فين بعد كده.
?
طيب الحرف ده بيتحوّل لصورة على الشاشة إزاي؟
17/20→
?
الخطوة الأخيرة: الـ GPU والشاشة
الشاشة ما بتفهمش "حروف" ولا "نوافذ". الشاشة بتفهم حاجة واحدة بس: نقط ملوّنة اسمها Pixels. حد لازم يحوّل كل اللي على الشاشة لنقط — ده شغل الـ GPU.
1
يعني إيه Pixel؟
شاشتك عبارة عن شبكة من ملايين النقط الصغيرة جدًا. كل نقطة ليها لون واحد. شاشة Full HD = 1920 × 1080 = حوالي 2 مليون نقطة!
الرقم "8" لو كبّرناه جدًا: مجرد نقط غامقة وفاتحة! (الحقيقي أنعم بكتير)
2
الـ GPU بيرسم
نظام الرسوميات في الـ OS بيجمع كل النوافذ المفتوحة (Terminal، Chrome، شريط المهام…) ويقول للـ GPU: "ارسم لي الصورة الكاملة دي". الـ GPU بيحسب لون كل نقطة من الـ 2 مليون ويبعت الصورة للشاشة عبر كابل HDMI.
Terminal 8
→→
Screen
3
وبيعمل كده كام مرة؟
الشاشة بتتجدّد 60 مرة في الثانية (60 Hz) — يعني الـ GPU بيرسم الصورة كاملة 60 مرة كل ثانية، حتى لو مفيش حاجة اتغيّرت! وشاشات الألعاب بتوصل 144 أو 240 مرة. عشان كده الحركة بتبان ناعمة ومش بتحس بـ"ريسم".
ليه الـ GPU مش الـ CPU؟ الـ CPU شيف شاطر بيعمل حاجة معقّدة واحدة ورا التانية. الـ GPU = آلاف العمال البسطاء كل واحد بيلوّن نقطة واحدة في نفس الوقت. لتلوين 2 مليون نقطة 60 مرة في الثانية… العمال أحسن 🎨
وصلنا! 🎉
من الكود اللي كتبته ← المترجم ← الـ OS ← الـ RAM ← المعالج حسب 8 ← stdout ← الـ Terminal ← الـ GPU رسمها نقط ← الشاشة نوّرت ← عينك شافت الـ 8. كل ده في أقل من ثانية!
?
تحب نشوف الرحلة كلها في صفحة واحدة؟
18/20→
?
من أول ما تضغط Run لحد ما النتيجة تظهر… الرحلة كاملة
المخطط ده مبسّط — في الواقع المراحل بتتداخل وبتتكرّر آلاف المرات في الثانية.
main.py
print(5 + 3)
ده الكود اللي هنشغّله ونتابع رحلته.
طاولة الشغل: فيها التعليمات والبيانات أثناء التشغيل.
المدير بيعمل Process (برقم PID)، يحجز لها ذاكرة ووقت معالج، ويتولّى الإدخال والإخراج.
↓
4
RAM – طاولة الشغل
الأجزاء المطلوبة بتتنقل من الـ SSD (المخزن) للـ RAM (الطاولة) — لأن المعالج ما بيقراش غير من هناك.
بالصفحات (Pages) حسب الحاجة، مش كله مرة واحدة.
↓
5
CPU – الشيف بيطبخ
دورة Fetch → Decode → Execute. الـ 5 والـ 3 بيتحطّوا في Registers، الـ ALU بيجمعهم، والـ 8 بيتحفظ.
R0
5
R1
3
→→
8
↓
6
stdout – صندوق البوسطة
البرنامج يحوّل الـ 8 لنص "8" ويرميه في stdout. البوسطجي (OS) يوصّله للـ Terminal.
ممكن يروح لـ: Terminal · ملف · برنامج تاني
↓
7
الـ GPU والشاشة
الـ Terminal يحط الحرف في نافذته، والـ GPU يحوّل النافذة لنقط (Pixels) ويبعتها للشاشة. وشفت الـ 8! 🎉
المدير مسؤول عن: • العمليات • توزيع الموارد • الأجهزة • الإدخال والإخراج
المخزن: البرنامج ساكن هنا دايمًا، وبيتنقل للـ RAM وقت الشغل بس.
فكّر: كل الـ 7 خطوات دول بيحصلوا في أقل من ثانية! عشان كده بتحس إن النتيجة ظهرت "فورًا".
🎯
كده فهمت رحلة البرنامج كاملة… جاهز تختبر نفسك؟
19/20→
?
بعد الرحلة دي كلها… تقدر تجاوب؟
اختبار سريع 😊 الإجابات مقلوبة في آخر الصفحة.
1
مين "الشيف" اللي بينفّذ التعليمات؟
A RAM
B CPU
C SSD
2
لما تقفل الجهاز، إيه اللي بيتمسح؟
A اللي في الـ RAM
B اللي في الـ SSD
C الاتنين
3
إيه الترتيب الصحيح لدورة المعالج؟
A Execute → Fetch → Decode
B Fetch → Decode → Execute
F
→
D
→
E
4
الكمبيوتر بيفهم كود Python مباشرة؟
A أيوه طبعًا
B لأ، المترجم بيحوّله لـ 0 و 1
1011 0000 0110 0010
5
البرنامج وهو شغّال اسمه إيه؟
A Program
B Process
C Pixel
6
مين بيحوّل النوافذ لنقط ملوّنة على الشاشة؟
A GPU
B SSD
C Interpreter
خلاصة الرحلة في سطر واحد: الكود بيتكتب في الـ IDE ← بيتفهم بالـ Interpreter ← الـ OS (المدير) بيديله Process وذاكرة ← بيتحمّل في الـ RAM (الطاولة) ← الـ CPU (الشيف) بينفّذه ← النتيجة تروح stdout (البوسطة) ← الـ Terminal والـ GPU (الرسّام) يعرضوها على الشاشة.
❤️ لو استفدت احفظ الملف وشاركه مع حد لسه بيبدأ. وفكّر في السؤال ده: لو جهازك بطيء… المشكلة في الشيف ولا الطاولة ولا المخزن؟ 🤔