الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الدرس الخامس >>>>Bootloader

بدأه MohamedIBrahim في 20 مارس 2011 · 6 رد · 1,695 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اهلا بشباب ومتابعى الدورة وما زلنا فى المرحلة الاولى من الدورة واتمنى تكون الدروس السابقة مفهومة من الجميع

الان بعد ما ذكرنا فى الدرس السابق عن الاقلاع والبيوس وما هم سناتى الان الى الجزء العملى من هذا الدرس

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

Bootloader Theory

سوف نتكلم من هنا على نظام الاقلاع Bootloader

خصائص Bootloaders

1- يتم تخزينها بواسطة MBR

2- تاخذ الالقطاع الاول من الDisk

3- الحجم الاقصى والادنى ومهما فعلت فيجب ان تكون 512 Byte

4- يتم تحميلها بواسطة BIOS INT 0x19 فى العنوان 0x7C00

كما تلاحظ لا يمكننا فعل الكثير ب512 Byte فما هو العمل ؟ >>> ورطتنا يا ابو حميد اوعى تسبنا وتمشى :lol:

لا يا عم مش همشى انا قاعد علشان عندى الحل وهشرح بالتفصيل الممل >>> وانا اعنى الملل بمعنى الكلمة ان شاء الله

فى لغة الاسمبلى يمكننا بسهولة تحديد 512byte لذا فالكود سيكون جيدا فقط

لكن فقط فى جزء منه سيكون فى الذاكرة ولمثال للتوضيح لاحظ الاتى

mov	ax, 4ch
inc	bx         ; 512 byte
mov     [var], bx  ; 514 byte

ففى لغة الاسمبلى التنفيذ يبدأ من بداية الملف نزولا الى الاسفل بالرغم من ذلك

تذكر شئ مهم عندما يتم تحميل الملفات فى الذاكرة فاننا نقوم بتحميل القطاعs

وكل القطاع منهم 512 bytes

لذا فنحن سنقوم بنسخ 512 bytes فقط فى الذاكرة :)

حد فاهم حاجة ؟ :P

اذا تم تنفيذ الكود اعلاه وفقط الالقطاع الاول سيتم تنفيذه وتحميله الى الذاكرى اولا :cool: (The inc bx instruction)

لذا فان اخر تعليمة mov ستظل على الdisk وليس على الذاكرة

ماذا سيفعل المعالج بعد inc bx ؟

سوف يقوم بالاستكمال الى 514 byte وهذا طبعا لن يكون فى الذاكرة

هذا سيتم تنفيذه من نهاية ملفنا والنهاية المحتمة هى تحطم النظام والاقلاع

وبالرغم من ذلك ايضا فانه يمكن تحميل القطاع الثانى او اكثر الى عنوان ويتم تنفيذه

والان بقية الملف سوف يكون فى الذاكرة وكل شئ سوف يتم بشكل جيد :wub: (بحبك يا بلدى ) :P

Hardware Exceptions >>(تعبيرات العتاد )

تعبيرات العتاد هى مجرد تعليمات وتعبيرات مثل السوفت وير الا ان المعالج يقوم بتنفيذها اولا قبل تعبيرات وتعليمات السوفت وير

وهناك بعض الاوقات والاحداث التى يحدث فيها تعطيل او توقف اى التعبيرات مثل

interrupt-hardware or software

ويحدث وقتها ان يتحطم النظام

CLI و STI Instructions

يمكننا استخدام تعليمات CLI وSTIيمكنك اتاحة وتعطيل استخدام المقاطعات ومعظم انظمة التشغيل حاليا لا تسمح بتفعيل هذه التعليمات للتطبيقات والبرامج الفرعية فان هذا يؤدى الى مشاكل كبيرة

cli		; clear interrupts

; do something...

sti		; enable interrupts--we're in the clear!

Double Fault Hardware Exception

لو ان المعالج وجد مشكلة ما اثناء التنفيذ مثل تعليمة خاطئة او قيمة خاطئة الخ ....فانه يقوم بتنفيذ Second Fault Exception Handler

