header
header
10-1

العودة   منتديات تجمّع طلاب و طالبات جامعة الملك سعود > (( الكليّات العـلميّة )) > كلية علوم الحاسب والمعلومات
اسم العضو
كلمة المرور




رد
 
LinkBack أدوات الموضوع إبحث في الموضوع تقييم الموضوع
  #1 (permalink)  
قديم 5th July 2004, 03:04 PM
الصورة الرمزية BlowFish
BlowFish BlowFish غير متواجد حالياً
وهبتُ ابتسامة...
 
تاريخ التسجيل: Apr 2004
الجنس : ذكر
المشاركات: 339

معلومات العضو الأكاديمية

BlowFish
نظرة قريبه على نظام تشغيل مبسط

السلام عليكم و رحمة الله و بركاته

للأسف الأخ Cold Zero لم يقم بتكلمة موضوع بناء نظام التغشيل

و لحرص بعض الأخوان و الأخوات في المنتدى لمعرفة المزيد عن طريقة برمجة نظم تشغيل

سأحاول بقدر المستطاع شرح بعض الأمور المتعلقه بذلك و لكن بشكل مبسط ،

و لمن اراد المزيد باستطاعته ان يبحث في الانترنت فالمصادر كثيره.

و سننتظر الاخ Cold Zero لتكملة موضوعه في بناء نظام التشغيل الخاص به أمّا هذا الموضوع فهو

بشكلٍ عام....

لبناء نظام تشغيلي نحتاج أولا لبعض الأدوات البسيطه

1-emu8086 - assembler
و باستطاعتكم تحميل البرنامج من الموقع التالي ، http://www.emu8086.com/ScreenShot.html

2- RawWrite for Windows
رابط التحميل http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm

في البداية و عند تشغل جهاز الكمبيوتر سيقوم بتحميل 512 بايت
من Sector رقم 1 في الـ Head رقم 0 في cylinder رقم 0

من القرص المرن الى عنوان الذاكرة 0000h:7C00h

و اذا لم تتم هذه العملية بشكل صحيح سيقوم الجهاز بمحاولة تحميل الـ 512 بايت من نفس المكان و لكن من

القرص الصلب في الجهاز.

في هذا المثال المبسيط سأوضح كيفية برمجة نظام تحميل صغير في قرص مرن للإسباب التاليه

1- لن تضطر إلى الغاء نظام التشغيل الموجود لديك كي تقوم بتجربة هذا البرنامج .
2- من السهل أن نقوم بتعديل و الإضافة على الـ Boot Record في الأقراص المرنه.

هذا البرنامج الصغير سيقوم بعملية الـ Booting من قرص مرن وهو مكتوب بلغة الأسمبلي

كود:
; التوجيه لإنشاء ملف التحميل :
#MAKE_BOOT#
; تم تحميل الملف الى عنوان الذاكره 
; 0000:7C00,
; لذا سيبدأ المترجم الآن بإجراء العمليات المناسبه و الضروريه لذلك
ORG 7C00h
; تحميل الرسالة التي نريدها في العنوان SI:
LEA SI, msg
; سنقوم بطباعة الرسالة التي قمنا بتحميلها عن طريق الأوامر التاليه:
MOV AH, 0Eh
print:   
         MOV AL, [SI]
         CMP AL, 0
         JZ done
         INT 10h
         INC SI
         JMP print
; سيتوقف البرنامج هنا بانتظار الضغط على اي زر:
done:      
           MOV AH, 0
           INT 16h
; سنقوم بتخزين المعلومات الضروريه في العنوان التالي 
; 0040h:0072h:
MOV     AX, 0040h
MOV     DS, AX
MOV     w.[0072h], 0000h 
JMP      0FFFFh:0000h
new_line EQU 13, 10
msg DB  'This is our first boot program'
       DB  new_line, 'Press Any Key To Reboot Your PC', 0
قم بنسخ الكود السابق بعد استبعاد جميع التعليقات العربيه الموجوده الى البرنامج الأول emu8086

و قم بالضغط على Compile and Emulate

سيقوم البرنامج بالتأكد من صحة البرنامج و من ثم تحميل الملف.boot

مباشرة إلى عنوان الذاكرة 0000h:7C00h

و من ثمّ نستطيع تشغيله كأي برنامجٍ عادي...

أو من قائمة Virtual Drive نقوم باختيار

Write 512 bytes at 7C00h to Boot Sector

بعد أن ينتهي البرنامج من هذه العملية باستطاعتنا الآن أن نختار من قائمة Virtual Drive

الأمر Boot from Floppy

- باستطاعتنا ان نقوم الآن بنسخ الـ Virtual Flopp و هو الان باسم FLOPPY_0

او نسخ الملف .boot الى قرصٍ مرن و نقوم بتشغيل جهاز الكمبيوتر عن طريقه .

و أنصح باستخدام البرنامج الثاني الذي ذكرته في البداية RawWrite لكتابته على القرص.

سأقوم بإرفاق ملف يحتوي على نظام تشغيل مصغر باستطاعة الجميع القاء نظره على البرنامج.

الملفات المرفقة
نوع الملف: zip tinyos.zip‏ (6.7 كيلوبايت, المشاهدات 80)
رد مع اقتباس
رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع إبحث في الموضوع
إبحث في الموضوع:

البحث المتقدم
تقييم هذا الموضوع
تقييم هذا الموضوع:

تعليمات المشاركة
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


Clicky Web Analytics

Search Engine Optimization by vBSEO 3.0.0