PDA

View Full Version : سوال: سیستم عامل بسیار ساده



voiceoffox
شنبه 22 آبان 1389, 15:19 عصر
سلام و درود به همه شما عزیزان! :تشویق:
من اکثر مطالب موجود در این تالار رو درباره ساختن سیستم عامل خوندم.:متفکر:
اما یک اشکال کلی تو همه اونا هست و اینکه همه می خوان یه چیزی بسازن که بیاد تو بازار جهانی و لینوکس و 7 و... رو قورت بده و بعد هم حتما امتیاز ساختشو به ماکروسافت بفروشن و از بیلگیتس هم پولدار تر شن !!! :قهقهه:
البته اشتپ نکنین ها ! قصدم توهین نیست ولی یه نمه زیادی سخته ، نه ؟! :گیج:
حالا ازین حرفا که بگذریم ، شما ها کتابی خیلی ساده در مورد ساختن یک سیستم عامل ساده که حتی بدرد خودم هم نخوره (!) و فقط جنبه یادگیری داشته باشه سراغ دارین ؟
مثلا فرض کنید که من میخوام به سیستم عاملی بسازم که توش همچین امکاناتی داشته باشه :
-یک ماشین حساب ساده
-توانایی خاموش کردن و... کامپیوتر
-یک سری خرت و پرت اضافی
-و...
حالا من از شما عزیزی که استاد من هستی و این مطلبو میخونی کمک میخوام !:افسرده:
از کجا شروع کنم؟
چیکار کنم؟
:عصبانی:

voiceoffox
شنبه 22 آبان 1389, 15:21 عصر
فقط یه چیزدیگه ! :چشمک:
اگه کار سختیه یا اگه نمی تونم یا فکر می کنید در حدش نیستم بهم بگین برم دنبال کارم !:گریه:

pswin.pooya
شنبه 22 آبان 1389, 17:48 عصر
مثلا فرض کنید که من میخوام به سیستم عاملی بسازم که توش همچین امکاناتی داشته باشه :
-یک ماشین حساب ساده
-توانایی خاموش کردن و... کامپیوتر
-یک سری خرت و پرت اضافی

تعریف سیستم عامل رو می دونی؟


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

فکر خوبیه. اما خواستن توانستن است.


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

چه تظمینی هست که این اتفاق نیفته. روزی روزگاری linux trovalds هم یه دانشجو بود و فکرش رو نمی کرد سیستم عامل که صرف تفریح میسازه به این مرحله برسه!

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

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



البته اشتپ نکنین ها ! قصدم توهین نیست ولی یه نمه زیادی سخته ، نه ؟! :گیج:
اگر آسون بود که با برنامه نویسی C# و دیتا بانک فرقی نمی کرد و به همون اندازه بی ارزش میشد. خوبی کار اینه که زمانی انجامش میدی میدونی که حتی تعداد افرادی که جرات اینکار رو پیدا میکنن کمه چه برسه که اون رو انجام داده باشن و یا حتی جرات نوشتن اولین خطهای کد رو داشته باشن. من خودم یادمه که از بچگی میخواستم سیستم عامل خودم رو داشته باشم و کم کم هم دارم موفق میشم الان بعد از 2.5 سال دیگه میدونم که میتونم به صورت 100 درصد یک OS واقعی (هر چند ابتدایی ) رو بسازم.

voiceoffox
شنبه 22 آبان 1389, 20:30 عصر
ممنون از راهنماییتون و ببخشید که یکم لحنم تند بود ! :اشتباه:
در مورد سوال اول:
میدونم تعریف سیستم عامل چیه ! منظورم ازون حرف اینه که یک جور سیستم عامل مستقل خیلی ساده باشه بی نیاز به هیچ سیستم عامل دیگه ای ! ولی مث اینکه منظورم رو بد توضیح دادم ! :اشتباه:

حرف شما رو هم در مورد سیستم عامل ها ونقص ها و.. قبول دارم اما نمی شه یکشبه ره صد ساله را پیمود و حتی خود شما میگی بعد 3 سال ؟!! :گریه: و البته روی صحبتم با کسایی نیست که صرف تفریح و یادگیری وارد این کار میشن !

