تالار گفتمان مانشت
طراحی یک سیستم عامل (از صفر) - نسخه‌ی قابل چاپ

طراحی یک سیستم عامل (از صفر) - sina4everafter - 24 تیر ۱۳۹۲ ۰۹:۴۶ ب.ظ

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

RE: طراحی یک سیستم عامل (از صفر) - k_111 - 24 تیر ۱۳۹۲ ۱۰:۴۱ ب.ظ

اول اینکه فکر کنم شما تازه کار (کمتر از ۲ سال) هست که تو این کار هستید و هنوز سیستم عامل رو پاس نکردید و برنامه بزرگ درست و حسابی هم ندیدید(البته من هم هنوز ندیدم ولی شنیدم) و با فرایند های ساخت و مدیریت پروژه برنامه های بزرگ آشنایی ندارید که خوب، نشون دهنده اینه که یا نرم افزار پاس نکردید یا اگر پاس کردید استاد این مطالب رو به شما یاد نداده

این برنامه نویسی که شما الان یاد گرفتی مثل بنایی تو ساختمان سازی میمونه(البته توهین نیست) به بنا میگن که بیا این دیوار رو بچین دیگه نمیتونه بیاد یه برجی رو که هزاران مهندس باید بشینن محاسبه کنند رو بسازه(طول میکشه تا تجربه کسب کنی و یواش یواش بشی اون مهندسه)

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

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

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

اما حرف دیگه اینه که سیستم عامل محدود به سیستم عامل کامپیوتر نیست
سیستم عامل هر برنامه ای هست که با سخت افزار کار میکنه مثل برنامه ای که ماشین های لباسشویی اتوماتیک، موبایل ها، تلویزیون، کامپیوتر ماشین و هر دستگاه الکترو نیکی دیجیتال دیگه ای داره
برنامه ای که برای ربات ها نوشته میشه سیستم عامل اون هست چون مثلا به ربات گفته میشه که بره به اون اتاق، این که سرعتش چقدر باشه و جزئیات حرکتش دیگه به سیستم عامل اون مربوط میشه

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

RE: طراحی یک سیستم عامل (از صفر) - aatwo - 25 تیر ۱۳۹۲ ۰۱:۳۴ ق.ظ

(۲۴ تیر ۱۳۹۲ ۰۹:۴۶ ب.ظ)sina4everafter نوشته شده توسط:  سلام دوستان.من جدیدا با این سایت آشنا شدم و همچنین خودم هم جدیدا شروع به برنامه نویسی کردم.البته نمی دونم سوالمو جای خوبی می پرسم یا نه ؟! ولی خیلی کنجکاو شدم و می خوام دربارش بدونم.
شنیدم که سخت ترین کار توی برنامه نویسی طراحی یک سیستم عامل هست.انگار تو دنیا فقط یه سری از آدم ها می تونن این کار و بکنن ، و از یه طرف هم شنیدم که این کار خیلی پر هزینه هست.
نمی دونم فکر کردن به این کار عاقلانه ست یا نه، ولی از وقتی که شروع به برنامه نویسی کردم تا الان ، (که خیلی هم نگذشته) همیشه توی این فکرم و سعی می کنم که از اطرافیانم توی دانشگاه و سایر کسانی که دارن به طور جدی برنامه نویسی می خونن یه سر و گردن بالاتر باشم. منطورم اینه که انگیزه خیلی زیادی برای این کار دارم و روزی حداقل ۷ ساعت دارم برنامه نویسی تمرین می کنم(کد میزنم).
(البته می دونم برای حرفه ای شدن خیلی بیشتر از این ها باید تلاش کرد.).(سعیم بر اینه که ساعت مطالعه رو بالاتر ببرم)
اما چند جا در مورده این موضوع تحقیق کردم و یه جورایی مفهوم حرف های همه سایتا اینه که این کار غیر ممکنه.تا الان نا امید نشدم و می دونم غیر ممکن غیر ممکنه.ولی خب می خوام واقع بین باشم،بدونم در آینده چی در انتطارمه.
هدفم از این تاپیک اینه که دوستانی که اطلاعاتی در این زمینه دارن بیان و نظراتشون و بیان کنن تا یه کم بنده با این هدفم بیشتر آشنا بشم.
ممنون از همه.Heart

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

