منتدى طلبة كلية الهندسه بأسوان
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدى طلبة كلية الهندسه بأسوان

منتدى طلبة كلية الهندسه بأسوان
 
الرئيسيةالتسجيلأحدث الصوردخول
 

 تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه

اذهب الى الأسفل 
3 مشترك
كاتب الموضوعرسالة
eng_ghost
مراقب عام المنتديات والحوار العام ومنتدى الهندسة المدنية
مراقب عام المنتديات والحوار العام ومنتدى الهندسة المدنية
eng_ghost


عدد المساهمات : 4632
تاريخ التسجيل : 16/04/2008
العمر : 38
الموقع : just in my dreams ,, i can reach any place
رقم العضوية : 1036
Upload Photos : تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Upload

تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Empty
مُساهمةموضوع: تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه   تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه I_icon_minitimeالخميس 2 أبريل - 13:20

بسم الله





السلام عليكم










هل كل ما نكتبه يسمى برمجه للكمبيوتر أم برمجه لنظام . لماذا لا يعمل أي برنامج في أي نظام تشغيل رغم أنه مكتوب 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 بت


أول ما يقلع النظام يستخدم هذا المسجل للتبديل من النمط الحقيقي إلى المحمي



//////////////////////////////////////////////////////




كاتب المقال الأصلي :



دكتور/ كمال محمد محمد حامد


***** دكتوراة فى علوم البرمجيات من جامعة حسين بن طلال بمعان بالاردن *****

** مصرى اردنى الجنسية صاحب شركات برمجة واستضافة فى مصر والاردن والسعودية *****











أعتقد ان الجرعه اليوم دسمه .........






لذا ,,,, يتبع لاحقا ...



مع تحياتي ,,,,,,,, جوست




بيبعت قبله بيبعت قبله بيبعت قبله
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://WwW.EngAswaN.C0M
YeHi@$MmZ
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
YeHi@$MmZ


عدد المساهمات : 5020
تاريخ التسجيل : 25/06/2007
العمر : 37
الموقع : سرى
رقم العضوية : 10
Upload Photos : تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Upload

تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Empty
مُساهمةموضوع: رد: تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه   تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه I_icon_minitimeالخميس 2 أبريل - 14:29

أووووبس _

كمان برمجة نظم تشغيل _

وصلت للتقييييييييييييل قوى يا جوست _

انا أول مرة أعرف ان نظام التشغيل فيه ما يسمى الريجسترات كسوفت وير _

أعتقد انه في الأخر بيبقى Queue لتسجييل البيانات ثابت ، بس من صف واحد

وكمان الموضوع دة لازم يتقرىى كتييير لانه مش سهل

وفيه معلومااات كتييير جديدة _

شكر خاص للدكتور كمال محمد صاحب الموضوع ،

ومنتظرين البقية يا جوست
الرجوع الى أعلى الصفحة اذهب الى الأسفل
YeHi@$MmZ
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
مراقب عام منتدى أقسام الكليه ومشرف قسمى حاسبات وكورسات هندسيه
YeHi@$MmZ


عدد المساهمات : 5020
تاريخ التسجيل : 25/06/2007
العمر : 37
الموقع : سرى
رقم العضوية : 10
Upload Photos : تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Upload

تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Empty
مُساهمةموضوع: رد: تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه   تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه I_icon_minitimeالخميس 2 أبريل - 14:43

ولزيادة المعلومات عن ملف user32.dll

اللى اتكلم عليه الدكتور حامد

تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه User32dlln





ودة اتجاه لنسخ ملف user32.dll
المشئول عن ال GUI
في وندوز فيستا مكان ملف ال user 32.dll
في وندوز اكس بي للحصول على واجهة مثل الوندوز 7 في الإكس بي
ودة نفهم منه ان الجيوى اللى في اكس بي الشبيه بالفيستا ما هو الى تعديل في ملف
user32.dll


تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Win7dll

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
eng_ghost
مراقب عام المنتديات والحوار العام ومنتدى الهندسة المدنية
مراقب عام المنتديات والحوار العام ومنتدى الهندسة المدنية
eng_ghost