در آخر ضمن عذر خواهی دوباره ، می خوام بدونم منبعی چیزی میزی خیلی ساده سراغ دارین که جامع باشه ؟! و بشه به عنوان شروع ازش استفاده کرد ؟ :متفکر:

یه نکته کوچیک دیگه : اگه میشه یکم بیشتر در مورد سیستم عامل و ویژگی هایی که باید داشته باشه بهم توضیح بدین ؟ :گیج: آخه خیلی زیاد تو این زمینه اطلاعات ندارم !!!:گریه:

خواهش می کنم کمکم کنید !!! :عصبانی:

pswin.pooya
شنبه 22 آبان 1389, 23:40 عصر
سلام

شما اول از همه کتاب تتباوم رو بدون خوندن بخشهای minix بخونین و بعد دوباره کتاب رو از اول با اون بخشها بخونید. بعد از اینکه مفاهیم رو کامل یاد گرفتید میتونید برید سراغ منابع زیر و سیستم عامل خودتون رو بنویسید:

۱. ویکی OSDev:‌‌ htt;://wiki.osdev.org
2. فروم osdev:‌‌ http://forum.osdev.org
3. http://www.osdev.net

تو قسمت ویکی یک صفحه به نام Resource هست که منابع آموزشی رو برحسب موضوع دسته بندی کرده.

این راه خیلی سختی هستش و امکان داره ماه ها نتیجه نگیرید. برای اینکه نتیجه بهتری بگیرید بهتره که قبل از هر اقدامی با لینوکس و به خصوص هسته (کرنل) اون آشنایی کامل پیدا کنید.

به غیر از مفاهیم باید به طور کامل با معماری و دستگاه های جانبی پلتفرمی که می خواهید سیستم عامل رو براش بسازید آشنایی داشته باشید. برای x86 میتونید کتابهای زیر رو مطالعه کنید که میتونن یه دید اولیه خوب به شما بدن اما برای پیاده سازی نهایی خیلی از موارد کامل نیستد و باید مستندات سازنده رو بخونید:



کتاب مدارهای واسط دکتر قدرت سپید نام
کتاب اصول و راه اندازی دستگاهای جانبی توسط کامپیوتر، نوشته مهندس نفیسه صابری از انتشارات نس.

همینطور برای نوشتن یک سیستم عامل واقعی باید Bash لینوکس، GCC و nasm رو فول باشید تا توی پیاده سازی به مشکل برخورد نکنید.

هیج کتاب کاملی برای نوشتن از صفر و پایه وجود نداره و همه به شکلی ناقص هستند فقط یه کتاب هست که رو پیاده سازی تکیه داره و اون هم شیوه شگفت انگیزی گنگ هستش. کتاب Understanding Linux Kernel میتونه در پیاده سازی کمک زیادی بهتون بکنه (یه دید کلی به نحوه پیاده سازی و استفاده لینوکس از ابزارهای جانبی و پردازنده داره)

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

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

voiceoffox
یک شنبه 23 آبان 1389, 18:39 عصر
ممنون !!! :تشویق:

ramezani.saleh
دوشنبه 26 اردیبهشت 1390, 14:41 عصر
من با Cosmos (http://www.gocosmos.org) خیلی حال می کنم میتونی به راحتی با c# سیستم عامل بنویسی

pswin.pooya
دوشنبه 26 اردیبهشت 1390, 19:58 عصر
من با Cosmos (http://www.gocosmos.org/) خیلی حال می کنم میتونی به راحتی با c# سیستم عامل بنویسی
چه ربطي به اين بحث داشت؟ تعداد اين نوع سيستم عاملها كم نيست و جالبم اينه كه هيچ كدوم تا حالا موفق نشدن و از اونم جالبتر اينه كه از C++ و اسمبلي براي قسمتهاي اصلي استفاده ميكنن

ساختن سيستم عامل حتي با C و يا C++ هم كلي دردسر داره و كلي استاندارد و ... رو بايد از اين دو تا زبون يادبگيري كه تقريبا تو هيچ كتابي نيست چه برسه يه CIL مثل دات نت فريم ورك رو كه نه منطق درست داره و نه داكيومنت درست و حسابي رو پورت كني.