طراحی یک سیستم عامل (از صفر) - sina4everafter - 25 تیر ۱۳۹۲ ۰۸:۱۹ ق.ظ

(۲۵ تیر ۱۳۹۲ ۰۱:۳۴ ق.ظ)aatwo نوشته شده توسط:  
(24 تیر ۱۳۹۲ ۰۹:۴۶ ب.ظ)sina4everafter نوشته شده توسط:  سلام دوستان.من جدیدا با این سایت آشنا شدم و همچنین خودم هم جدیدا شروع به برنامه نویسی کردم.البته نمی دونم سوالمو جای خوبی می پرسم یا نه ؟! ولی خیلی کنجکاو شدم و می خوام دربارش بدونم.
شنیدم که سخت ترین کار توی برنامه نویسی طراحی یک سیستم عامل هست.انگار تو دنیا فقط یه سری از آدم ها می تونن این کار و بکنن ، و از یه طرف هم شنیدم که این کار خیلی پر هزینه هست.
نمی دونم فکر کردن به این کار عاقلانه ست یا نه، ولی از وقتی که شروع به برنامه نویسی کردم تا الان ، (که خیلی هم نگذشته) همیشه توی این فکرم و سعی می کنم که از اطرافیانم توی دانشگاه و سایر کسانی که دارن به طور جدی برنامه نویسی می خونن یه سر و گردن بالاتر باشم. منطورم اینه که انگیزه خیلی زیادی برای این کار دارم و روزی حداقل ۷ ساعت دارم برنامه نویسی تمرین می کنم(کد میزنم).
(البته می دونم برای حرفه ای شدن خیلی بیشتر از این ها باید تلاش کرد.).(سعیم بر اینه که ساعت مطالعه رو بالاتر ببرم)
اما چند جا در مورده این موضوع تحقیق کردم و یه جورایی مفهوم حرف های همه سایتا اینه که این کار غیر ممکنه.تا الان نا امید نشدم و می دونم غیر ممکن غیر ممکنه.ولی خب می خوام واقع بین باشم،بدونم در آینده چی در انتطارمه.
هدفم از این تاپیک اینه که دوستانی که اطلاعاتی در این زمینه دارن بیان و نظراتشون و بیان کنن تا یه کم بنده با این هدفم بیشتر آشنا بشم.
ممنون از همه.Heart

تو این زمونه این کار لااقل برای یک نفر عاقلانه نیست اگه از دیده تجاری بخواهی نگاه کنی
میشه بگید تخصصتون تو چه زبانی هست؟
سلام.اول تشکر می کنم از دوستان برای اطلاع رسانی های خوب.
دوست عزیز همانطور که گفتم تازه کارم ، ولی دارم روی سی پلاس پلاس (++C)کار می کنم.

طراحی یک سیستم عامل (از صفر) - m450ud - 25 تیر ۱۳۹۲ ۰۳:۰۱ ب.ظ

هر چی بخوای تو
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
پیدا میکنی
از کامپایلر و کتابخانه گرفته تا وقفه و ...

RE: طراحی یک سیستم عامل (از صفر) - x86 - 26 تیر ۱۳۹۲ ۰۴:۱۸ ق.ظ

یک زمانی آرزومون ساخت سیستم عامل بود... یعنی تازه میفهمم که واقعا داغ بودم... تا یه جاهایی هم رفتم.... با
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
شروع کردم و تقریبا یکی دو قسمت از مرحله ی دو یعنی نوشتن kernel هم پیش رفتم . مرحله ی یکش که ساخت Bootloader بود و به خوبی و خوشی هم تمام شد... دو قسمت از کل این سری رو هم ترجمه کردم که میتونی
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
ببینی ولی دیگه بیخیالش شدم . البته اون علاقه هِ هنوز هست ولی به نظر میاد کارهای مهمتری وجود دارن که میشه انجام داد... به قول دوستان چرا ما همیشه سعی میکنیم چرخ رو دوباره اختراع کنیم؟؟؟؟

