مشاهده دست آورد نظرسنجی: نظر شما درباره این تاپیک چیست؟

رای دهنده
21. شما نمی توانید در این رای گیری رای بدهید
  • خوب

    17 80.95%
  • متوسط

    4 19.05%
  • بد

    0 0%
نمایش نتایج 1 تا 31 از 31

نام تاپیک: بوت لودر و جدول پارتیشن

  1. #1
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    Red face بوت لودر و جدول پارتیشن

    آموزش نوشتن اولین بوت لودر

    یک بوت لودر باید خصوصیات زیر را داشته باشد
    1)اندازه آن در نهایت 512 بایت باشد
    2)پایان آن به علامت 55 AA می رسد
    3)از آدرس حافظه 7C00 شروع می شود
    4)برنامه ای بسیار کوچک است و سریع لود می شود
    تا قسمت دوم یعنی برنامه هسته جهت یافتن سیستم عامل را لود کند

    برنامه های مورد نیاز
    1-اسمبلر
    2-برنامه کپی جهت نصب بوت لودر
    من از اسمبلر اوپن سورس nasm استفاده و جهت نصب از برنامه partcopy استفاده می کنم

    [BITS 16]
    این خط جهت راهنمایی اسمبلر برای ساختن برنامه های 16 بیتی است
    [ORG 0x7C00]

    همان طور که قبلاْ اشاره شد از آدرس حافظه 7C00 شروع می شود
    ; Main program
    main:
    شروع برنامه
    mov ax,0x0000
    mov ds,ax

    مقدار دهی سگمنت داده ها و مشخص کردن محل داده ها.
    call WriteStr
    جهت نوشتن پیغام در خروجی

    WriteStr:
    برچسب شروع روال
    mov ah,0x0E
    تابع جهت نمایش کارکتر
    mov bh,0x00
    شماره صفحه
    mov bl,0x07


    .nextchar


    lodsb
    جهت خواندن بلوک رشته
    or al,al

    jz .return

    int 0x10
    فراخوانی وقفه 10 بایوس
    jmp .nextchar
    پرش جهت خواندن کارکتر بعدی
    .return
    برچسب جهت کنترل پایان روال
    ret
    پایان روال
    HelloWorld db 'Hello World',13,10,0
    متغییر جهت متن پیغام
    times 510-($-$$) db 0
    پر کردن سکتور ها با مقدار 0
    dw 0xAA55
    علامت 55 AA جهت پایان فایل بوت لودر


    کامپایل با دستور
    nasm yourbootsector.asm -f bin -o bootsec.bin

    اما کپی کردن به بوت سکتور فلاپی

    partcopy bootsec.bin 0 200 -f0
    پایان جلسه 1
    ادامه دارد

  2. #2
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: بوت لودر و جدول پارتیشن

    در این جلسه درباره خدول تخصیص پارتیشن ها (Partition Table) و محل قرار گیری بوت لودر توضیحاتی خدمتتان عرض می کنم
    partition_table_c.gif

    همانطور که در این عکس می بینید MBR یا Master boot record شامل سه قسمت است

    1. جدول تخصیص پارتیشن(رنگ سبز) اندازه آن 64 بایت
    2. محل قرار گیری بوت لودر(رنگ زرد) اندازه آن 446 بایت
    3. بیت های نشانه(آبی رنگ)

    جدول تخصیص پارتیشن : محل قرار گیری جدول پارتیشن ها به اندازه 64 بایت است که به چهار 16 بایت تقسیم می شود
    هر کدام از این 16 بایت می تواند یک پارتیشن را به خود اختصاص دهد حال این سوال پیش می آید
    که در هر هارد دیسک چهار پارتیشن می تواند داشته باشد چگونه تعداد دلخواه پارتیشن ایجاد کرد

    به عنوان مثال 16 بایت به شرح زیر می باشد

    بایت 0 اکتیو بودن (بوتیبل) مقدار 0 بوتیبل نیست , مقدار 0x80 بوتیبل است
    بایت 1 سیلندر شروع
    بایت 2 هد شروع
    بایت 3 سکتور شروع
    بایت 4 نوع پارتیشن
    بایت 5 سیلندر پایان
    بایت 6 هد پایان
    بایت 7 سکتور پایان
    بایت 8 الی 11 سکتور شروع در حالت LBA
    بایت 12الی 15 سکتور پایان در حالت LBA

    این هم یک عکس از میکروسافت درباره این موضوع

    part.gif

    خوب جلسه بعد درباره Embr و پارتیشن های پیشرفته و جدول پارتیشن توضیح بیشتری می دهم
    موفق باشید
    ادامه دارد

  3. #3

    نقل قول: بوت لودر و جدول پارتیشن

    با تشکر از دوست گرامی
    چیزی که دوستان ندیدم اینجا یا جای دیگه ازش حرفی بزنند ،اونم اینه که نوشتن دستورات وقتی محدودیت حافظه داریم مثلا نوشتن بوت لودر یا برنامه برای رام اینه که باید به اندازه دستورات توجه داشت و تا جایی که میشه از دستورات مشابه که بایت کمتری اشغال میکنه استفاده کنیم موارد دیگه میتونه وقفه های مورد استفاده باشه(در برنامه های بزرگ سرعت اجرا و کارامد بودن که در همین حد توضیح در این بحث کافیه) که روی هر سیستم سازگاری داشته باشه البته فکر میکنم بهتر میبود بحث لودر رو تمام میکردین بعد ادامه میدادین
    موفق باشی

  4. #4
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: بوت لودر و جدول پارتیشن

    نقل قول نوشته شده توسط xman_1365_x مشاهده تاپیک
    با تشکر از دوست گرامی
    چیزی که دوستان ندیدم اینجا یا جای دیگه ازش حرفی بزنند ،اونم اینه که نوشتن دستورات وقتی محدودیت حافظه داریم مثلا نوشتن بوت لودر یا برنامه برای رام اینه که باید به اندازه دستورات توجه داشت و تا جایی که میشه از دستورات مشابه که بایت کمتری اشغال میکنه استفاده کنیم موارد دیگه میتونه وقفه های مورد استفاده باشه(در برنامه های بزرگ سرعت اجرا و کارامد بودن که در همین حد توضیح در این بحث کافیه) که روی هر سیستم سازگاری داشته باشه البته فکر میکنم بهتر میبود بحث لودر رو تمام میکردین بعد ادامه میدادین
    موفق باشی
    دوست عزیز اولی مقدمه بوت لودر بود و دومی رو گفتم که دوستان بدونند که وضعیت بوت لودر چطوری وکجا قرار میگیریه درضمن این دوتا لازم و ملزوم هم وموضوعات آن هم تقریبا بهم پیچیده هستند

  5. #5

    نقل قول: بوت لودر و جدول پارتیشن

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

    نقل قول نوشته شده توسط ali.asady
    من منظورت رو از سوال نوشتن دستورات وقتی محدودیت حافظه داریم رو درست نفهمیدم
    یعنی اینطوری برداشت کردم که اگه 446 بایت داریم چطور بوت لودر رو بنویسیم و درون آن وارد کنیم
    اول اینو بگم پستی که من دادم برای این بود که به نکته ای که مهم و هست و نادیده گرفته میشه اشاره کنم نه اینکه بحث عوض شه پس اگر سوالی بود پیام شخصی بدین تا پیوستگی مطالب بهم نخوره
    حالا اینو چون پرسیدین و مرتبط هست با مثالی میگم
    با فرض اینکه :

    mov eax,0FFFFh
    mov ebx,1234h

    میخواهیم جای این دو عدد در ثبات را جابجا کنیم سه راه رو میگم
    1-

    mov ecx,eax
    mov eax,ebx
    mov ebx,ecx

    2-

    push eax
    push ebx
    pop eax
    pop ebx

    3-

    xchg eax,ebx

    خوب هر سه قسمت یک کارو انجام میدن اما تفاوت در سرعت اجرا و اندازه کد ماشین هست که در اینجا بایت یا همون اندازه دستور برای ما هائز اهمیت هست کد اول 6 بایت و کد دوم 4 بایت که بدی این دستور اینه سرکشی به حافظه که در برنامه های بزرگ باعث تاخیر میشه و بهتره هر چی بیشتر با ثبات ها کار کنیم و دستور سوم 1 بایت اشغال میکنه حالا کاملا مشخص شد برای نوشتن برنامه به اسم بوت لودر اگر ما برنامه رو بدون در نظر گرفتن این بایت ها انجام بدیم فکر نمیکنم کار موثر زیادی رو بشه انجام داد
    80x86 instruction set
    موفق باشید

  6. #6
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    Lightbulb نقل قول: بوت لودر و جدول پارتیشن

    بازم سلام و تشکر از گوشزد شما

    من معمولا از انتقادات و ‍پیشنهادت استقبال می کنم به خاطر همین هم از همه دوستانی که این تاپیک رو می بینند
    خواهش می کنم حوصله به خرج بدند .
    من طبق نظر این دوستمون سعی می کنم مطالب و دانسته های خودم رو که با تحقیق ومطالعه بدست آوردم به صورت منظم تری جمع جور کنم تا دوستان راضی باشند

    البته قصد بنده حقیر از ارایه تاپیک این است که بنا به فرموده پیامبر گرامی اسلام :

    هر چیزی را زکاتی است و زکات علم و تجربه ، آموختن آن است

  7. #7
    کاربر دائمی آواتار pcdownload.bloghaa.com
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    زیر گِل
    پست
    278

    نقل قول: بوت لودر و جدول پارتیشن

    اگه میشه نحوه لود کردن یه کرنل ساده را هم از درون بوت لودر بفرمایید که خیلی درگیرشم.

  8. #8
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: بوت لودر و جدول پارتیشن

    نقل قول نوشته شده توسط pcdownload.bloghaa.com مشاهده تاپیک
    اگه میشه نحوه لود کردن یه کرنل ساده را هم از درون بوت لودر بفرمایید که خیلی درگیرشم.
    فایل ضمیمه رو دانلود کن
    نمونه یه بوت لودر و کرنل از tab-os طریقه لود کرنل داخلش هست
    داخل فایل های
    _start32.s


    1: movl $_stack_desc, %eax
    lss (%eax), %esp

    fninit
    pushl %ebx
    call _startKernel

    /* this should never happen.
    * but if we leave _start_kernel for any reason, we know where we go to
    */
    jmp
    .

    main.c

    void _startKernel( struct sMultiBootInfo *psMultiBoot )


    اگر کمک خواستی تا اونجا که از دستم بر می آید کوتاهی نمی کنم برام پیام بزار
    فایل های ضمیمه فایل های ضمیمه

  9. #9
    کاربر دائمی آواتار joker
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان
    سن
    42
    پست
    1,326

    نقل قول: بوت لودر و جدول پارتیشن

    نقل قول نوشته شده توسط pcdownload.bloghaa.com مشاهده تاپیک
    اگه میشه نحوه لود کردن یه کرنل ساده را هم از درون بوت لودر بفرمایید که خیلی درگیرشم.
    شاید کمکت کنه دستت راه بیفته :)

    http://shabgard.ir/forums/showthread.php?t=21974

  10. #10
    کاربر دائمی آواتار .:saeed:.
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    پست
    207

    نقل قول: بوت لودر و جدول پارتیشن

    ببخشید که وسط بحثتون interrupt ! ایجاد میکنم. فقط خواستم تشکر کنم و خواهش کنم که حتما ادامه بدین . نمی دونم چه دلایلی وجود داره که افراد رغبت ندارند دانسته هاشون رو به دیگران انتقال بدند. به نظرم مهمترین دلیلش اینکه من نوعی میخونم و استفاده میکنم ولی تشکر نمی کنم . بازهم ببخشید که پا برهنه اومدم وسط بحث . امید وارم با بحث های تخصصی تر ادامه داشته باشه

  11. #11
    کاربر دائمی آواتار .:saeed:.
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    پست
    207

    نقل قول: بوت لودر و جدول پارتیشن

    راستی یه پیشنهاد . اگه ممکنه در پایان هر جلسه یه فایل پی دی اف از اون جلسه واسه دانلود هم بذارید . چون نویسنده توی فایل word ( تبدیل میشه به pdf) قدرت مانور بیشتری داره.

  12. #12
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    بوت لودر و جدول پارتیشن

    عنوان درس
    جدول پارتیشن درMBR/EBR


    مثال واقعی جدول پارتیشن

    در

    هارد
    20 گیگابایت (با NTFS، FAT32 و پارتیشن های لینوکس)
    Screenshot-1.jpg

    این نمایش هگز فقط در آخرین 80 بایت در بخش MBR هارد دیسک است که به عنوان مثال ممکن است در ویرایشگر دیسک ظاهر می شود. جدول پارتیشن که در داخل خط نازک زرد رنگ در نمودار فوق نشان داده شده است.

    دو مورد دیگر نیز در این نمودار نشان داده شده است
    :

    1. خط ارغوانی اطراف بایت هگز A8 E1 A8 E1 "نمونه ای از امضا دیسک NT (که توسط سیستم عاملهای 2000/XP استفاده می شود)
    2. این بخش کلمه امضای AA55h که فن آوری های قدیمی تر نامیده می شود.

    [البته : 55AA در ویرایشگر هگزا در سیستم های پردازنده x86 اینتل، کلمات هگز با اولین بایت پایین و آخرین بایت بالا بنابراین AA55h به نظر می رسد به این عنوان ذخیره می شود].


    در گوشه بالای سمت راست جدول، شما یک بایت با مقدار از 80را می ببینید. این بایت اول در ورودی اولین پارتیشن است ، و توسط بایتهای 01 01 00 دنبال شده و در اکثر هاردها این بایت ها، بعد از اولین بایت پارتیشن است که پارتیشن بوت را در دیسک سخت با بایت 80h مقدار دهی می‌کنند و بوت لودر (کد MBR) یا همان 446 بایت را با ابزار مثلاً pcopy در همان پارتیشن قرار می دهندو تلاش برای بارگذاری پارتیشن بوت فقط در مدخل یکی از پارتیشنها (در زمان راه اندازی سیستم) با بایت 80hاست انجام و چون سه بایت در ادامه مقدار (CHS 0،1،1 ) است که طبق محاسبه به سکتور با آدرس مطلق 63 از دیسک، بوت آغاز خواهد شد.


    تا هاردهایی با حجم
    8.4 گیگابایت، با بدست آوردن مقدار شروع و پایان CHS تعداد کل سکتورها و بدست آوردن حجم پارتیشنها به راحتی بدست می‌آمد ، که ممکن است به کمک آن تصحیح خطا برای مدخل دستی در پارتیشن تیبل باشد.
    به عنوان مثال با مقدار
    (CHS 877،254،63) توسط محاسبات تعداد کل سکتورها از روش زیر بدست می آید
    تعداد کل سکتورها
    = سیلندر * هدر * سکتور

    14105070=878*255*63

    وچون قبلاً گفتیم که بوت از آدرس 63 مطلق شروع می‌شود باید مقدار بدست آمده را از 63 کم کنیم


    14105070-63=14105007
    البته توضیح بدم این جدول پارتیشن و طرح نمونه ایجاد شده توسط یک سیستم عامل مایکروسافت نیست. در عوض تنها یک پارتیشن اولیه و پس از یک پارتیشن توسعه یافته، داره درایو دارای سه پارتیشن اولیه و پس از آن یک پارتیشن توسعه یافته است
    Screenshot-1.png

    در جدول بالاشما متوجه خواهید که محاسبات مقادیر CHSهمواره به همین آسانی انجام نمی گیرد! اگرچه اولین بایت برای هر شروع و خاتمه دادن به مدخل CHS است که همواره از ضرب هد ، در سیلندر و سکتور بدست می آید! اما گاهی جهت محاسبه مقدار سکتور، شما باید منجر به دو بیت از بایت دوم (یا متوسط) حذف و در نتیجه بزرگترین مقدار شما می توانید برای یک سکتور است : 3Fh (__11 1111) = 63. برای محاسبه مقدار سیلندر، دو بیت از بایت میانی را به دو بیت اول یک عدد هگز اضافه می‌کنیم و یک عدد ده بیتی که با آخرین بایت در هر مدخل CHS به پایان می رسد. بنابراین ، بزرگترین مقدار شما می توانید برای یک سیلندر می باشد :

    3FFh (11 1111 1111) = 1023 (که در جدول، شما تعداد 1024 سیلندر می دهد).
    از آنجا که این بزرگترین مقادیر است که می تواند در هر جدول پارتیشن استاندارد مورد استفاده قرار گیرد
    1024 x 255 x 63 = 16450560

    16450560 x 512 = 8422686720
    (یا 8422686720 بایت)، بنابراین حد 8.4 گیگابایت برای هر BIOS بدون INT جدید 13 ضمیمه ها (مانند توابع 42 ، 43 و 48 برای خواندن ، نوشتن و به دست آوردن پارامترهای درایو)!

    بنابراین ، زمانی که یک پارتیشن بیشتر از 8.4 گیگابایت در یک درایو باشد بعضی از افزونگی در بخش آخرین سکتور در حالت CHS در این ورودی دیده شود .


    Screenshot-2.png
    اگر تعداد سیلندر تا 1023 محدود نبود ، ارزش سیلندر، آخرین سکتور در حالت CHS سه گانه می تواند به شرح زیر محاسبه کرد
    (14105070 + 12289725)/(255*63) = 1643 سیلندر

    یا
    26394795/ 16065=1643

    که سکتور26394795 همان آدرس مدخل بعدی است ! بنابراین در حالت CHS مقدارها به ترتیب C=1643/H=254/S=63خواهد شد؟
    برای هر پارتیشن که فراتر از 8.4 گیگابایت باشد ، به عنوان مثال مانند دو آخرین ورودی در جدول پارتیشن ما، تنها ارزش در داخل خط نازک سبز را می تواند برای محاسبه هر دو اندازه واقعی یک پارتیشن و مکان آن مورد استفاده قرار گیرد.
    حال به هر دو سکتور (شروع و پایان) در مدخل سوم جدول پارتیشن مثال ما توجه کنید
    در نهایت ، ورودی چهارم در جدول مثال ما که شامل یک پارتیشن LBA توسعه یافته (نوع 0Fh) است. در مورد هر پارتیشن توسعه یافته،که شامل تمام پارتیشن های منطقی است که ممکن است در آن وجود داشته باشد، که یک یا چند درایو می‌تواندباشد. پارتیشن توسعه یافته، اغلب تمام هارد را تا پایان پوشش می دهد، اما اجباری نیست. همچنین باید توجه کنید که حتی اگر تمام چهار ورودی یک جدول پارتیشن استفاده شود، به این معنی نیست هیچ فضای خالی بر روی یک درایو وجود نداشته باشد
    MBR:Master Boot Record

    EBR:Extended Boot Recoed

    پایان این جلسه
    واین داستان ادامه دارد

    آخرین ویرایش به وسیله ali.asady : پنج شنبه 24 شهریور 1390 در 01:27 صبح

  13. #13
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    بوت لودر و جدول پارتیشن

    این هم ، همه اطلاعات به صورت پی دی اف

    pt.zip

    لطفا به نظر سنجی پاسخ دهید

    متشکرم

  14. #14
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: بوت لودر و جدول پارتیشن

    من یک فایل دی اسمبل شده از یه بوت فایل ویندوز 98 گرفتم
    دوستان هم ببینند ونظر بدهند شاید ما هم چیزی یاد گرفتیم


    فایل های ضمیمه فایل های ضمیمه

  15. #15
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: بوت لودر و جدول پارتیشن

    EBR : Extended Boot Record


    • مقدمه‌ای بر پارتیشن توسعه یافته
    • پارتیشن توسعه یافته زنجیره ای است، تو در تو نیست

    بوت رکورد توسعه یافته در ساختار به MBR مشابه است، اما اکثریت از آنها 446 بایت اول صفر پر شده است چیزی بجز داده های جدول پارتیشن و بوت رکورد امضا AA55h دارند؛ ممکن است برنامه نویسان در موارد استثناء برای نوشتن کد برنامه مانند وبروس maxblast از آن استفاده کنند


    Screenshot.png

    محتویات معمول بوت رکورد یک جدول پارتیشن توسعه یافته
    Screenshot-1.png
    این هم نمونه واقعی


    از نظر ما نسخه برداری و ذخیره سازی داده های موجود در هر سکتور EBR جهت بازیابی اطلاعات مهم است این کپی در جای دیگر ( نه در همان دیسک سخت) نگهداری شود یا می توان تنها بایت داده را ازهر یک از ورودی های جدول پارتیشن قرارداد مانند نوت بوکها.
    اگر سیستم عامل دیگر نمی تواند محتویات هر سکتور EBR را فراخوانی کند، شما بهتراست به رفع اشکال (و یا بازیابی اطلاعات خود را) و محتویات این جدول داشته باشید!
    برای مثال برنامه Partinfo لیست تمام بوت رکوردها پیشرفته را به صورت زنجیره نمایش می کند
    اما حتی اگر داده های جدول پارتیشن را حذف کنید و با بازنویسی سکتور MBR، شما هنوز هم می توانید پارتیشن های خود را با استفاده از به عنوان مثال TestDisk بازیابی کنید.


    واما تودرتو بودن پارتیشنهای محلی در پارتیشن توسعه یافته تنها یک مفهوم است نه واقعیت!

    اگر چه همه درایو محلی (یا پارتیشن) در داخل یک پارتیشن توسعه یافته هستند یا بعنوان مثال کلیه ی درایو منطقی در داخل پارتیشن های قبلی تو در تو هستند این واقعیت را با برنامه‌های نمایش سکتورها و دستیابی به آن‌ها می توان مشاهده کرد .لیکن همواره EBRs با داده های جدول پارتیشن (و پارتیشن های مربوطه) به همین شیوه در ویندوز 2000 یا XP مدیریت دیسک MMC (در شکل بالا )نمایش داده می شود :

    در مدیریت دیسک MMC (شکل بالا) هر درایو منطقی بطور مستقل و داخل پارتیشن توسعه یافته نشان می‌دهد در واقع ، داده ها در اولین EBR و هر یک از لینک متوالی EBR پارتیشن های منطقی خود را نشان می دهد، مانند آویز چسبیده به دیوار توسط یک زنجیره نخ نامرئی .
    ساختارهای مختلف دیسک و مناطق آن در شکل زیر نشان داده شده است اکنون هر قسمت با برچسب با شماره قرمز در نمودار را توضیح می دهم


    EBRreality.png

    1:MBR (مستر بوت رکورد) است که همیشه در اولین بخش از هر دیسک سخت در LBA 0 یا CHS (0 ، 1) واقع است
    در سیستم عاملهای جدید مثلا مایکروسافت ویندوز ویستا به بعد بخش اول مانند دیگرMBR ها ظاهر نمی‌شود ، و ممکن است برنامه ابزار قدیمی پارتیشنهای ویستا خراب کرده یا نشان دهند و آن را تنها به به عنوانی فضای تخصیص نیافته بدون نوشته های پارتیشن جدول قدیمی بشناسند .
    (رجوع کنید به : GUID جدول پارتیشن برای اطلاعات بیشتر به جدول پارتیشن واقعی در سیستم‌های 64 بیتی).
    2: منطقه صورتی رنگ با برچسب 2 که در نمودار نشان داده شده است که گاهی اوقات به نام "منطقه رزرو شده "(حفاظت شده) و شامل بخش MBR و سکتورهای آن است
    اندازه آن برابر با تعداد سکتور در ترک (یا هد که معمولا 63 برای اکثر درایوها) و63 منهای سکتور MBR مساوی 62 سکتور می‌شود این منطقه در همه "دیسک های سخت با پارتیشن اولیه یافت ، و آن را" استفاده نشده "توسط سیستم عامل می گویند، شما ممکن است برخی از داده بسیار جالب در آن پیدا کنید.
    وقتی که گراب، و یا برخی بوت منیجر دیگری، نصب می‌کنید بوت MBR ممکن است از ده ها بخش و یا پس از این منطقه با بخشی از خود( stage2 ) آن را پر کند.
    در ویروس های قدیمی معمولاً از این قسمت برای مقیم شدن ویروس های ddo و غیره استفاده می‌شد

    مناطق 4 و 6 اولین - دومین - و چهارم پارتیشن اولیه بر روی این دیسک با اطلاعات در مورد مکان های آنها و اندازه به طور معمول یافت می شود،مگر اینکه برخی از سیستم عامل ها و یا ابزار و برنامه بصورت سفارشی آنها را ترکیبی استفاده کنند.توجه کنید در ابزار پارتیشن بندی FDISK مایکروسافت و آی بی ام برای بیش از یک پارتیشن اولیه ایجاد نمی کند که قبل از یک پارتیشن توسعه یافته ایجاد می شود. ابزارهای مدیریت دیسک ویندوز ™ 2000 و بعد از انجام این کار محدودیت ندارد. بنابراین ، پارتیشن اولیه در 4 (2) و 6 (4) می تواند تحت سیستم عامل ها ایجاد شود


    7 : این منطقه "فضای آزاد" که توسط کاربر پارتیشن نشده است


    8 :اولین سکتور EBR ( بوت رکورد توسعه یافته) در پارتیشن توسعه یافته.


    9:فضای بین پارتیشن (همچنین نوارهای صورتی را در کنار 9 -11-14 ببینید).این منطقه بین تمام سکتور های EBR و پارتیشن های آنها شبیه به "منطقه بلا استفاده" بین MBR و محل اولین پارتیشن روی یک دیسک پایه است.اغلب اندازه آن برابر تعداد سکتور در هد (یا SPT، سکتور در ترک) منهای یک (سکتور EBR)، مساوی 62 سکتور است


    10 : فضای استفاده نشده. احتمالا اولین درایو منطقی ایجاد شده در داخل پارتیشن توسعه یافته است ، ممکن است بعدا، آن را حذف کرده اند. پس از حذف اشاره ازمدخل پارتیشن خود ، درEBR اول برداشته، و تنها لینک به سکتورEBR پارتیشن منطقی بعدی اشاره می کند

    11 : EBR برای پارتیشن درایو منطقی در 12 و همچنین اشاره گر به سکتور EBR در 14.

    12: یک پارتیشن منطقی معتبر در پارتیشن توسعه یافته، می تواند فرمت شده یا فرمت نشده باشد،برای نوع پارتیشن شما نیاز به بررسی مدخل پارتیشن خود واقع در بوت رکورد معتبر دارید.


    13: فضای استفاده نشده.این منطقه می تواند قسمتی از پارتیشن اصلی توسعه یافته در درایو دوم منطقی ایجاد شده باشد، و با برخی از برنامه های سودمند، مانند پارتیشن مجیک ، تغییر سایز انجام شده و یا ممکن است پارتیشن توسعه یافته شامل 3 یا 4 پارتیشن های منطقیبوده که بعدا حذف شده اند
    اگر پارتیشن را پاک می کنید و این مورد ازابزار یا سیستم عامل، استفاده می‌کنید ورودی EBR ویرایش می‌گردد مثال ورودی EBR 11 به پیش سکتور اصلی EBR اشاره می‌کند و برنامه ها به سادگی درایو منطقی را حذف نمی‌کنند در جدول ورودی پارتیشن اشاره گر به EBR پارتیشن بعدی اشاره می‌کند و بخش اطلاعات باقی می‌ماند.مانند 14 EBR

    14 :آخرین EBR در داخل این پارتیشن توسعه یافته است.

    15 : یکی دیگر از پارتیشنهای منطقی معتبر یا درایو در داخل پارتیشن توسعه یافته است.

    16 : فضای استفاده نشده. در پایان از پارتیشن توسعه یافته است.
    آخرین ویرایش به وسیله ali.asady : جمعه 22 مهر 1390 در 18:29 عصر

  16. #16
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    این هم درس جلسه قبل دانلود کنید

    التماس دعا
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip EBR.zip‏ (96.4 کیلوبایت, 86 دیدار)

  17. #17
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    مفدمه ای بر بوت رکورد استاندارد

    بررسی کدهای اسمبلی




    آخرین ویرایش به وسیله ali.asady : یک شنبه 24 مهر 1390 در 22:41 عصر

  18. #18
    کاربر جدید
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    پست
    9

    نقل قول: بوت لودر و جدول پارتیشن

    با سلام خدمت دوستان عزیز،
    من با سرچ به این تاپیک رسیدم،
    درسته که فقط 2 صفحه مطلب عنوان شده ولی با توجه به بار مفهومی هر درس استاد عزیزم، کمی طول میکشه به دوستان برسم.
    فقط می خواستم دو تا خواهش کنم، 1- لطفاً کمی مطالب رو بسط بدید که بنده نوعی که اطلاعات کمتری داریم هم بتونیم بهره ببریم (البته تا جایی که مطالب بیش از حد طولانی نشه، مثلاً کافیه Refrence های خوبی از برخی از مواردی که بنظرتون برای ماها نامانوسه بزارید تا بریم تحقیق کنیم) 2- کاربرد من از این مطلب، ساخت یک سیستم عامل بسیار سادس که بتونه خودش رو به CPU یا هر نوع پردازنده ای که قدرتش رو داشته باشه معرفی کنه تا بتونه در لایه KingSpace روتین هاش رو اجرا کنه. می گم که هنوز به انتهای مطلب نرسیدم، ولی ممنون می شم با داشتن این ذهنیت، جاهایی که لازم می بینید یه توضیحاتی هم در این سطح ارائه کنید(شاید هم تو مطالب باشه و من هنوز نرسیدم، که اگر اینطوره عذر می خوام)
    بهرحال بسیار مطلب جالب توجهیه، امیدوارم با انرژی دنبالش کنید.

  19. #19

    نقل قول: بوت لودر و جدول پارتیشن

    با سلام و تشکر به خاطر تاپیک آموزشی خوبتون
    من تاپیک رو از پست اول تا آخر خوندم، یه سیستم ساده هم نوشتم، باهاش بالا اومدم و یک سری کارها رو براش تعریف کردم ولی متاسفانه نتونستم قسمت نصب رو بنویسم. برای مثال سیستم از روی فلش که بالا اومد یه قابلیت نصب هم داشته باشه که بتونه سیستم رو روی هارد بارگذاری کنه تا بشه بعد از اون بدون استفاده از فلش، سی دی یا فلاپی از روی هارد سیستم بالا بیاد (مثل اینکه دو تا ویندوز داشته باشیم و اول کاری ازمون بپرسه که با کدوم بالا بیاد). از دوستان اگه کسی میتونه لطفاً من رو راهنمایی کنه یا بگه که دنبال چی باید بگردم.
    پینوشت: با نظر بعضی دوستان موافقم که مطالب رو هوا داره گفته میشه و میشه بیشتر توضیحشون داد. اگر خودم به حدی برسم که بتونم توضیح بدم حتماً این کار رو میکنم که این تاپیک بهتر بشه
    آخرین ویرایش به وسیله unknown.unforgiven : چهارشنبه 05 بهمن 1390 در 11:41 صبح

  20. #20
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: بوت لودر و جدول پارتیشن

    خلاصه بگم که باید مستقیما روی Sector های HD بنویسی خود برنامه ات رو...

  21. #21

    نقل قول: بوت لودر و جدول پارتیشن

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    خلاصه بگم که باید مستقیما روی Sector های HD بنویسی خود برنامه ات رو...
    ممنون از پاسختون، اما میشه لطف کنید یه خورده بیشتر توضیح بدید یا لینکی معرفی بکنید؟ رو چه سکتورایی؟

  22. #22
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: بوت لودر و جدول پارتیشن

    wiki.osdev.org/ATA_read/write_sectors

    بدون استقاده از وقفه ی 13h این کارو می کنه یعنی با IN و OUT.

  23. #23

    نقل قول: بوت لودر و جدول پارتیشن

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    wiki.osdev.org/ATA_read/write_sectors

    بدون استقاده از وقفه ی 13h این کارو می کنه یعنی با IN و OUT.
    دوست عزیز نگفتید رو چه سکتورهایی باید بنویسم

  24. #24
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: بوت لودر و جدول پارتیشن

    مکان Boot Loader همون اولین Sector دیسک هست، که همون طور که قبلا دیگران هم توضیح دادند باید حجمش 510 بایت باشه و بایت های 511 تا 512 با مقدار AA55 در مبنای 16 پر شده باشه.

  25. #25
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    تبريز
    پست
    89

    نقل قول: بوت لودر و جدول پارتیشن

    با سلام خدمت اساتید میخواستم بدونم فایل بوتی که ساختیم رو چطور میتونیم روی فلش مموری بریزیم تا بجای فلاپی سیستم رو با فلش راه اندازی کنیم.خیلی در اینترنت گشتم ولی اکثر کدها برای فلاپی دیسک میباشد. الان فایل بوت من آماده هست ولی نمیدونم چجور رو فلش بریزم .

  26. #26

    نقل قول: بوت لودر و جدول پارتیشن

    نقل قول نوشته شده توسط am_abbas65 مشاهده تاپیک
    با سلام خدمت اساتید میخواستم بدونم فایل بوتی که ساختیم رو چطور میتونیم روی فلش مموری بریزیم تا بجای فلاپی سیستم رو با فلش راه اندازی کنیم.خیلی در اینترنت گشتم ولی اکثر کدها برای فلاپی دیسک میباشد. الان فایل بوت من آماده هست ولی نمیدونم چجور رو فلش بریزم .
    دوست عزیز بهتر بود بجای بالا آوردن این تاپیک سوالتون رو در تاپیک جدیدی مطرح میکردین، البته اگر قبلش جستجو میکردین سریعتر به جواب سوالتون می رسیدید.
    http://forum.osdev.org/viewtopic.php...=27432&start=0
    موفق باشی

  27. #27
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: بوت لودر و جدول پارتیشن

    اگه فلش به عنوان هارد دیسک دومی باشه به جای h0 از h1 استفاده کنید


    PARTCOPY source source_offset length destination destination_offset

    partcopy bootsec.bin 0 200 -h0

    partcopy A:disk_0.bak 0 200 -h1

  28. #28

    نقل قول: بوت لودر و جدول پارتیشن

    سلام
    خسته نباشید، من یک بوت لودر نوشتم و با نرم افزار مقلد qemu اون رو امتحان کردم.
    با استفاده از دستور dd بوت لودرم رو در ابتدای حافظه فلش خودم نوشتم اما وقتی از روی فلش سیستم
    رو بوت میکنم هیچ اتفاقی نمیفته گاهی فقط جای مکاننما تغییر میکنه و صفحه کاملا خالیه.
    میخواستم بدونم مشکل از فلش منه یا ممکنه جدول وقفه های سیستم من متفاوت بوده باشند؟

  29. #29
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: بوت لودر و جدول پارتیشن

    دستور مربوط به کپی بوت لودر با DD

    کپی بوت لودر یک هارد به هارد دیگر هارد ها یکسان باشند

    dd if=/dev/sda of=/dev/sdb bs=512 count=1

    کپی بوت لودر یک پارتیشن به پارتیشن دیگر


    # dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1

    # dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1

    کپی فایل بوت یه دیسک

    dd if=backup-sda.mbr of=/dev/sda

  30. #30
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1391
    پست
    53

    نقل قول: بوت لودر و جدول پارتیشن

    سلام دوست من...آیا ممکن هست این تاپیک را با یک مثال عملی همراه کنید؟
    مثلا از اولین پله تا بوت کامل و سپس چک سخت افزاری و دیدن درایور بوت روی اسکرین و در نهایت بوت اولین فایل از درایور بوت (چیزی شبیه بوت ویندوز)

  31. #31

    نقل قول: بوت لودر و جدول پارتیشن

    نقل قول نوشته شده توسط payam200525 مشاهده تاپیک
    سلام دوست من...آیا ممکن هست این تاپیک را با یک مثال عملی همراه کنید؟
    مثلا از اولین پله تا بوت کامل و سپس چک سخت افزاری و دیدن درایور بوت روی اسکرین و در نهایت بوت اولین فایل از درایور بوت (چیزی شبیه بوت ویندوز)
    سلام
    یک کتاب هست نوشته ی آقای نیک بلاندل writing a Simple Operating System from scratch که به شما نوشتن یک سیستم عامل ساده را یاد میدهد.
    البته مثل اینکه این کتاب هنوز هم کامل نشده ولی به هر حال خیلی به من کمک کرد. البته سری ویدئوهایی هم از ایشون در یوتیوب هست که نوشتن بوت لودر رو آموزش میدهند
    حدود 9 ساعت آموزش تصویری دارند.
    لینک کتاب :
    http://www.cs.bham.ac.uk/~exr/lectur...res/os-dev.pdf

    اما برای ادامه میتونید با اطلاعاتی که به دست آوردید میتونید مجموعه آموزشی BrokenThorn را مطالعه بفرمائید :
    http://www.brokenthorn.com/Resources/OSDevIndex.html

    من امسال کنکور دارم و فرصت نداشتم از این جلو تر برم. توصیه میکنم اگه زبانت خوبه در انجمن http://forum.osdev.org/ عضو بشی
    اطلاعات زیادی را در این انجمن پیدا خواهید کرد. اگه سوالی هم داشتید تا جایی که اطلاعات داشته باشیم کمکتون میکنیم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •