PDA

View Full Version : Write OS



Pars Giga
جمعه 22 مهر 1384, 05:23 صبح
سلام
ببخشید
کسی هست بتونه من رو برای طراحی کمک کنه
البته یک بار این سوال مطرح شده(توسط خودم)ولی من کمک بیشتری می خواهم
اکه هست ممنون می شوم.

(مخصو صا aakh1361 )

mehrzad007
جمعه 22 مهر 1384, 09:08 صبح
دوست عزیز این رشته رو خیلی کسی نمی تونه کمکت کنه . راهش خیلی طولانیه ما ها هم هر کدوم اگه چیزی می دونیم کم و ناقصه ÷س اگه واقعا میخوایی این کار رو انجام بدی شروع کن به تحقیق : 1- کار یه سیستم عامل چیه؟ 2- شما از سیستم عاملت چه انتظاری داری؟ 3- چه جوری می تونی اون کارها رو انجام بدی و.... به این صورت ه بگی کی میتونه تو طراحی کمکم کنه هیچ کاری انجام نمی شه ÷س اگه طالب عشقی یا علی!

Pars Giga
شنبه 23 مهر 1384, 04:21 صبح
مرسی
اما بعضی چیزها رو تو هیچ کتابی ننوشته !!!!
کمک کنید ممنون میشم

anubis_ir
شنبه 23 مهر 1384, 07:46 صبح
ISBN: 0672306557
Title: Developing Your Own 32-Bit Operating System
Author: Richard A. Burgess
Publisher: Sams Pub
_http://www.mytempdir.com/201799

Pars Giga
سه شنبه 26 مهر 1384, 04:19 صبح
یکی از مشکلاتم اینه:
آیا کام پایلرهای gcc و nasm مناسبند؟
چگونه باید یک سیستم عامل را کامپایل کرد؟(البته من کامپایل برنامه های عادی را بلدم)
کد تولید شده چگونه باید باشد؟(32bit-16bit(
من برنامه سکتور بوت را نوشتم بعدش باید چه کار کنم؟

البته کل تئوریها را بلدم ولی با کار عملی مشکل دارم

Pars Giga
سه شنبه 26 مهر 1384, 04:25 صبح
جناب anubis_ir
pdf شما دانلود کردم ولی با آکروباد ریدر باز نشد و error داد

Pars Giga
جمعه 29 مهر 1384, 04:19 صبح
ببخشید
چطوری باید کرنل رو بار کنم
یه کد نمونه ی کوچیک بدد کافیه
مرسی

aakh1361
شنبه 30 مهر 1384, 02:15 صبح
ببخشید
چطوری باید کرنل رو بار کنم
یه کد نمونه ی کوچیک بدد کافیه
مرسی
کدوم کرنل رو می گوید ؟

aakh1361
شنبه 30 مهر 1384, 02:16 صبح
از اقای anubis_ir ممنون کتاب جالب و مفیدی بود

Pars Giga
شنبه 30 مهر 1384, 07:39 صبح
کرنلی که خودم نوشتم

آقای aakh1361 تو رو هر کسی که دوست داری کمکم کن

aakh1361
یک شنبه 01 آبان 1384, 02:28 صبح
اولا اگر برات امکان داره کرنلی که نوشتی رو اپلود کن تا ببینم چیه ؟
دوما منظور از باز کردن کرنل رو نفهمیدم :متعجب:
اگر امکان داره کامل توضیح بدبد

Pars Giga
یک شنبه 01 آبان 1384, 08:15 صبح
سلام

من برنامه بوت سکتور را با اسمبلی نوشتم
1-اگه می شه بگید این بوت سکتور چه کارهایی باید یکنه(مثلا سوئچ به حالت حفاضت شده و ...)
2-این برنامه فقط512 بایت است پس به برنامه ای دیگر احتیاج داریم تا سیستم را کنترل کند.(کرنل)خوب چطوری
از فلاپی اجراش کنم؟


بزارید بهتر یگم
یک سیستم عامل چند قسمت داره و هر قسمتی بهتره با چه زبونی نوشته بشود و وضیفه اش چیست؟

مرسی

aakh1361
سه شنبه 03 آبان 1384, 22:15 عصر
1-اگه می شه بگید این بوت سکتور چه کارهایی باید یکنه(مثلا سوئچ به حالت حفاضت شده و ...)

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

1 : سویچ به حالت محافظ شده
2 : شناسای ساختار فایل
3 : لود کردن کرنل از روی فلاپی به روی حافظ
4 : پرش به ابتدای برنامه کرنل در حفظه

البته مورد یک به سیستم عامل شما بر می گردد که قرار است 16 بیتی یا 32 بیتی باشد که اگر 16 بیتی باشد مورد یک نیاز نیست

مورد دوم هم شما برای لود کردن کرنل باید برنامه ای (به صورت تابعی در داخل بوت سکتور)بنویسد که ساختار فایل فلاپی شما (که فکر کنم FAT 12 باشه ) را شناسای کند تا بتوانید کرنل خود را (که در یک فایل ذخیره کرده اید )به حافظه لود کنید که اینکار مستلزم اشنا بودن با ساختار فایل ( الگوریتم ان ) و پیاده سازی (نوشتن کد )ان است

مورد سوم هم که شما باید جایی مشخصی در حافظه را برای کرنل مشخص کنید که معمولا در ابتدا یا انتها حافظه کرنل را لود می کنند

مورد چهارم و اخرین کاری که بوت سکتور انجام می دهد شما با یک پرش دور به محلی که کرنل در حافظه لود شده است پرش می کنید
مثلا
اگر به محیط 32 سویچ کرده بودیم


Jmp cs:0x00001000


که در محیط 32 بیتی سگمنت های ما به ساختمان داده ای اشاره می کننده که خاصیت و ادرس شروع ان سگمنت در ان هست
یعنی
CS در محیط 16 بیتی با CS در محیط 32 بیتی کاملا فرق دارد‌!!

و اگر قرار بود کرنل ما در محیط 16 بیتی کار کند



Jmp 0000:0x0100


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



یک سیستم عامل چند قسمت داره و هر قسمتی بهتره با چه زبونی نوشته بشود و وضیفه اش چیست؟

کتاب طراحی سیستم های عامل در این مورد کاملا توضیح داده
اگر شما این کتاب رو بخونید جواب بیشتر سوالاتتون در این کتاب پیدا می کنید