عدد المساهمات : 4632
تاريخ التسجيل : 16/04/2008
العمر : 38
الموقع : just in my dreams ,, i can reach any place
رقم العضوية : 1036
Upload Photos : تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Upload

تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Empty
مُساهمةموضوع: رد: تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه   تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه I_icon_minitimeالخميس 2 أبريل - 15:16

أيييييييييه ,,, ده كله



عموما ,,, ده حماس بجد ربنا يقدرك وتكمل عليه باقي الموضوع


lol! lol! lol!



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]




المرحله الثانيه : تجميع الداله


طبعا إنت تكتب داله واحده وفي الحقيقه إن نظام التشغيل يرسل في تنفيذ عشرات أو مئات الدوال أحيانا


إلى هنا ونحن داخل إطار البرنامج أو بصيغه أخرى في نفس مستوى البرنامج


المرحله الثالثه : مرحله الإمتيازات


في هذا المرحله تسير العمليه أعقد شوي ولها إسم وهي البوابات البوابات كثير من المبرمجين


أعتبروها أعقد شيء في معرفه ما يقوم به نظام التشغيل وهي ميزه توفرت في معالجات النمط المحمي 32 بت


شو هي البوابات:


مثلا إنت تبرمج في نمط 32 بت حاول إنك تستدعي مقاطعه للبويس مثلا ما بتقدر. أعتقد إنك بديت تفهم


لأنه غير مصرح لبرنامجك بأن يتعدى ذاكرته الوهميه ونظام التشغيل قاعد بين برنامجك وبين العتاد


وتسير العمليه بهذي البساطه برنامجك يرسل لمكتبه الربط التي في مستواه أمر إظهار على الشاشه تقوم المكتبه


بتجميع الأمر وترسله عبر بوابه لمنطقه في نظام التشغيل ذات مستوى أقل


في هذي المرحله قسم من الذاكره وهي البوابه تسمح لبرنامج نواه نظام التشغيل بأن يمرر الكود المطلوب


تنفيذه إلى برامج مقيمه في الذاكره هذه البرامج مصرح لها بمحاكاه للعتاد وهي تحت المستوى 0 تقوم هذه البرامج ببعض الخطوات


إما إرسال مقاطعه للبويس أو مقاطعه للدوس أو برمجه مباشره للذاكره أو عن طريق سواقات الأجهزه




الحين دخلنا في الموضوع بكمل الشرح للطباعه على الشاشه لكن شو رايكم نبدأ حبه حبه يعني ما نريد نطبع صورة بمليون لون


نريد نطبع حرف بلون واحد وبعدين بنكمل المليون لون


أكيد حرف واحد وبلون واحد ما يريد شغل كثير نظام التشغيل على طول بيرسل مقاطعه للدوس


int 21


هل تتوقع ينتهي الأمر لا


بعد مايستلم نظام الدوس الأمر يرسل مقاطعه للبويس


int 10


هل تتوقع ينتهي الأمر لا


الحين تبدأ البرمجه المباشره للذاكره


ملاحظه : البرمجه المباشره في الذاكره يمكن ما تفهمها مو لأنها صعبه لأنها تحتاج منك حفظ مواقع الذاكره وكل بايت شو معناه


مثلا الحين نريد نكتب حرف واحد وبلون واحد ندور على ذاكره الشاشه أوحاديه اللون بدايه عناونها


address 0xB800:0000


أي معلومه تكتبها في هذا العنوان تظهر مباشره على الشاشه أما طريقه تنسيق البيانات


يقرأ كل إثنين بايت على أنه إظهار حرف البايت الأول يمثل الحرف والبايت الثاني تنسيق أو لون الحرف


مثلا لو كتبت في هذا العناون البايتين
0x41 0x09
سيظهر في الشاشه حرف A واللون أزرق وهكذا كل إثنين بايت حرف ولون


برنامج المثال بلغه الإسمبلي:


الكود:

push bp

الكود:

mov bp,sp
sub sp,0004


mov word ptr [bp-02],0xB800
mov word ptr [bp-04],0x0000


les bx,[bp-04]
mov byte ptr es:[bx],0x41


inc word ptr [bp-04]
les bx,[bp-04]


mov byte ptr es:[bx],0x09
mov sp,bp

pop bp



[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]


نفس المثال
لتبسيطه أكثر بلغه السي


