-
حسنا ، يوم ربيعي جميل هنا في الجامعة ، سأسجل اليوم
-
في حرم جامعة ستانفورد ، حديقة جميلة والجو جميل ،
والطلبة شوية وجايين
-
موضوع محاضرة اليوم هيكون ما هو السوفتوير ؟
-
ما هو الكود ؟ كيف يتم تنفيذه على الكمبيوتر ؟
-
CPUلما اتكلمنا عن الهاردوير في الكمبيوتر ، اتكلمنا عن ال
-
عقل الكمبيوتر ،، الذي يقوم بتنفيذ ما يسمى
-
أوامر لفة الآلة
-
أوامر لغة الآلة بسيطة جدا ،،
الأمر الواحد ممكن يكون اضافة رقمين ،،
والأمر اللي بعدة ممكن يكون
-
مقارنة بين رقمين لإيجاد الرقم الأكبر ،، كمثال فيما سبق
-
لما كنا بنكتب
pixel.setRed(10)
هذا امر اكثر تعقيدا
-
منه لو تم كتابته بلغة الآلة
-
لأنه لو تم كتابته بلغة الآلة سيتم كتابته
في خمس او عشر أوامر
-
بسيطة من اوامر الآلة ،،
وعندما يتم تنفيذ هذه الاوامر
-
واحدا تلو الأخر ،،،
يكون لها تأثير تغيير قيمة اللون الأحمر
-
في البيكسل لـ10 ،، تمام ،،
وهنتكلم بالتفصيل عن الموضوع ده بعدين
-
كيف يتم ذلك التفصيل للأمر ،،
أعتقد ان السؤال المناسب الأن هو
-
ما هو البرنامج ؟ ،، لنلقي نظرة على الجانب الأيمن من هذا الرسم
-
فالبرنامج هو - وسأستخدم فايرفوكس كمثال
-
البرنامج يتكون من مجموعة هائلة
من الأوامر البسيطة مكتوبة بلغة الآلة ،
-
ولذلك عندما يتم تشغيل الفايرفوكس على جهازك
-
هذا يعني انها في مكان ما في الذاكرة
RAM
هناك مجموعة من الأوامر
-
وعندما يتم تنفيذ هذه الأوامر فإن الفايفوكس يفعل ما يفعل
-
مثل حركة مؤشر الكتابة ،، نسخ الروابط ،، الرسم
فتح صفحات الويب ،وكل هذه الأشياء
-
الأوامر المنفردة تكون بسيطة جدا
اضافة رقمين مثلا
-
فكيف يتم من هذه الاوامر البسيطة
تنفيذ شئ كبير كحركة مؤشر الكتابة مثلا ؟
-
ويمكنني ان اقول ان العلاقة بينهما كالعلاقة
بين الرمل والتمثال
-
وهذا معناه ان الأمر الواحد مثل حبة الرمل
أي ان الأمر وحده لا معنى له وليس له تأثير
-
ومثله مثل كل حبات الرمل الأخرى
ولكن عند وضعهم مع بعضهم بالشكل الصحيح
-
تستطيع ان تبني تمثال معقد
وبهذه الطريقة تم بناء فايرفوكس
-
عن طريق هذه الأوامر البسيطة
على هذا الأساس فإنه يعمل
-
CPUعن طريق ال
هنا على الجانب الأيسر
يتم تنفيذ ما يسمى
Fetch Execute cycle
-
CPUهذا معناه ان ال
هتبدأ من هنا مع الأمر الأول
-
وهتحمل الأمر ده وتنفذه
-
وهذا الأمر يقوم بجمع رقمين
أو أي شئ آخر يقوله الأمر
-
وعندما ينتهي من تنفيذ الأمر الأول
ينتقل للأمر الثاني في قائمة الأوامر
-
وينفذ هذا الأمر
-
يقوم بتنفيذ الأوامر في نفس التسلسل
-
CPUولذلك عندما نقول ان ال
تعمل بسرعة 2جيجاهرتز
هذا معناه انها تستطيع ان تنفذ 2مليار عمليه في الثانية
-
من هذه الاوامر الصغيرة
وهذه معناه ان هناك مجموعة كبيرة من الأوامر
-
ولكني سأركز على مجموعة من الأنواع الخاصة للأوامر
-
كمثال / الأمر الذي يمكنه تغيير ترتيب الأوامر
-
CPUطبيعي ان ال
تقوم بتنفيذ العمليات بالترتيب من اعلى الى اسفل
-
ولكن دعنا نقول ان الامر الرابع يقول
ارجع للأمر الأول ونفذه مرة أخرى
-
CPUتخيل ماذا سوف تفعل ال
ستقوم بتنفيذ الأمر الأول
-
ثم الثاني ثم الثالث ثم الرابع ثم بعد ذلك
ستقوم بتنفيذ الأمر الأول
-
ثم الثاني ثم الثالث مرة أخرى
ثم الثاني ثم الثالث مرة أخرى
-
يمكنك ان ترى كم عدد المرات التي سوف يتم
تنفيذ فيها هذه الاوامر
-
فقط يمكنك ترتيب الاوامر بطريقة
تمكنك من تنفيذ جزء من الكود 500.000 مرة
-
يمكنك كتابة أمر يرجع ينفذ اوامر اخرى
مرة بعد مرة
-
نوع اخر من الاوامر
-
امر يمكنه عمل اختبار وعلى اساسه يتخذ قرار
-
من الممكن ان يتفادى الامر الخامس هنا
-
وده يوضح معنى جملة
if
عندك امر يمكنه التحقق من شرط معين
-
CPUواذا تحقق الشرط يخبر ال
لتنتقل إلى هنا
-
واذا لم يتحقق الشرط
سوف تنتقل الى مكان اخر في الكود
-
لذلك بترتيب الاوامر بطريقة معينة
يمكننا الحصول على تأثير
-
if ما نقول عليه جملة
-
دعنا نرى كيف يتم تنفيذ البرنامج
وكيف نصل لهذا
-
دعنا نتخيل انك عندك فايرفوكس على فلاشة
-
او على الهارد
-
وهنا الرامات وهنا ال
CPU
-
فعندما يكون عندك الفايرفوكس على الهارد
اللي هو الفايل
-
وهنا دعنا نسميه
firefox.exe
-
هذا فقط شكل البرنامج في ويندوز .exe
لكي يحافظ على كل شئ بوضوح
-
الفايل ده
firefox.exe
يحتوي على العديد من ال
bytes
بداخله
-
Bytesوغالبا هذه ال
تكون مجموعة الأوامر التي يتكون منها البرنامج
-
بالاضافة الى مجموعة من الايكونات واشياء اخرى
-
دعنا نرى ماذا يحدث بعدما نضغط مرتين على
Firefox.exe
كيف يتم تشغيله ؟
-
واساسا ما يحدث هو خطوتين
اول خطوة بتحصل هي
-
مجموعة البايتس من الاوامر
التي تكفي تقريبا للتشغيل
-
يتم نسخها الى الرام ، فإنه فقط يتم نسخها
يتم وضعها في الرام
-
CPUحيث تستطيع ال
CPUالوصول اليهم ،، ثم الخطوة الثانية تبدأ ال
-
في تنفيذ الأمر الأول ، يتم التنفيذ هنا
ثم تبدأ في تنفيذ الأمر الذي يليه
-
في سلسلة الاوامر
والآن يتم تشغيل الفايرفوكس
-
هذا يقودنا الى سؤال الا وهو: من يقوم بفعل ذلك بالطريقة الصحيحة؟
من يقوم بتنفيذ كل ذلك بمجرد الضغط مرتين على الفايل؟
-
من يقوم بتشغيل الفايرفوكس؟
من يقوم بذلك في الحقيقة هو نظام التشغيل
Operating System
-
نظام التشغيل هو مجموعة البرامج الاشرافيه المنظمة
-
والتي تتعامل مع النظام بالكامل
وتنظم التعامل بداخله
-
نظام التشغيل تحديدا ينظم البرامج المتعددة
-
وتشغيل وغلق البرامج ، حيث ان الاجهزة الحديثة
يمكنها تشغيل برامج متعددة في نفس الوقت
-
ونظام التشغيل هو من ينظم ذلك
-
حيث انه يبدأ البرنامج
ويعطي جزأ منه للرام لاستخدامه
-
ربما يعطيه نافذة ليرسمها
وكذلك أنظمة التشغيل تحاول عزل البرامج عن بعضها
-
حيث يكون لكل برنامج الرام الخاصة به
حيث لا يمكن العبث بـ ذاكرة برنامج أخر
-
وهذا يساعد اذا كان البرنامج يحتوى على خطأ
Bug
-
سيكون الخطأ في هذا البرنامج فقط ولن يظهر
في برامج أخرى يتم تشغيلها في نفس التوقيت
-
أو من الممكن ان البرنامج يحاول فعل شئ خطأ في برنامج آخر
-
نظام التشغيل يحاول فصل كل منهما عن اللآخر
وعلى ذلك فإن نظام التشغيل
-
هو أول شئ يتم تنفيذه على جهازك عند تشغيله
-
وهو من يظهر هذه النوافذ امامك
ويظهرلك محتويات الهارد بتاعك
-
ومن هنا يمكنك الضغط مرتين او فعل اي شئ آخر
-
ونظام التشغيل سوف يشغل هذه البرامج لك
وهذا في الحقيقة ما تراه
-
عندما تقوم بتشغيل جهازك المحمول
او الكاميرا الرقمية ربما لا تفكر بها ككمبيوتر
-
ولكنها في الحقيقة كمبيوتر
عندما يتم تشغيل الكاميرا لأول مرة
-
هناك تقريبا عدد من البرامج
ربما البرنامج
-
الذي يأخذ الصور ، والبرنامج الذي يمكنك من تصفح الصور بعد تصويرها
-
ولذلك عندما يتم تشغيل الكاميرا لأول مرة
هناك بعض البرامج الرئيسية
-
والتي يتم تشغيلها والتي تراها عندما تشغل الكاميرا
-
وتمكنك من استخدامها
أخر شئ
-
هناك بعض المصطلحات مثل
boot, reboot
-
طول عمري بفكر فيهم بشكل مضحك
منين جت التسمية دي بقى
-
الحقيقة تسميتهم ترجع لموضوع بيضة الفرخة
حيث ان الكمبيوتر عندما يتم تشغيله لأول مرة
-
كيف ينظم نفسه ؟؟
-
كيف يمكنه تشغيل برنامج ؟
وهذا المصطلح في الحقيقة نكتة قديمة
-
والنكتة بتقول: لو انت عايز تنط من فوق سور
كل اللي محتاج تعمله انك تقلع البووووت بتاعك
-
وترميه على السور وبعدين تتشعبط فيه وتنط السور
ههههههههههه
-
طبعا واضح انها قصة سخيفة
ولكنها مثل
-
ماهو البرنامج المفروض يبدأ به الكمبيوتر ليتمكن من تشغيل البرامج
-
فإنه كقصة البيضه والفرخة
ولذلك فإن طريقة التشغيل هي
-
CPUال
عندما ترى انها تم غلقها
-
وانها لابد ان يتم تشغيلها مرة اخرى
وان هناك برامج صغيره
-
والتي يحتوي عليها الكمبيوتر لتشغيله
في هذه اللحظة ،، وهذا البرنامج من الممكن
-
ان يبحث اي جزء من الهاردوير يقوم بتشغيل بعض البرامج البدائية
-
ثم يقوم بالبحث عن الهارد او فلاشة او
-
او اي شئ يحتوى على نظام تشغيل
ثم يمكنه تشغيل هذا النظام
-
ثم الكمبيوتر يتمكن من التشغيل بهذه الطريقة
ولذلك
-
هذه العمليه تسمى بوووووت
boot up
والتي ترجع هذه التسمية الى قصة البوت القديمة
-
ومن ثم تأتي كلمة
rebooting
والتي تعني اننا نريد الحصول على حالة جديدة
-
حيث انه يقوم بغلق النظام والبداية من جديد
والآن انت تعلم ذلك