PDA

View Full Version : BootLoader



joker
چهارشنبه 26 آبان 1389, 22:54 عصر
یک راس بوت لودر نوشتم ( فایل ضمیمه )، و روی 512 بایت سکتور اول فلش مموری کپی کردم( با استفاده از نرم افزار Norton Disk Editor ) و موفق شدم سیستم را باهاش بوت کنم http://shabgard.org/forums/images/icons/yahoo/smiles/4.gif اما یک مشکلی دارم ، از وقتی این داده ها را رایت میکنم دیگه فلش مموری را ویندوز نمیتونه بخونه و میگه باید فرمت بشه ( در عین حالی که فلش بوت ایبل باقی میمونه ، و چیزی جز این 512 بایت تغییرنمیکنه ، نمیدونم چرا دیگه فرمت درایو ناشناخته میشه)

چه نکته ای را باید رعایت کنم که هم سخت افزارم بوت ایبل باشه هم فرمتش بهم نخوره ؟
خلاصه نکته ای چیزی به ذهنتون میرسه بگین و جوانی را از نگرانی نجات بدهید

pswin.pooya
پنج شنبه 27 آبان 1389, 13:05 عصر
سلام
باید بلوک MBR رو که در مورد قالب (فرمت) دیسک و موارد دیگه توضیح میده رو به به بوت لودر اضافه کنی:

http://wiki.osdev.org/FAT#BPB_.28BIOS_Parameter_Block.29

pswin.pooya
شنبه 29 آبان 1389, 22:37 عصر
سلام
من یه اشتباه کردم و اشتباها به جای OEM نوشتم MBR. شما باید OEM رو به همون سکتور اول اضافه کنید که برای یه فلاپی همچین ساختاری داره:




bpbOEM db "My OS " ; OEM identifier (Cannot exceed 8 bytes!)

bpbBytesPerSector: DW 512

bpbSectorsPerCluster: DB 1

bpbReservedSectors: DW 1

bpbNumberOfFATs: DB 2

bpbRootEntries: DW 224

bpbTotalSectors: DW 2880

bpbMedia: DB 0xf8 ;; 0xF1

bpbSectorsPerFAT: DW 9

bpbSectorsPerTrack: DW 18

bpbHeadsPerCylinder: DW 2

bpbHiddenSectors: DD 0

bpbTotalSectorsBig: DD 0

bsDriveNumber: DB 0

bsUnused: DB 0

bsExtBootSignature: DB 0x29

bsSerialNumber: DD 0xa0a1a2a3

bsVolumeLabel: DB "MOS FLOPPY "

bsFileSystem: DB "FAT12 "

یه مقدار سرچ بزنین موارد زیادی رو پیدا میکنین اما من پیشنهاد میکنم بدون اینکه وقت تلف کنید روی Grub سوئیچ کنید که همه قالبهای دیسک رو میشناسه و از استاندارد multi-boot هم پیروی میکنه.

joker
جمعه 05 آذر 1389, 23:50 عصر
کنترل تمام اینتراپتها و بوت کردن یک سیستم عامل سنگین تر از نمایش یک خط به چه صورت هست ، یعنی توی این 512 بایت دقیقا و حداکثر چه کارهایی باید انجام بدیم که محدود این 512 رفع باشه ؟
ادامه فعالیت بعداز این بوت لودر چی باید باشه ؟
اگه زحمت نیست یه توضیحات کلی بدین مسیر راه ی که باید برم روشن بشه برام.

pswin.pooya
شنبه 06 آذر 1389, 14:31 عصر
اول باید یه برنامه خیلی کوچولو بنویسی که فایل رو که حاوی برنامه بارگذاری کننده هسته هست رو با استفاده از وقفه های بایوس لود و اجرا کنه و بعد اون برنامه که Kernel loader و یا stage 2 بوت لودر نامیده میشه هسته سیستم عامل رو بارگذارب و اجرا کنه. البته همه چه برای کرنل لودر به این آسونی ها نیست و اون باید یک حداقل محیط ۳۲ بیتی رو برای هسته های ۳۲ و یا ۶۴ بیتی آماده کنه.

joker
شنبه 27 آذر 1389, 23:38 عصر
با تشکر از pswin.pooya (http://barnamenevis.org/member.php?34511-pswin.pooya) ، توی این مدت یکسری مطالب در این ضمینه خوندم و یاد گرفتم که عینا برای دوستانی که ممکنه یه روزی بدردشون بخوره به زبان ساده از بوت لودر تا کرنل نویسی توضیح میدم (اگه زنده موندم)، و ایشالا به مرور تکمیلش میکنم.

نوشته های من مطمئنن اشکالاتی داره که از دوستان مسلط به این مبحث تقاضا میکنم رفع اشکال بفرمائید .

طراحی سیستم عامل - قدم به قدم
http://shabgard.org/forums/showthread.php?t=21974