الكود:

char far *addr;


الكود:

addr=(char far*)0xB8000000;
*addr=0x41;
addr++;
*addr=0x09;

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

أكتب الكود وترجمه ينتج برنامج يظهر حرف بلون واحد شغله على أي معالج إنتل في العالم بيشتغل دون نظام تشغيل أو غيره


لو تحبو تكملوا إلى داخل المعالج يتم ترجمه الكود إلى نظام هكس ثم نظام ثنائي ولنفرض أنه ترجم بهذه الطريقه


10101011100110111110100011111


يرسل للمعالج ولقسم يعرف بقسم التنفيذ كيف يفهمها يستخرج أول بايت ويعيده للنظام الهكس = 55


يبدأ يسوي لها مقارنه إذا تساوي 0 التعليمه هي


ADD mem/reg,reg (byte)


وهكذا إلى أن يوصل إلى 55 وهي


push bp


يحسب كم حجم التعليمه ومن ثم يبدأ يقارن مع التعليمه الثانيه بإختصار فك تجميع


للمعلومات أكثر بشأن أي تعليمه تفضل




من ,,,, [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]





-------------------------------------

ماذا نستفيد من كل هذا ونحن في عام 2004

هذا الطرق التي قرأتوها نفذت وكتبت قبل عشرين سنه ؟؟؟

خلونا نتقدم حبه حبه لين من نوصل إلى طرق وأساليب اليوم النمط الرسومي والنوافذ

أوال ماتثبت النظام وقبل ما يتعرف على الأجهزه تلاحظ إن الشاشه حجمها 640 في 480 وبست عشر لون

وهو النمط القياسي قبل التعريف

هذا النمط ما يتعامل مع الحروف يتعامل بالبكسل وهي نقطه وتم إظهارها بكتابه صف من البايتات لعنوان الشاشه الرسومي وهو

address 0xA000:0000

يتميز هذا النمط بوجود مسجلات وتعرف ب مسجلات ذاكره العرض

وهي

MISCELLANEOUS REGISTER

SEQUENCER REGISTER

CRTC REGISTER

GRAPHICS CONTROLLER

ATTRIBUTE CONTROLLER



هذه المسجلات عباره عن مواقع في الذاكره تقرأ منها الشاشه خصائص الإظهار والعرض والإرتفاع ...وكل المعلومات المطلوبه

يتم الوصول إلى هذه المسجلات عن طريق المنافذ وكل مسجل له مجموعه من العناوين للكتابه أو للقرائه أو لتحديد المسجل



أعتقد إن الشرح ما يكفي ولذلك ستجد في الملف المرفق

مثال مع شرح تفصيلي لكيفيه إظهار الشاشه ب 16 لون أو حتى 24 بت

مع أساليب متقدمه في البرمجه المباشره للذاكره

بعد ما تقرأ الدروس المرفقه وتجربها ويكون كل شيء مفهوم سنتابع بقيه الدرس




بارك الله فيكم ورعاكم



دكتور/ كمال محمد محمد





ومع تحياتي ,,,,,,,,, جوست


lol! lol! lol!
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://WwW.EngAswaN.C0M
vandiesel
مهندس بيشارك كويس
مهندس بيشارك كويس
vandiesel


عدد المساهمات : 135
تاريخ التسجيل : 24/12/2008
العمر : 34
رقم العضوية : 1917
Upload Photos : تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Upload

تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه Empty
مُساهمةموضوع: رد: تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه   تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه I_icon_minitimeالإثنين 13 أبريل - 23:40

بيضرب نفسه بيضرب نفسه بيضرب نفسه
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
تعلم البرمجه في قلب نظام التشغيل ؟؟؟, البرمجه المتقدمه
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» نظام التشغيل العربى (إيجاد)..
» مكتبه كتب لغات البرمجه - visual basic - c ++ - java
» نظام Fat و نظام NTFS
» حوار هادئ حول أنظمة التشغيل
» اخر اصدار Process Explorer 12.02 لمراقبة العمليات التى تحدث فى جهازك سواء تعلم بها او لا تعلم

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى طلبة كلية الهندسه بأسوان :: هندسة الحاسبات والنظم :: البرمجة Programming-
انتقل الى: