View Full Version : اولین قدم در نوشتن OS
pegetive_2010
جمعه 07 اسفند 1388, 13:37 عصر
سلام.من یه مبتدی ام که تازه خیلی کم از اسمبلی میدونه.میخواستم بدونم همین طور که دارم اسمبلی رو یاد میگیرم باید از کجا شروع کنم تا بتوونم یه mini os بنویسم که بتوونه چند تا command ویندوز رو اجرا کنه؟؟؟از کجا شروع کنم؟؟؟
مرسی
tdkhakpur
جمعه 07 اسفند 1388, 16:28 عصر
اگر os میسازید چه کاری با ویندوز دارید؟
بهتر نحوه ساختن بوت کننده و نصب آن در بوت سکتور را یاد بگیرید بعد شروع به نوشتن برنامه اصلی کنید.
Developer Programmer
شنبه 08 اسفند 1388, 13:23 عصر
سلام.من یه مبتدی ام که تازه خیلی کم از اسمبلی میدونه.میخواستم بدونم همین طور که دارم اسمبلی رو یاد میگیرم باید از کجا شروع کنم تا بتوونم یه mini os بنویسم که بتوونه چند تا command ویندوز رو اجرا کنه؟؟؟از کجا شروع کنم؟؟؟
نوشتن سیستم عامل، کار راحتی نیست. برای نوشتن سیستم عامل باید عملکرد کلیه پورتها و درایورها رو مدیریت کنین. اینتراپتها رو در اختیار داشته باشین. حافظه رو مدیریت کنین و هزار تا مشکل ریز و درشت دیگه.
توصیه من به شما اینه که کتابهای مایکل تیشر رو بخرید و حسابی باهاش ور برین. مضافا بر این، هزاران سیستم عامل ریز و درشت Open Source در دنیای مجازی اینترنت موجوده. البته اگه بدونی واسه چی این خط ها رو نوشتن!
runlevelx
شنبه 08 اسفند 1388, 17:30 عصر
بررسی minix میتونه شروع خوبی باشه مخصوصا اینکه کتاب راهنمای فارسی هم داره
Arcsinos
سه شنبه 18 اسفند 1388, 11:06 صبح
منم بهتون توصیه میکنم که به بررسی minix 3 بپردازید و در ضمن فقط با برنامه نویسی هیچ وقت نمیشه یه سیستم عامل درست کرد شما باید تسلط کافی روی سخت افزار هم داشته باشی که در این ضمینه کتاب A+ رو به شما معرفی می کنم منم دارم تلاش میکن که یه OS بسازم ولی حیف که باید هم نرم افزار بلد باشی و هم سخت افزار و هم اینکه مخ ریاضی باشی .
pegetive_2010
سه شنبه 18 اسفند 1388, 21:12 عصر
این مربوط به پروژه ی اسمبلی هست...من هنوز os نخوندم...لطفا در اون سطح راهنمایی کنین
ممنونم
Exception
سه شنبه 18 اسفند 1388, 21:22 عصر
فکر کنم یه همچین چیزی بخوای: http://www.codeproject.com/KB/system/MakingOS.aspx
jalal_h14
چهارشنبه 01 اردیبهشت 1389, 12:59 عصر
سلام.من یه مبتدی ام که تازه خیلی کم از اسمبلی میدونه.میخواستم بدونم همین طور که دارم اسمبلی رو یاد میگیرم باید از کجا شروع کنم تا بتوونم یه mini os بنویسم که بتوونه چند تا command ویندوز رو اجرا کنه؟؟؟از کجا شروع کنم؟؟؟
مرسی
سلام . با تشکر از pegetiv که این بحث رو مطرح کردن . میخوام سوالشون رو بهتر بپرسم چون پروژه اسمبلی من هم هست (به احتمال 99.9 درصد هم کلاسیم ) :
چطور میشه یه برنامه رو از روی فلش یا هارد یا هر چیز دیگه ای روی رم load کرد ؟
یعنی یه loader ساده میخوام .
Delphi Coder
چهارشنبه 01 اردیبهشت 1389, 17:21 عصر
نه. شما loader نمی خواهید در حقیقت loader خود BIOS هست.
ببینید شروع کار خیلی ساده هست. شما وقتی اسمبلی رو تحت DOS یاد می گیرید طبیعتا نوشتن برنامه های COM رو بلد خواهید بود و میدونید که فایل COM هیچ گونه Header ای نداره و از اولین بایت شروع میشه به اجرا شدن و روی افست 100h بارگذاری میشه. حالا یه نگاه به فرایند بوت شدن سیستم میندازیم. لحظه ای که سیستم رو روشن می کنید یه سری کدهایی که در ROM BIOS هستن اجرا میشن و بعد از checking های سخت افزار زمانی که سیستم می خواد بوت بشه BIOS میاد اولین سکتور درایوی که باید از رو اون سیستم بوت بشه رو میخونه و در آدرس 0000:7c00 بار گذاری(load) میکنه و بعد به این آدرس Jump میکنه یعنی از این لحظه به بعد کنترل CPU و همه چی دست برنامه شماس پس یکی از مسائلی که باید مد نظر داشته باشید این هست که برنامه بوت سکتور شما از افست 7c00 میشینه نه از 100h و در ضمن توجه داشته باشید هر کاری اونجا بخواهید انجام بدین باید با وقفه های BIOS یا با دستورات port انجام بدین چون اونجا دیگه DOS ای وجود نداره که بخواهید از سرویسهاش استفاده کنید بنابراین وقفه 21 و چند تا وقفه دیگه ای که مال DOS هست رو بی خیال میشید. من اینجا یه پست دارم که فکر میکنم کمک خوبی براتون باشه.
این تاپیک رو ببینید:
http://barnamenevis.org/forum/showthread.php?t=87856
pegetive_2010
پنج شنبه 02 اردیبهشت 1389, 08:23 صبح
نه. شما loader نمی خواهید در حقیقت loader خود BIOS هست.
ببینید شروع کار خیلی ساده هست. شما وقتی اسمبلی رو تحت DOS یاد می گیرید طبیعتا نوشتن برنامه های COM رو بلد خواهید بود و میدونید که فایل COM هیچ گونه Header ای نداره و از اولین بایت شروع میشه به اجرا شدن و روی افست 100h بارگذاری میشه. حالا یه نگاه به فرایند بوت شدن سیستم میندازیم. لحظه ای که سیستم رو روشن می کنید یه سری کدهایی که در ROM BIOS هستن اجرا میشن و بعد از checking های سخت افزار زمانی که سیستم می خواد بوت بشه BIOS میاد اولین سکتور درایوی که باید از رو اون سیستم بوت بشه رو میخونه و در آدرس 0000:7c00 بار گذاری(load) میکنه و بعد به این آدرس Jump میکنه یعنی از این لحظه به بعد کنترل CPU و همه چی دست برنامه شماس پس یکی از مسائلی که باید مد نظر داشته باشید این هست که برنامه بوت سکتور شما از افست 7c00 میشینه نه از 100h و در ضمن توجه داشته باشید هر کاری اونجا بخواهید انجام بدین باید با وقفه های BIOS یا با دستورات port انجام بدین چون اونجا دیگه DOS ای وجود نداره که بخواهید از سرویسهاش استفاده کنید بنابراین وقفه 21 و چند تا وقفه دیگه ای که مال DOS هست رو بی خیال میشید. من اینجا یه پست دارم که فکر میکنم کمک خوبی براتون باشه.
این تاپیک رو ببینید:
http://barnamenevis.org/forum/showthread.php?t=87856
ممنونم از لینک تاپیکی که گذاشتین
کتاب PC Intern در این زمینه به ما کمک میکنه؟؟؟
Delphi Coder
دوشنبه 06 اردیبهشت 1389, 21:54 عصر
کتاب PC Intern برنامه نویسی سیستم رو تقریبا کامل با جزئیات توضیح داده قطعا میتونه کمکتون کنه. تنها ایرادش انه که یکم قدیمی هست.
blue_lotus
سه شنبه 07 اردیبهشت 1389, 10:45 صبح
چگونه یک سیستم عامل بنویسم (http://wiki.osdev.ir/index.php?title=%DA%86%DA%AF%D9%88%D9%86%D9%87_%DB %8C%DA%A9_%D8%B3%DB%8C%D8%B3%D8%AA%D9%85_%D8%B9%D8 %A7%D9%85%D9%84_%D8%A8%D9%86%D9%88%DB%8C%D8%B3%D9% 85) هر وقت به قدر کافی در هشت مرحله ای که گفته تسلط پیدا کردین میتونین اصولی بفهمین که کدهای minix و ... چکار کردن و اصولی بتونین یک سیستم عامل آموزشی برای خودتون و دیگران طراحی کنید.
jalal_h14
جمعه 17 اردیبهشت 1389, 13:08 عصر
چطور میشه یه فایل com رو در اولین سکتور فلش مموری یا هر چیز دیگه ای قرار داد؟
در ویندوز و دستورش در لینوکس ؟
pegetive_2010
پنج شنبه 23 اردیبهشت 1389, 15:23 عصر
الان اگه بخوام یه برنامه بنویسم که boot کنه فقط (روی فلش مموری یا فلاپی) باید چیکار کنم؟؟؟؟
از کجا باید شروع کنم تا بتوونم کد بزنم؟؟؟
ممنونم
Delphi Coder
جمعه 24 اردیبهشت 1389, 19:10 عصر
چطور میشه یه فایل com رو در اولین سکتور فلش مموری یا هر چیز دیگه ای قرار داد؟
در ویندوز و دستورش در لینوکس ؟
تاپیکی که قبلا براتون زدم رو یک بار دیگه ببینید. برنامه دوم همین کار رو میکنه.
http://barnamenevis.org/forum/showthread.php?t=87856
MMMYousefMMM
شنبه 25 اردیبهشت 1389, 12:29 عصر
فکر نمیکنم کسیکه این تاپیک را ایجاد نموده، اگر بخواهد در این زمینه(سیستم عامل) کاری انجام دهد به سرانجامی برسد چون مبحث بسیار سنگینی است و حتی دکتر پدرام که در ایران در این زمینه کارهایی انجام داده، متاسفانه با شکست رویرو شده است. به همین دلیل است که در درسی با عنوان سیستم عامل پیشرفته که جزء دروس فوق لیسانس کامپیوتر میباشد؛ بیشتر استادان بجای آن، سیستمهای توزیع شده را تدریس میکنند. البته قصد بنده از گفتن این سخنان نشان دادن میزان سنگینی مبحث میباشد.
pegetive_2010
شنبه 25 اردیبهشت 1389, 16:03 عصر
فکر نمیکنم کسیکه این تاپیک را ایجاد نموده، اگر بخواهد در این زمینه(سیستم عامل) کاری انجام دهد به سرانجامی برسد چون مبحث بسیار سنگینی است و حتی دکتر پدرام که در ایران در این زمینه کارهایی انجام داده، متاسفانه با شکست رویرو شده است. به همین دلیل است که در درسی با عنوان سیستم عامل پیشرفته که جزء دروس فوق لیسانس کامپیوتر میباشد؛ بیشتر استادان بجای آن، سیستمهای توزیع شده را تدریس میکنند. البته قصد بنده از گفتن این سخنان نشان دادن میزان سنگینی مبحث میباشد.
ما میخوام تووی درس اسمبلی ازش استفاده کنیم....نه درس OS!
من چطور میتوونم یه بووت لودر بنویسم؟؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.