طراحی یک سیستم عامل (از صفر) - juyaye danesh - 31 تیر ۱۳۹۲ ۰۶:۲۴ ق.ظ


البته اختراع دوباره چرخ اشتباهه، اما دانستن نحوه پیاده سازیش لازمه.
برای نوشتن هر چیزی باید ابتدا نیازها بررسی بشه....
میشه مطالب و دروس مختلف را دونست و بعد به صورت ترکیبی از اونها استفاده کرد..

طراحی یک سیستم عامل (از صفر) - Nima Masghadi - 31 تیر ۱۳۹۲ ۱۱:۱۶ ق.ظ

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

طراحی یک سیستم عامل (از صفر) - yasemi - 31 تیر ۱۳۹۲ ۱۱:۲۳ ق.ظ

سیستم عاملی مثل ۷ بیشتر از ۷۰ میلیون خط کد داره نوشتن یه OS کار هر کسی نیست

RE: طراحی یک سیستم عامل (از صفر) - baran - 31 تیر ۱۳۹۲ ۱۰:۵۰ ب.ظ

می تونید از سیستم عامل های سبک متن باز شروع کنید. مثلا سیستم عامل های سیستم های نهفته (embedded) و سیستمهای بی درنگ، سیستم عامل های سبکی هستن.

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

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

طراحی یک سیستم عامل (از صفر) - انرژی مثبت - ۰۱ مرداد ۱۳۹۲ ۱۲:۰۶ ب.ظ

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

RE: طراحی یک سیستم عامل (از صفر) - amir11205 - 14 شهریور ۱۳۹۲ ۰۸:۵۴ ب.ظ

سلام
پیاده سازی سیستم در حد یک هسته ساده سیستم عامل شاید تقریبا شدنی باشه
اما پیاده سازی و ساخت یک سیستم عامل مثل ویندوز الکی نیس. نمیگم شدنی نیس. شدنیه اما به شرطها و شروطها
اولا اینکه شرکتهای متنوعی برای ساخت قطعات کامپیوتری مثل کارت گرافیک و کلا دستگاه های I/O وجود داره که این شرکتا هیچوقت نمیان برای سیستم عامل هایی مثل چیزی که شما مدنظرتونه درایور بزنن. یه زمانی بحث بود میخوان تو ایران چند دانشگاه مهم کشور بشینن سیستم عامل بومی بزنن. یعنی یک سیستم عاملو میخواستن از صفر بسازن. دیدن بله این مشکل درایورا و خیلی چیزای دیگه الکی نیس. رفتن سمت سیستم عامل ملی که در واقع فرقش با بومی هم تو کلمه های بومی و ملیه Big Grin هم دیگه اینکه این ملیه یه نگارش از لینوکسه که فقط پوستشو میخواستن فارسی کننو از این حرفا و تا یه جاهایی هم پیش رفتن
ثانبا برای همین ویندوز کلی آدم نشستون دارن طراحی میکننو ایده میزارنو کد میزننو و مهمتر از همه پول دستشونهههه
به نظر من به قول همین دوستمون که اینجا کامنت داده بیخیال پیاده سازی شو و برو تو کاره ایده های جدید دادن البته اگه داری و میبینی تو سیستم عامل های جدید یه ضعفه

RE: طراحی یک سیستم عامل (از صفر) - nahalmomen2007@yahoo.com - 06 بهمن ۱۳۹۹ ۱۲:۵۳ ب.ظ

سلام من میخواهم یک سیستم عامل بسازم
میشه یکی به من کمک کنه و با هم این را بسازیم