ويمكن اختصارها الى Double Fault

والتى هى المقاطعة 0x8

وسوف نتطرق لاحقا الى شرح هذا الجزء بالتفصيل ان شاء الله

Triple Fault

لقد تطرقنا الى ذكر هذا الامر من ذى قبل أليس كذلك ؟

معلش يا محمد بلاش نقولك كلمة مش حلوة مسمعناش فى الدورة عن الحاجة دى

خلاص يا عم منك له مش عايزين ضرب

Triple Fault معناها هو اعادة استخدام النظام بصعوبة

فى المراحل المبكرة فى النظام مثل BOOTLOADER كلما كان هناك شوائب فى الكود الخاص به فالنظام وقتها سوف يقوم بعمل اعادة التشغيل وحل هذه المشكلة سيكون فى الكود الذى قمت بكتابته

طبعا كده الامور وضحت

وهذا الدرس هو نهاية الدروس النظرية

والدرس القادم سيكون بعنوان

Developing a simple Bootloader

او تطوير BOOTLOADERبسيط

والى اللقاء فى الدروس العملية مع تحياتى

خادم الاسلام

محمد ابراهيم

GoodBye

#2

درس و مجهود رائعان و انا انتظر الدرس القادم بفارغ الصبر .

منتداى الخاص : منتدى البرمجة و تطوير المواقع و المنتديات , هندسة البرمجيات و خوارزمياتها ... :

nick.mam9.com

و واحد اخر للاعلان المجاني , اعلن معنا عن مواقعك او منتدياتك او مشاريعك من دون تسجيل :

google-pub.mam9.com

#3
nickelodeon كتب:

درس و مجهود رائعان و انا انتظر الدرس القادم بفارغ الصبر .

شكرا لك اخى الحبيب وان شاء الله قريبا الشغل الحقيقى

GoodBye

#4

يسلمو اديك اخي على الشرح

بس اذا ممكن سؤال

صار عندي اشوية خربطة :wacko: :wacko:

بالنسبةhardware exception

اقتباس
CLI و STI Instructions

المقصود منها انها تمنع حدوث اي intrupt او بالصح استقبال اي intrupt

حتى يتم تنفيذ الذي في الداخل

صحيح الذي اقول فيه

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

بس اذا كان صحيح والله اعلم انه هاذ الاشي ما بنفع الا في cpu one core

لانو في حالت ال2core او الاكثر صعب عمل هذا الشىء

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

وشكرا

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

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

ملاحظ ممكن هاذ الرابط اساعد في الدورة بشكل جيد

لكي تكون دورة لايوجد مثلاها مثيل ان شاء الله

http://alrebat.tadwen.com/index.php?title=%D8%A7%D9%84%D8%B5%D9%81%D8%AD%D8%A9_%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A%D8%A9

تم تعديل هذه المشاركة بواسطة ayash في 21 مارس 2011 في 13:20

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

#5

اهلا اخى الحبيب

quote name='ayash' date='21/03/2011 - 01:14 PM' timestamp='1300702447' post='1182200']

يسلمو اديك اخي على الشرح

بس اذا ممكن سؤال

صار عندي اشوية خربطة :wacko: :wacko:

بالنسبةhardware exception

المقصود منها انها تمنع حدوث اي intrupt او بالصح استقبال اي intrupt

حتى يتم تنفيذ الذي في الداخل

صحيح الذي اقول فيه

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

GoodBye

#6
اقتباس
ما انت جاوبت على سؤالك بس انت تريد تأكيد فقط هههههههه

:lol:

زالة الشكوك

بس حبيت اتاكد لانو كانت في شكوك

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

#7
ayash كتب:

:lol:

زالة الشكوك

بس حبيت اتاكد لانو كانت في شكوك

ولا يهمك اخى الحبيب فما قدمت هذه الدورة الا لهذا السبب

GoodBye

مواضيع مشابهة