PDA

View Full Version : سوال: چگونگي ساخت يك سيستم عامل



sinashahab
پنج شنبه 12 دی 1387, 23:36 عصر
سلام
شايد احمقانه باشه :
من مي خواهم بدونم چگونه ميشه يك سيستم عامل مانند لينوكس ساخت ؟
بايد چه چيز هايي رو ياد بگيريم ؟
اگه چند تا pdf در مورد اموزش ساخت سيستم عامل بزاريد ممنون ميشم .

araelectronic@ymail.com
جمعه 13 دی 1387, 00:03 صبح
با سلام
دوست عزيز يه سري به كتابهاي سيستم عامل بزنيد تا اطلاعات كلي در مورد نحوه كار سيستم عاملها بدست بياريد

sinashahab
جمعه 13 دی 1387, 00:12 صبح
ميشه چند تا از بهتررينش رو بزاريد ؟
ممنون ميشم.

thelastphoenix
جمعه 13 دی 1387, 13:04 عصر
سلام دوست عزیز

اول باید کامل درباره خود سیستم عامل تحقیق کنی و دقیقا بدونی
چه کاری رو دوش سیستم عامی هست و چه چیزایی رو مدیریت می کنه این خیلی مهمه!!

درباره نرم افزار های مستقل از سیستم عامل که برای اجرا به سیستم عامل سرپا نیاز ندارن

باید شدیدا درباره برنامه نویسی سطح پایین اطلاعات جمع کنی که دقیقا ببینی برای هر
پردازشی در لایه سطح پاین و سیتم عامل چی میشه...

اگه بازم چیزی برات گنگ بود حتما بپرس..

موفق باشید

araelectronic@ymail.com
جمعه 13 دی 1387, 14:53 عصر
سيستم عامل : استالينگ
سيستم عامل : دكتر حقيقت
سيستم عامل : تننباوم

sinashahab
شنبه 14 دی 1387, 10:57 صبح
سلام
ميشه چند تا pdf از اطلاعات سيستم عامل و اموزش برنامه نويسي سطح پايين رو بزاره ؟

sinashahab
شنبه 14 دی 1387, 11:03 صبح
راستي من تونستم سيستم عامل رو به سه بخش تقيم كنم كه اگه حل بشه به پول مي رسيم .
1.ارتباط با سخت افزار
2.ساخت برنامه اي مانند وي بي
3.هسته ي اصلي سيستم برنامه ها را اجرا كنه

saeed410
شنبه 01 فروردین 1388, 02:26 صبح
دوست عزیز اگه میخای یه سیستم عامل بنویسی باید چیزای زیادی یاد داشته باشی ، در ضمن شما به تنهایی با نوشتن یه سیستم عامل نمی تونی به پول برسی، چون سیستم عاملهای زیادی وجود دارند که اولاً رایگانند و دوماً ساخته دست گروههایی هستند که بیشتر از 1000 نفر یا بیشتر با هم همکاری می کنن ، حالا شما چجوری میخایی با اینا رقابت کنی .
اگه میخایی واقعاً کار کنی و میخای بدونی که لینوکس چجوری کار میکنه اول از همه کتاب تاننباوم رو بخون ، توی این کتاب نسخه ای از سیستم عامل مینیکس آموزش داده میشه. در واقع اگه بخاییم دقیق بررسی کنمی تاریخچه لینوکس به مینیکس میرسه ، اونجایی که لینوس ترووالدز دانشجوی 21 ساله علوم کامپیوتر هلسینکی فنلاند داشت رو مینیکس کار می کرد. البته اینم بگم که لینوس همه کارا رو خوش به تنهایی انجام نداد . مثلاً از gcc استفاده کرد منظورم general compiler c هست که توسط ریچارد استالمن یکی از دانشمندان MIT که بعدا از اونجا دکترای افتخاری گرفت.
شمام به تنهایی نمی تونی این کارو بکنی . ولی می تونی کدهای لینوکس، مینیکس و سیستم عامل های دیگه رو بگیری و مطالعه کنی و اونا رو تغییر بدی.

pswin.pooya
سه شنبه 04 فروردین 1388, 23:41 عصر
بیخیال این چیزا شو. کتاب تتباوم رو بخون بعد برو سراغ سایتهای زیر:

osdever.org
osdev.org

یادت باشه که اولین قدم نوشتن بوت سکتور هستش. پس اول از همه دنبال تاپیکهای مربوط به اون بگردش. و بعد در مورد pmode و دست آخر برو سراغ مسائل زمانبندی و ...

اگر دانشجوی آزاد تبریز باشی و یا توی تبریز دانشجو باشی میتونی با تیم طراحی os دانشگاه آزاد تبریز همکاری کنه. حداقل اونها یه قسمتهایی از راه رو رفتن و یه چیزهای بلندن ( از گروه کامپیوتر سراغشون رو بگیر)

Sundown
پنج شنبه 06 فروردین 1388, 20:26 عصر
اگه چند تا pdf در مورد اموزش ساخت سيستم عامل بزاريد ممنون ميشم .

بخشید ولی ...
ولی باید بگم با چند تا PDF امکان نداره بتونی سیستم عامل حتی Single Task یا حتی یه سیستم عامل که فقط خودت کاربرش باشی درست کنی
راستش نمیخوام نا امیدت کنم ولی واقعا کار دشواری هست
ابزار هایی که برای ساخت یک سیستم عامل لازمه :

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


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

اما پیشنهاد من به شما دوست عزیز :
کد سیستم عامل لینوکس یا Unix رو گیر بیار و هرجا که ایده جدیدی داری تغییر بده

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

pswin.pooya
جمعه 07 فروردین 1388, 19:12 عصر
سلام
خیلی راحت میتونی یه سیستم عامل 16 بیتی تک برنامه ای مثل MS-DOS بنویسی برای اینکار فقط باید دانش ساخت سیستم بوت که pdfهاش پره . و نحوه کنترل دیسک که با وقفه های بایوس خیلی راحت انجام میشه و اطلاعاتی در مورد نحوه اجرای برنامه ها، نحوه ساخت وقفه ها و سیستم فایلها داشته باشی (من برای شروع کار fat 16 رو پیشنهاد می کنم). اما اگر بخوای یه سیستم عامل 32 و یا 64 بیتی بنویسی کار خیلی خیلی پچیده میشه.
من کتاب راهنمای PC پیتر نورتون و کتاب اسمبلی سالخورده رو پیشنهاد میکنم. همینطور میتونی روی نت اطاعاتی در مورد نحوه کامپایل برنامه های سی و سی++ برای نوشتن سیستم عامل پیدا کنی که خیلی به دردت میخوره. عملا توی دانشگاه ما یه os 16 بیتی طراحی شده بود که به خاطر اینکه بیشتر شبیه یه برنامه بود تا os واقعی و چیز خاصی رو از نظر مفاهیم طراحی حمل نمی کرده خیلی سریع دور انداخته شد. یعنی حتی الان کدش هم نیست. به اون سایتهایی که گفتم هم سر بزن به دردت می خوره. قدیما یه سایت فارسی هم بودش که واقعا کارش خوب بود. حداقل تا این سطحی که شما میخوایین راهنمایی می کردش.

fazlnet
سه شنبه 11 فروردین 1388, 07:48 صبح
باسلام
pswin جان حال شما؟
ببین دوست عزیز اگه واقعا میخوای سیستم عامل بنویسی به دو چیز نیاز داری:
1.شهامت
2.دانش
در مورد اولی باید خودت با خودت کنار بیای و متوجه بش که کی باید شروع به کد نویسی کنی و همه ما برای بار اول از این موضوع ترس داریم.
در مورد دومی یکدفه 200 pdf دانلود نکن که همه رو با هم بخونی و بعدش علی یارت.نه داداش اینتوری نیست. اولین قدم در این زمینه صبر و استقامته.برای شروع هر چی مقاله و به طور کلی مطلب در مورد ساختار سیستم(نه سیستم عامل) هست بخون.دلیلش اینه که من باید بدونم که آدرس چیه تا آدرس بدم.
مثل اینه که تو ماشین نشته باشی و میخوای رانندگی کن اما نمیدونی دنده کجاست و اصلا واسه چیه.
از حرفم ناراحت نشی.منم اینو میدونم که حداقل آشنایی با کامپیوتر رو داریم اما مرور باید کرد.
بعد از پایان این مرحله به صورت موازی برنامه نویسی اسمبلی و سی رو یاد بگیر و در کنار اینها روی بوت سکتور و اینتراپها کار کن.
اینم بگم یه شبه نمی تونیos 64 بیت درست کنی.
صبور و جسور باش.
راستی pswin شمارم رو برات میفرستم اگه تونستی یه زنگی بزن بینم چی کار میکنی ازت خبری نیست.

puacmparand
پنج شنبه 20 فروردین 1388, 18:54 عصر
سلام دوستان ببخشید یک سوال فنی داشتم راستش من نحوه یک برنامه که بدون سیستم عامل اجرابشه رو اشنایی دارم میخواستم ببینم اگر بخوام روی سی دی این کار رو انجام بدم چجوری هست . یعنی اینکه باید روی کدوم سکتور کدام سیلندر این برنامه قرار بگیره . متشکرم سهرابی

linux
یک شنبه 20 اردیبهشت 1388, 10:11 صبح
دوست عزیز اگه میخای یه سیستم عامل بنویسی باید چیزای زیادی یاد داشته باشی ، در ضمن شما به تنهایی با نوشتن یه سیستم عامل نمی تونی به پول برسی، چون سیستم عاملهای زیادی وجود دارند که اولاً رایگانند و دوماً ساخته دست گروههایی هستند که بیشتر از 1000 نفر یا بیشتر با هم همکاری می کنن ، حالا شما چجوری میخایی با اینا رقابت کنی .
اگه میخایی واقعاً کار کنی و میخای بدونی که لینوکس چجوری کار میکنه اول از همه کتاب تاننباوم رو بخون ، توی این کتاب نسخه ای از سیستم عامل مینیکس آموزش داده میشه. در واقع اگه بخاییم دقیق بررسی کنمی تاریخچه لینوکس به مینیکس میرسه ، اونجایی که لینوس ترووالدز دانشجوی 21 ساله علوم کامپیوتر هلسینکی فنلاند داشت رو مینیکس کار می کرد. البته اینم بگم که لینوس همه کارا رو خوش به تنهایی انجام نداد . مثلاً از gcc استفاده کرد منظورم general compiler c هست که توسط ریچارد استالمن یکی از دانشمندان MIT که بعدا از اونجا دکترای افتخاری گرفت.
شمام به تنهایی نمی تونی این کارو بکنی . ولی می تونی کدهای لینوکس، مینیکس و سیستم عامل های دیگه رو بگیری و مطالعه کنی و اونا رو تغییر بدی.
gcc مخفف gnu c compiler هست.

مهدی حاجی
چهارشنبه 13 خرداد 1388, 05:06 صبح
سلام
خسته شدم
کی می تونه الگوریتم های مدیریت حافظه lru.optimalرو شبیه سازی کنه
هر کی میتونه راهنماییم کنه ممنون میشم
M_hajaghaei@yahoo.com

dannydolph
سه شنبه 30 تیر 1388, 08:53 صبح
سلام دوستان.
من هم یه این بحث علاقه مند شدم.می خواستم بدونم جاوا هم در این زمینه میتونه با c رقابت کنه یا نه.
بهتر بگم: آیا جاوا هم برای نوشتن سیستم عمل میتونه کارایی داشته باشه؟

omid_safari
جمعه 02 مرداد 1388, 00:51 صبح
من متوجه نشدم چطور با نوشتن سييستم عامل ميخواي به پول برسي!
برفرض كه شما كلي وقت گذاشتي و هزينه كردي و سيستم عامل نوشتي.
اونوقت تازه شروع كاره و برنامه نويسان بايد شروع كنند و براي سيستم عامل شما نرم افزار بسازند.و
اونهم نه يكي دوتا- روي كامپيوتر خودشما فقط الان حداقل 100 تا نرم افزار هست!
جالب اينجاست كه اين برنامه نويسان براي نوشتن نرم افزارهاشون به كمپايلر سيستم عامل شما نياز دارند كه اونهم يه كار بسيار عظيمي هست!
پس ...:چشمک: :عصبانی++:

