تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 9 از 9

نام تاپيک: نوشتن بوت لودر با اسمبلی و C

  1. #1
    آخر فروم باز sada's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    چطور مگه؟
    پست ها
    1,449

    پيش فرض نوشتن بوت لودر با اسمبلی و C

    با سلام
    من می خواستم به برنامه بنویسم که موقع بوت کامپیوتر بیاد بالا و بتونم لیست فایل ها و فلدر های (مثل دستور dir) مثلا درایو c رو بهم نشون بده.
    خوده بوت لودر رو تونستم بنویسم که بتونه مثلا روی صفحه یه چیزی نمایش بده(یه جمله رو) ولی اون لیست فایل ها رو نمیدونم چطوری انجام بدم.
    ممنون میشم اگه کسی بلده راهنمایی کنه

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    من عمل شما را بلد نیستم اما تا آنجایی که من می دانم در هنگام بوت می بایست درایور های مختلف ( در واقع آدرس های مختلف) هندل شود. حال نمی دانم که بوت شما بوت کاملا مستقلی است یا روی یک بوت دیگر در حال انجام است. اما دیده ام که برخی شرکت ها برای عمل بوت خود از بوت نصب ویندوز استفاده کرده و آنجایی که می خواهد نصب شروع شود Application خود را قرار می دهند اینگونه دیگر درگیر رفتارهای بوت و درایور ها نمی شوند.
    اگر توضیح بیشتری در مورد نحوه ی نگارش و مسائل مربوط دیگر بدهید شاید دوستان بتوانند راهنمایی های بهتری انجام دهند.

    موفق باشید.

  3. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  4. #3
    آخر فروم باز sada's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    چطور مگه؟
    پست ها
    1,449

    پيش فرض

    در واقع سوال اینطور بوده که یک بوت لودر یا حالا برنامه ای بنویسیم که بتونه ابتدای ویندوز بوت شده(حالا به کمک بایوس یا هر چیزی) و بتونه لیست فایل ها و فلدر های مثلا درایو c رو نمایش بده روی صفحه.
    فرقی هم نمی کنه که چطور نوشته بشه حالا یا با c یا اسمبلی

  5. #4
    کاربر فعال انجمن گنولینوکس Ali_RNT's Avatar
    تاريخ عضويت
    Jul 2013
    محل سكونت
    home/ali_rnt/
    پست ها
    1,333

    پيش فرض

    712:من خیلی چیزی نمیدونم.ولی میدونم که بوت لودر رو باید به اسمبلی بنویسید(حتما)...

  6. این کاربر از Ali_RNT بخاطر این مطلب مفید تشکر کرده است


  7. #5
    آخر فروم باز sada's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    چطور مگه؟
    پست ها
    1,449

    پيش فرض

    712:من خیلی چیزی نمیدونم.ولی میدونم که بوت لودر رو باید به اسمبلی بنویسید(حتما)...
    ممنون.آره حالا خودم به یه جاهایی رسیدم ولی فقط روی صفحه می تونم یه متنو نمایش بدم نمی تونم لیست فایل ها رو بگیرم
    این هست اون چیزی که پیدا کردم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  8. این کاربر از sada بخاطر این مطلب مفید تشکر کرده است


  9. #6
    کاربر فعال انجمن گنو لینوکس V i r u s e r's Avatar
    تاريخ عضويت
    Jan 2008
    محل سكونت
    bin/
    پست ها
    2,086

    پيش فرض

    سلام دوست عزیز
    همچین کاری با نوشتن یک بوت لودر ساده امکان پذیر نیست. اصلا این چیزی که می خواهید بنویسید بوت لودر نیست. بوت لودر برنامه ای هست که محیط رو برای اجرای سیستم عامل اصلی اماده می کنه و اون رو اجرا می کنه.
    شما باید یک برنامه ای بنویسید که درایور های AHCI یا IDE رو براش پورت کنید تا بتونه هارد رو شناسایی کنه.
    بعد از این که هارد فیزیکی رو شناسایی کردید باید پارتیشن های های هر هارد رو شناسایی کنید. در مرحله ی بعد باید با توجه به فایل سیستم پارتیشن مورد نظر، جدول لیست فایل ها رو ترجمه کنید برای سیستم عامل. در نهایت از جدول مورد نظر استفاده کنید تا لیست فایل های موجود رو نمایش بدید.
    برای این کار باید کاملا با نوع فایل سیستم مورد نظر اشنایی داشته باشید و بدونید در هر سکتور پارتیشن چه چیزی رو انتظار داشته باشید. برای این کار در حال حاضر فایل سیستم Fat32 برای یاد گیری از همه اسون تره و اون رو پیشنهاد می کنم.
    اینم سایت برای مطالعه ی بیشتر: osdev.org

    ادیت: اشتیاه شد، در محیط Real Mode نیازی به درایور برای هارد نیست. بنده فکر می کردم در محیط Protected Mode بحث می کنیم.
    برای Real Mode چون دسترسی به بایاس ازاد هست، خود بایاس درایور های چیز های ساده رو داره
    برای این کار می تونید از [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] استفاده کنید. کافیه با استفاده از اینتراپت 0x13 هارد رو شناسایی کنید و با خوندن سکتور 0 و .. جدول فایل سیستم رو باز کنید
    Last edited by V i r u s e r; 13-02-2014 at 13:03.

  10. 4 کاربر از V i r u s e r بخاطر این مطلب مفید تشکر کرده اند


  11. #7
    کاربر فعال انجمن گنولینوکس Ali_RNT's Avatar
    تاريخ عضويت
    Jul 2013
    محل سكونت
    home/ali_rnt/
    پست ها
    1,333

    پيش فرض

    712:خیلی ممنون دوستان.واقعا مفید بود.چون من چند ماهه که دارم روی یک کرنل ساده کار میکنم!!!گر چه هنوز کاری به بوت لودر نداشتم...

  12. #8
    کاربر فعال انجمن گنو لینوکس V i r u s e r's Avatar
    تاريخ عضويت
    Jan 2008
    محل سكونت
    bin/
    پست ها
    2,086

    پيش فرض

    712:خیلی ممنون دوستان.واقعا مفید بود.چون من چند ماهه که دارم روی یک کرنل ساده کار میکنم!!!گر چه هنوز کاری به بوت لودر نداشتم...
    سلام
    در حال حاضر که حجم کرنلتون کمه می تونید مستقیما اون رو روی سکتور بوت نصب کنید. ولی وقتی حجم کرنل بره بالا دیگه جا نمیشه. به خاطر همین باید از بوت لودر استفاده کنید.
    بوت لودر یه جورایی یه کرنل ساده و کم حجمه که اول اجرا میشه و بعد هسته ی اصلی رو اجرا می کنه.
    برای این کار هم احتیاجی به بوت لودر نوشتن ندارید. می تونید از نمونه های موجود مثل Grub استفاده کنید. نوشتن بوت لودر در حال حاضر مثل اختراع چرخ هست و بهتره وقتتون رو روی سیستم عامل اصلی بزارید.

  13. #9
    آخر فروم باز sada's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    چطور مگه؟
    پست ها
    1,449

    پيش فرض

    ادیت: اشتیاه شد، در محیط Real Mode نیازی به درایور برای هارد نیست. بنده فکر می کردم در محیط Protected Mode بحث می کنیم.
    برای Real Mode چون دسترسی به بایاس ازاد هست، خود بایاس درایور های چیز های ساده رو داره
    برای این کار می تونید از [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] استفاده کنید. کافیه با استفاده از اینتراپت 0x13 هارد رو شناسایی کنید و با خوندن سکتور 0 و .. جدول فایل سیستم رو باز کنید
    سلام دوست عزیز خیلی ممنون.
    میشه یکم بیشتر راهنمایی کنید مرحله به مرحله چون من آشنایی زیادی به اسمبلی ندارم.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •