PDA

View Full Version : سوال: اجرای یک پسوند خاص



terminator68
پنج شنبه 22 خرداد 1393, 10:13 صبح
سلام.

اگر سیستم عامل mikeos رو که دیدید می بینید که فقط یک سری پسوند های تعریف شده خودشو اجرا می کنه...
قط یه سری پسوند های خاص اجرا می کنه...یونیک کرده ...

من اگه بخوام برای سیستم عاملم این کارو انجام بدم چیکار باید کنم؟

با سپاس..

emadrezvani
پنج شنبه 22 خرداد 1393, 17:06 عصر
باید فایل فرمت مخصوص به خودتون رو طراحی کنید( می تونید از لینکر هایی مثل ld و اسکریپت نویسیش استفاده کنید). در حال حاضر بنده هم فایل فرمت مخصوص خودمو برای سیستم عامل کوثر طراحی کردم.

pswin.pooya
پنج شنبه 22 خرداد 1393, 22:08 عصر
باید فایل فرمت مخصوص به خودتون رو طراحی کنید( می تونید از لینکر هایی مثل ld و اسکریپت نویسیش استفاده کنید). در حال حاضر بنده هم فایل فرمت مخصوص خودمو برای سیستم عامل کوثر طراحی کردم.

سلام

طراحی فرمت فایل برای فایلهای اجرایی پارامترهای زیادی داره از یه طرف دیگه قالبهای یونیکسی و لینوکسی بهترین ها هستند. قالب PE(exe) از کاف یونیکس به ارث رسیده و قالب elf هم که استاندارد فرمت فایل برای سیستم های 32 بیتی هست.

emadrezvani
جمعه 23 خرداد 1393, 00:56 صبح
سلام

طراحی فرمت فایل برای فایلهای اجرایی پارامترهای زیادی داره از یه طرف دیگه قالبهای یونیکسی و لینوکسی بهترین ها هستند. قالب PE(exe) از کاف یونیکس به ارث رسیده و قالب elf هم که استاندارد فرمت فایل برای سیستم های 32 بیتی هست.

سلام. بنده با اکثر فایل فرمت ها آشنایی دارم. در پاسخ به دوستمون باید بگم استفاده از ELF برای شروع طراحی سیستم عامل در صورتی که قصد استفاده از بوت لودرهایی مانند grub رو دارین خوب هست. اما اگر بوت لودر خودتون نوشته باشیم برای شروع پیشنهاد می کنم بصورت باینری خام جلو برین و بعد به برسی ساختار فایل فرمت های مختلف بپردازین و مناسبترین رو انتخاب کنید.

terminator68
جمعه 23 خرداد 1393, 18:07 عصر
سلام.
این که بصورت باینری خام جلو برم یعنی چی؟
بیبشتر میشه توضیح بدید؟
باا سپاس

emadrezvani
جمعه 23 خرداد 1393, 19:07 عصر
سلام. کدی که شما برای بنده ارسال کردین رو دیدم. در مرحله اول شما نیاز به خواندن سکتور از فلاپی(با توجه به FAT12 بوت لودر شما) را دارید(با استفاده از int 0x13). در مرحله دوم پرش به قسمتی از حافظه که فایل بارگذاری شده است. پشنهاد می کنم سورس کد سیستم آموزشی آقای بنی طبا به آدرس http://oscreator.blogfa.com/ رو مشاهده کنید.
بوت لودر شما بصورت Flat Binary نوشته شده هست. به همین صورت برای شروع باید شروع به نوشتن مرحله دوم بوت لودر کنید. همانطور که اطلاع دارید حجم بوت لودر نباید بیشتر از 512 بایت باشد. پس در بوت لودر تنها شما باید لودر هسته را بارگذاری کنید.(اصتلاحا stage2). بنده هم در سیستم عامل کوثر به همین شکل کار کردم. در مرحله اول هارد رو شناسایی و بارگذار هسته رو بارگذاری می کنه و در مرحله دوم بوت لودر شروع به بارگذاری هسته می کنه. فقط نکته ای که باید دقت کنید این هست که بوت لودر در آدرس 0x7c00 شروع به فعالیت می کند با این تفاوت که شما باید در اول مرحله دوم بوت لودر بصورت org آدرس مکان بارگذاری شده مرحله دوم قرار بگیرد.