omid_safari
جمعه 02 مرداد 1388, 00:57 صبح
اگه ميخواي به پول برسي بهتره يه بازي آنلاين بسازي(مثل من) (http://barnamenevis.org/forum/showthread.php?t=169041)
اتفاقا من دست تنها هم هستم.:لبخندساده:

m..r..h
شنبه 10 مرداد 1388, 00:33 صبح
سلام بچه ها . شرمنده با فرقون وارد بحث می شم ، می خواستم بدونم میشه یه سیستم عامل یا چیزی شبیه به ان برای یک سیستم 8 بیتی طراحی نمود که حداقل بتونه با کارت های حافظه و ... ارتباط برقرار کنه ؟
ممنون .

pswin.pooya
یک شنبه 11 مرداد 1388, 11:57 صبح
چرا نشه؟ خیلی راحت میشه ساختش. یکسرس سیستم های عامل هستن که برای میکروهای خاص نوشته شده اند.

m..r..h
دوشنبه 12 مرداد 1388, 23:13 عصر
چرا نشه؟ خیلی راحت میشه ساختش. یکسرس سیستم های عامل هستن که برای میکروهای خاص نوشته شده اند.
میشه چند تا از ان ها را معرفی کنید و یک توضیح مختصر هم در موردشون بدید ؟
خیلی ممنون

asm.coder
پنج شنبه 15 مرداد 1388, 12:46 عصر
سیستم برنامه نویسی برای اینا یه مقدار ساده تره . البته بستگی داره که دستگاهی که قراره براش برنامه نویسی بشه چی باشه. یا نوع این پروسسورتون (chip8/schip8/z8 ???)
اکثر دستگاه های بازی قدیمی (gameboy,comodore,atari) هم از پروسسورهای ۸بیتی استفاده می کنند . معروفترین سیستم عامل هم برای comodore هست به نام geos

nsco_nsco
پنج شنبه 29 مهر 1389, 02:36 صبح
سلام به همه دوستان
من کم پیام می زارم و بیشتر شاگردی می کنم اما می خوام امروز در مورد برنامه نویسی صحبت کنم مایک شعار داریم می گیمم مسائل را آسان بگیر تا اسان حل شود
خوب من چندین ساله که دارم روی زمینه های برنامه نویسی میکروه ها و کلا هوشمند سازی وسایل و برنامه نویسی کامپیوتر فعالیت می کنم و باید بگم که شما می توانید به راحتی با سیستم های ورود و خروج سیستم ارتباط بر قرار کنید در اصل می توانید زمانی که با ورودی و خروجی کامپیوتر ارتباط بر قرار کنید آن زمان می توانید تازه به سر شروع کردن برای سیستم عامل رفت البته نظر من اینه که باید به جای ساخت یک سیستم عامل قدر مثل ویندوز و لینوکس باید یک هسته ساخت و یک برنامه ای که با بوت بالا بیاد و بعد از خواندن اون برنامه شروع به فعالیت کنه این طور خیلی ساده تر میشه که با کامپیوتر ارتباط بر قرار کرد در ضمن برای اون دوستمون که 8 بیت می خواست باید بگم که می تونه با مطالعه خوروجی و ورودی ها شروع کنه العان سیستم های عاملی که ساخته شده بیشتر از اینکه بخواد راحتی بیاره اومده یک مشت مسائل را پیچیده کرده و مثلا برای برنامه نویسی باید حتما برنامه نویسی بلد باشید حال اگر سیستمی بشه درست کرد که بیاد و راحت روی خود یک سیستم برنامه نویسی داشته باشه به راحتی بتوان یک برنامه نویس مبتدی اقدام به برنامه نویسی کنه و البته شکل و ظاهر رو بتوان عوض بکنه اینده خوبی در انتظار این سیستم هست البته شاید بگید لینوکس به نظر خیلی ها سیستم عامل خوبی نیست البته باید یک راحی هم ساخت برای درایورهای سیستم که بشه ازشون استفاده کرد ببخشید اگر پر حرفی کردم.:لبخند:

ehsan_1990
پنج شنبه 29 مهر 1389, 21:44 عصر
این هم یه لینک درباره ساخت سیستم عامل
http://www.codeproject.com/KB/cs/CosmosMS5.aspx
امیدوارم مفید باشه

m.j_banitaba
جمعه 18 اسفند 1391, 21:19 عصر
سلام .
من یک سری کد در مورد سیستم عامل نوشتم.
یه سری به وبلاگ من بزنید نظر بدید!
http://oscreator.blogfa.com/