هل كل ما نكتبه يسمى برمجه للكمبيوتر أم برمجه لنظام . لماذا لا يعمل أي برنامج في أي نظام تشغيل رغم أنه مكتوب 01 فقط
شو رايكم نبحر مع داله واحده ونتتبعها لين ما نوصل داخل المعالج وتعرف كيف تنفذ بأدق التفاصيل
لو كتبت مثلا داله في نظام تشغيل وندوز أو أي نظام وتريد أن تطبع كلام على الشاشه إنت تتوقع تمر بكم مرحله
في نظام الوندوز مجموعه من المراحل
المرحله الأولى : الإتصال بداله في نظام التشغيل في مستوى البرنامج
هذي المرحله معروفه وهي الي نشوفها مثلا داله إظهار مسج للمستخدم يتصل البرنامج بمكتبه الربط
user32.dll
هذا الشيء المطلوب الفهم السريع للدروس
بعد ما فهمنا كيف يظهر النظام الشاشه شو رايكم ندخل في موضوع مشوق
مسجلات نظام التشغيل :
في لغه التجميع مرت علينا مسجلات المعالج وهي
ax,bx,cx,dx,si,di,bp,sp =16 bit
eax,ebx,ecx,edx,esi,edi,ebp,esp =32 bit
هذه المسجلات ليست كل مسجلات المعالج هذه خاصه بالبرامج فقط
شو رايكم نتعرف على مسجلات نظام التشغيل
وهي:
مسجلات الأقسام
GDTR: مسجل جدول الواصفات الشامل
IDTR: مسجل لجدول طلبات المقاطعة
LDTR: مسجل لجدول الواصفات المحلية
TR : مسجل لتعدد المهام
مسجلات إنتقائيه للأقسام : LDT وTSS
مسجلات التحكم
CR0 : هذا المسجل مهم إنك تعرف كل بت فيه ولذلك نتناوله آخر الدرس
CR1:لا يستخدم في المعالج 386 ولا 486 فهو للمعالجات المستقبل
CR3 : عند حصول عطل صفحة يتخزن في هذا المسجل العنوان الذي سبب الإستثناء
CR3: يحتوي على العنوان الخطي لبداية دليل الصفحات
مسجلات التنقيح
TR0,TR1,TR2,TR3,TR4,TR5,TR6,TR7
خاصه بالديبغر وتصحيح البرامج ونقاط التوقف في السوفت وير أو الهارد وير
ندخل في الموضوع
في أحد فيكم فكر وهو يختبر برنامج 32 بت ليش قسم الكود مثلا أو البيانات =21 أو 20
معقوله يكون عنوان الكود في الذاكره =21 ??
الحل هو أول مسجل جدول الواصفات بس خذ هذه المعلومه
من أسرار تصميم الأنظمه هو ترتيب الذاكره تقسيمها لقسمين قسم بيانات و قسم شفره تنفيذيه
نظام لينكس مثلا حسب ما قرأت إنه أختار طريقه قسم الذاكره بالتساوي لكلا القسمين
وأي برنامج تنفيذي يحمله ينقل قسم البيانات للبيانات وقسم الكود للكود
أما وندوز فإنه يحمل كل قسمين ورى بعض ويضع عنوان كل قسم في جدول الواصفات الشامل
ولذلك تلاحظ أن مسجل الكود مساوي لمسجل البيانات
مثلا لو كان يحتوي مسجل الشفره الرقم 21
يقوم نظام التشغيل بقرائه العنوان الذي في سجل جدول الواصفات رقم 21 وفيه
ويكون ما قرئه يساوي العناون الحقيقي لشفره البرنامج + بعض المعلومات
كل سطر من جدول الواصفات مكون من 63 بت على هذا الشكل
| العنوان الأحقيقي للقسم | الحد | حقوق الوصول للقسم
العنوان والحد يمثلان العنوان الحقيقي والصفحه الذاكريه للبرنامج
حقوق الوصول مكونه من 8 بت اي بايت واحد وهو مقسم على النحو التالي
معقوله بايت واحد ويتقسم كل شيء معقول عند تصميم الأنظمه
Byte = 0 | 1 2 3 | 4 | 5 6 |7
name =A | TYPE | S |DPL |P
P : إذا كان صفر القسم المشار إليه غير موجود إذا واحد موجود
DPL : يحتوي على مستوى الإمتيازات والمستوى الأدنى 0 والأعلى 3 وهي تستخدم في الحماية
ملاحظة لاتتشارك المهام فيما بينها إذا إختلفت درجت الإمتيازات بينها المشاركه فقط عن طريق البوابات
S: دائما =1 أي القسم موجود في الذاكرة و 0 غير موجود
TYPE: خصائص القسم
0-قسم المعطيات قرائة فقط
1-قسم المعطيات قرائة / كتابة
2-غير مستخدم
3-قسم المعطيات التنازلي قرائة / كتابة
4-قسم الشفرة تنفيذي فقط
5-قسم الشفرة قرائة /منفذ
6-قسم الشفرة متوافقة منفذ فقط
7- قسم الشفرة متوافقة منفذ/ قرائة
A: بت الوصول وهو يضبط عند إستخدام القطاع التابع لة فهو مفيد لمعرفة الأقسام غير المستخدمة
كثيرا فتتحول إلى القرص عند الضرورة
المسجل الثالث طلبات المقاطعه وفيه عناوين مقاطعات الأجهزه ليستخدمها نظام التشغيل
مسجل تعدد المهام يحفظ عنوان المهم الجاري تنفيذها وللتبديل عن طريق مسجل الإنتقاء للمهام TSS
مسجل التحكم رقم 0
CR0
PE|MP|EM|TS|ET|---محجوز-------------------|-------|PG
PG:تعيين الصفحات
ET:إذا كان واحد معالج 32 بت 0 معالج 16 بت
TS:تحويل المهام
EM:عمل المعالج المساعد الحسابي
MP:مراقبة المعالج المساعد
PE:يضبط البت 1 لتمكين المعالج من العمل في النمط المحمي 32 بت
أول ما يقلع النظام يستخدم هذا المسجل للتبديل من النمط الحقيقي إلى المحمي
//////////////////////////////////////////////////////كاتب المقال الأصلي :
دكتور/ كمال محمد محمد حامد ***** دكتوراة فى علوم البرمجيات من جامعة حسين بن طلال بمعان بالاردن ******* مصرى اردنى الجنسية صاحب شركات برمجة واستضافة فى مصر والاردن والسعودية *****أعتقد ان الجرعه اليوم دسمه .........
لذا ,,,, يتبع لاحقا ...
مع تحياتي ,,,,,,,, جوست