Moustafa Meaily
Moustafa Meaily

@CMPSamurai

11 تغريدة 21 قراءة Nov 09, 2021
الثريد ده هتكلم فيه عن بعض اساسيات ال Operating Systems مش الهدف انك هتكتب او تطور Operating System بنفسك لانك لو شغال في الموضوع ده فغالبا تويتر مش انسب مكان تعرف منه عن الموضوع ولكن فيه اساسيات من ال OS بتؤثر في اي Software بنكتبه و مصطلحات مفيد نبقي عارفنها.
مبدأيا لازم نعرف ال CPU و هو العقل بتاع computer بتستخدمه و هو في الاخر وظيفته انه ياخد شوية اوامر من الmemory (اللي هي برنامجك) و يفهمها و يعرف ينفذها. غالبا الامر ده ما هو الا عملية حسابية أو نقل بيانات من مكان للتاني او الانتقال الي تنفيذ مجموعة اوامر اخري function call يعني
زمان كان ال CPU ده فيه بيقدر ينفذ حاجة واحدة بس بعد كدة لما التكنولوجيا اتطورت و ال hardware بقي ببلاش بقي من السهل اننا نعمل نسخ كتير من المكونات اللي فيه عشان يقدر ينفذ كذا instruction مع بعض. و هنا ظهر مفهوم ال multi core و بقي عادي انك تشتري processor ٢و ٤و ٨ cores و ٦٤ كمان
طيب معانا CPU (ألة حاسبة كبيرة ) لو عايزين نعمل حاجة مفيدة لازن نستغلها و هنا ييجي مفهوم ال OS و هو نظام التشغيل و وظيفته يبقي حلقة وصل بين البرنامج بتاعك و ال hardware بمعني انه لازم يوفرلك شوية common functionality عشان تقدر تكتب برنامج زي قراية الملفات و الرسم عالشاشة مثلا
المفهوم اللي بعد كدة و هو ال Process و دي البرنامج بتاعك و هو شغال في ال memory . انت لو عامل برنامج الة حاسبة و فتحته ٤ مرات ده معناه ان فيه ٤ process شغالين في ال memroy من نفس البرنامج ده
تقدر تبص عال processes اللي شغالة عندك من ال Activity Monitor أو ال Task Manager او Ps -l
ألمصطلح اللي بعد كدة و هو ال OS Kernel و ده اهم جزء في اي نظام تشغيل و من مسؤولياته:
١- حلقة الوصل بين ال hardware و السوفتوير بتاعك
٢- ادارة الموارد و تقسيمها عال processes اللي شغالة
٣- ادارة الذاكرة المتوفرة في الجهاز
٤- ادارة ال devices اللي متوصلة في الجهاز عندك
لو اتسابت الدنيا سداح اي برنامج يقدر ينفذ اي حاجة عال processor الدنيا هتبقي سلطة و هنا بييجي مفهوم ال CPU Modes و هي ان البروسيسور بيقدر يشتغل في كذا mode بحيث انه يخلي الاوامر المهمة و الخطر مش اي حد يقدر ينفذها و تبقي مسؤولية ال Kernel و كدة يضمن ان مش اي غلطة توقع ال CPU
معظم ال OS بتتصمم بنظام ال rings تشتغل فيها البرامج و ليها انواع كتير بس غالبا بيبقي فيه ٣ انواع مهمين Ring 0 و دي اقصي صلاحية و بتتساب لل kernel و Ring 1 و دي للحاجات النص نص زي ال Device Drivers و اخر Ring بتتساب لباقي البرامج.
مع ظهور ال Virtual Machines احتاجنا نزود ring اهم من ring 0 بحيث ان لو فيه Virtual Machine شغالة تقدر تنفذ اوامر في ال Ring 0 من غير Virtualization بس بما انها Virtual فلازم يبقي فيه حد اهم منها و هنا ظهر مفهوم ال Ring -1 او سالب واحد واللي بتدعمه intel و AMD في الاصدارات الحديثة
مهم تفهم موضوع ال rings ده لانك غالبا هتشتغل ب virtualization و كمان بسبب موضوع ال rings ده ساعات بيبقي فيه overhead كتير بسبب الامان ده مثال لما بتجيلك packet عالنتورك بتتنسخ في ring 1 و بعدين بيتعملك نسخة منها في ring 3 او ال user space عشان تستخدمها و ده بيبطء الدنيا
هتكتشف ان انواع كتير من السوفتوير اللي بتحتاج تبقي optimised اوي بتضطر تتكتب و تشتغل في ring 0 عشان متتعرض لل over head ده.
البلوج دي فيها تفاصيل اكتر عن الموضوع لو مهتم و لو استافدت ياريت تعمل ريتوير و فولو عشان ناس اكتير تستفيد. و ربنا يكرم الجميع :)
blog.cmpsamurai.com

جاري تحميل الاقتراحات...