چگونه کرنل را بار کنم
البته بصورت فایل
و
چگونه فایل اجرایی را اجرا کنم(در سیستم عملم)
چگونه کرنل را بار کنم
البته بصورت فایل
و
چگونه فایل اجرایی را اجرا کنم(در سیستم عملم)
میتونید اونو به صورت BootDisk در بیارید . مثل menute OS
عزیزم می دونم
می خواهم پس قرار گرفتن در حافظه کرنل را بار کنم
یعنی:
BootSector.Bin --------------> 07C00h
بعدش بوت سکتور کرنل را خوانده در حافظه قرار بده بعد هم
کنترل اجرا را به اون بده
ok
شما به این ادرس مراجه کن
http://www.persiasecure.com/OS/
در قسمت مقالات مقاله چگونگی ساخت bootloader که توانایی خواندن fat12 را دارد مترجم رو مطالعه کنید
اگر مشکلی بود در خدمتم
مرسی
3 تا سوال دارم
1-آن سگمنت هایی که اول برنامه تنظیم می کنیم برای اجرای bootstrap است
یا برنامه ای که قرار است بار کند
2-چرای برای خواندن جدول fat و Directory root آن را باید به حافضه بار کرد
3-آیا همینگونه می توانم برنامه های اجرایی سیستم عاملم را اجرا کنم
1 - سگمنت نیست افست هست و برای اجرای bootstrap است برنامه ای که قرار است بار کند رو خود بایوس اتوماتیک اجرا می کنه و کارش خوندن bootstrap و اوردن اون به ادرس 7C00 و اجرای اون است پس باید برنامه ما ادرس داخلیش با ادرسی که بایوس bootstrap رو به اونجا می بره یکی باشه که یرنامه دچار فرو پاشی نشه
2 -در واقع FAT یک برنامه مدیرت فایل هست که در هسته اجرا میشه و به شما اجازه میده اطلاعاتتون رو به صورت فایل ذخیره کنید این برنامه مدیریت فایل (FAT) در ویندوز تعریف شده اما وقتی شما سیستم عامل می نویسید باید برای استفاده از اطلاعاتتون که در داریوی ذخیره کردید و به صورت FAT هست باید برای اینکار دوباره برنامه مدیریت فایل FAT رو از اول بنویسید یعنی شما وقتی دارید سیستم عامل می نویسید شما هیچ یک از امکاناتی که در ویندوز وجود داره رو نمی تونید استفاده کنید و باید خودتون این امکانات رو برای کرنل فراهم کنید
3 - نه برنامه شما نباید از وقفه ها و امکانات سیستم عاملی که ازش استفاده می کنید (روش برنامه نویسی می کنید) استفاده بکنه ! و برنامه Exe شما هیچ وقت در بوت سکتور اجرا نمیشه و این فرمت Exe برای سیستم عاملی که دارید ازش استفاده می کنید (ویندوز)تعریف شده اما وقتی شما دارید سیستم عامل می نویسید این فرمت شناخته شده نیست و باید برای اینکار تو هسته سیستم عاملتون این فرمت رو تعریف کنید
1-منظور من:
cli
xor ax, ax ; initialize all the necessary
mov ds, ax ; registers.
mov es, ax
mov ss, ax
mov sp, 0xFFFF ; Stack..
sti
2-؟
3-منظورم به روش بایوس بود بار کردن کد در حافظه و پرش به ابتدای کد
چرا در بعضی کدها
org 7c00
است ولی در بعضی دیگر
org 0
آیا در حالت دوم برنامه قادر به اجرا شدن هست.
لطفا در مورد جست و جوی فایل بعد از بار کدن FAT وRootDirectory توضیح دهید.
مقاله ای که aakh1369 معرفی کردند را خواندم ولی در این مورد زیاد توضیح نداده بودند.
================================================== ===========
[BITS 16] ; the bios starts out in 16-bit real mode
[ORG 0] ; Data offset = 0
start:
mov ax,0x7c0 ; BIOS puts us at 0:07C00h, so set DS accordinly
mov ds,ax ; Therefore, we don't have to add 07C00h to all our data
cli ; clear interrupts while we setup a stack
mov ax,0x9000 ; this seems to be the typical place for a stack
mov ss,ax
mov sp,0xffff ; let's use the whole segment. Why not? We can :)
sti ; put our interrupts back on
jmp $
times 510-($-$$) db 0
dw 0xAA55
================================================== ===========
و این کد
================================================== ===========
[BITS 16]
[ORG 0x7C00]
start:
cli
xor ax, ax ; initialize all the necessary
mov ds, ax ; registers.
mov es, ax
mov ss, ax
mov sp, 0xFFFF ; Stack..
sti
jmp $
times 510-($-$$) db 0
dw 0xAA55
================================================== ===========
برای bootstrap است-منظور من:
cli
xor ax, ax ; initialize all the necessary
mov ds, ax ; registers.
mov es, ax
mov ss, ax
mov sp, 0xFFFF ; Stack..
sti
بحثش خیلی مفصل هستلطفا در مورد جست و جوی فایل بعد از بار کدن FAT وRootDirectory توضیح دهید.
خیرچرا در بعضی کدها
org 7c00
است ولی در بعضی دیگر
org 0
آیا در حالت دوم برنامه قادر به اجرا شدن هست
برنامه به عنوان بوت سکتور نمی تونه اجرا بشه
[ORG 0x7C00] ; Data offset = 0x7C00[ORG 0] ; Data offset = 0
mov ax,0x7c00mov ax,0x7c0
مثل اینکه اشتباه تایپی کردن
در نوشتن بوت سکتور تمام سگمنت های باید در یک ادرس باشند حالا اگر CS در یک ادرس نبود مشکلی نیست ولی بقیه سگمنتها باید یکی باشه
مرسی
در مورد جست جو در FAT
من آن بخش را می خواهم که پس از یافتن اولین کلاستر فایل شروع می وشود
چرا کلاستر در 3 ضرب و بر دو تقسیم می شه(FAT12) و زوج و فرد ب.دن به چه دردی می خوره؟
در این مورد فعلا اطلاعاتی ندارم (تا چند وقت دیگه روش کار می کنم)
شرمنده یه مقدار در مورد a20 و فوایدش توضیح بده
چرا به وسیله ی پورت کیبورد فعالش می کنن؟
چون تا a20 فعال نشه حتی اگر به حالت محافظت شده رفته باشی باز هم نمی تونی به بیش از 1 مگابایت دسترسی داشته باشی در واقع فعال کردن a20 قابلیت ادرسی دهی بیشتر از 1مگابایت رو به CPU می ده
ممنون
GDT و LDT و توصیفگر را یه توضیح کوچولو بدی خیلی ممنون میشم
(مقاله زیاد خواندم-برای persian OS-را هم خوانده ام ولی زیاد نفهمیدم)
سلامممنون
GDT و LDT و توصیفگر را یه توضیح کوچولو بدی خیلی ممنون میشم
(مقاله زیاد خواندم-برای persian OS-را هم خوانده ام ولی زیاد نفهمیدم)
شما سوال تون رو اونجا مطرح کردید ؟
ببینید من الان می وانم برای حالت حقیقی os را بنویسم
تنها مشکلم مفاهیم pmode است.مثل GDT,LDT,توصیفگرهاوA20
اگه شما خوبی کنید و راهنمایی کنید مطمئن باشید خدا هم یه جوری
کمکتون می کنه.
اگه یه سایت کامل هم دادای هم ممنون می شم
عزیزم شما اگر سولات تون رو اونجا (گروه Persian Os) مطرح کنید حتما جواب های سوالات شما رو به طور کامل می دهندببینید من الان می وانم برای حالت حقیقی os را بنویسم
تنها مشکلم مفاهیم pmode است.مثل GDT,LDT,توصیفگرهاوA20
اگه شما خوبی کنید و راهنمایی کنید مطمئن باشید خدا هم یه جوری
کمکتون می کنه.
اگه یه سایت کامل هم دادای هم ممنون می شم
در ضمن اگر برای حالات حقیقی (Real Mode) برنامه نویسی می کنی به مفاهیم که گفتی نیازی نداری چون اینها که گفتی در حالات محافظت شده (32 بیتی) کاربرد دارند
موفق باشی
ییخشید
ایمیل باید بدم به گروه
راستی چرا خود شما جواب نمی دید
اینقدر که گفتید از گروه بپرس می تونستید یه جاش
یه توضیح کامل بدید . اگه گروه می تونست خوب توضیح بده
از مقالاتش می شد فهمید
گرچه از مقاله ای که لمه به کلمه ترجمه شده(بدون درک) انتظار بشتری نمی ره
osdever.net
برو اینجا هر چی بخوایی با مثال هست !
سلام خدمت همگی
من netspc هستم دوست love coder
امیدوارم بتونیم به دوستان کمکی کرده باشیم
در مورد سوالات اساسی :
فقط در گروه جواب داده میشه به این دلیل که این سوالات جنبه عمومی دارد و باید آرشیو شود برای استفاده دیگران
سلام بیت مپ فکر کنم در رابطه با LDT و GDT توضیح داده شده است.
دلیلی که میبینی نزدیک به 1 ماه هست که مقاله ای ندادیم بعلت رفتن من به هندوستان و نوشتن یک کتاب میباشد. والا چندین مقاله آماده که خود لاو و مستر زحمتش رو کشیدند آماده هست و بزودی بر روی سایت قرار میگیرد.
درضمن بهتر نیست عوض اشکالات بنی اسرائیلی گرفتن کمک کنید ;)
راستی لاو بهتر نبود این تاپ رو توی قسمت سیستم عامل میذاشتی؟؟؟
قصد این کار رو داشتم اما فراموشش کردم !راستی لاو بهتر نبود این تاپ رو توی قسمت سیستم عامل میذاشتی؟؟؟
در ضمن به سایت برنامه نویسی خوش امدی نت جان
راستی توی امضا بنویس که سوالات عمومی فقط در گروه جواب داده میشه که دیگه از اینجور درگیریها پیش نیاد :)