نمایش نتایج 1 تا 10 از 10

نام تاپیک: توسعه سیستم عامل ، چگونه؟

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    بندرعباس
    سن
    28
    پست
    361

    توسعه سیستم عامل ، چگونه؟

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

  2. #2
    کاربر دائمی
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    بندرعباس
    سن
    28
    پست
    361

    نقل قول: توسعه سیستم عامل ، چگونه؟

    up post...

  3. #3

    نقل قول: توسعه سیستم عامل ، چگونه؟

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

    دانش هایی که برای ساخت یک سیستم عامل لازم هستن، این هاست :
    »»» شما باید دانش پایه کامپیوترت خوب باشه. باید درباره اعداد hexadecimal بدونی، درباره اعداد Binary بدونی، همچنان درباره منطق boolean، و همچنان دانش fundamental مثل ساختمان data توانایی ساخت الگوریتم. اینها مثال هایی هستن.

    »»» شما باید بتونید با زبان سطح پایین نزدیک به زبان ماشین یعنی زبان Assembly برنامه بنویسید. حتی اگر هم بخوای سیستم عاملت رو با یه زبان سطح بالا مثل ++C بنویسی، در برخی موارد شما مجبوری با زبان Assembly کارت رو انجام بدی.

    »»» شما حتما باید تجربه کار برنامه نویسی داشته باشی. یادت باشه اگه یه تازه وارد به دنیای برنامه نویسی هستی، انتخاب پروژه ای به نام "ساخت یک سیستم عامل"، ایده بسیار بدیه. چرا که برای انتخاب پروژه ای با این عنوان، شما باید از قبل، چندتا برنامه توسط همون زبان برنامه نویسی که میخوای باهاش سیستم عامل توسعه بدی، با موفقیت ساخته باشی. مثلا اگر میخوای کل سیستم عاملت رو با زبان ++C بنویسی، باید از قبل چندتا برنامه با این زبان نوشته باشی تا بتونی خودت رو واسه ساخت یک سیستم عامل اماده کنی دیگه درسته؟.

    »»» باید تجربه کار با سیستم عامل های UNIX و Linux رو داشته باشی. چون به هرحال باید کارهات رو روی یک سیستم عامل انجام بدی. مثلا استیو جابز و بیل گیتس، که سازندگان سیستم عامل های مک و ویندوز هستن، کارهاشون رو روی یه سیستم عامل به عنوان پشتیبان انجام دادن. مثل لینوکس و یونیکس. پس سعی کن با یکی از این دو سیستم عامل حتما کار کنی و تجربه کسب کنی. موضوع سر Kernel یا به فارسی هسته سیستم عامل هستش. چون به هرحال دو انتخاب وجود داره : اولی اینکه تو می تونی هسته لینوکس یا یونیکس رو ویرایش کنی برای سیستم عامل خودت که در اینصورت سیستم عامل شما میشه بر پایه هسته لینوکس یا یونیکس. دومین انتخاب ساخت یک هسته جداگانه هستش که اون بحث خودش رو داره.

    »»» باید با رفتارها و تکنیک های کامپایلر، اسمبلر، لینکر، که میخوای باهاشون کارکنی، بسیار اشنا باشی. باید ابزارها رو دم دست داشته باشی. هرچیزی که به دردت بخوره. مثلا NASM یک اسمبلر معروفه که هم در ویندوز میتونی باهاش کار کنی، هم در لینوکس. نرم افزارهای کامپایلر رو هم که خودت می شناسی دیگه. اما لینکر درواقع همون برنامه ایه که توسط کامپایلر تولید میشه. درواقع لینکر، Object fileهایی که توسط کامپایلر تولید میشه رو می گیره، اونا رو با هم ادغام می کنه، و تبدیلشون می کنه به یک فایل اجرایی یا یک برنامه کامپیوتری.

    »»» باید با Executable Formats یا به فارسی پسوند های اجرایی، اشنا باشی. باید از ساختار داخلیشون با خبر باشی و اینکه یک لینکر یا به انگلیسی Linker که بالا ذکر شد، چطور این پسوند ها رو تولید می کنه.

    »»» باید درباره پردازشگری که میخوای باهاش سیستم عاملت رو توسعه بدی، بدونی. باید کتاب راهنمای پردازشگر مورد نظرت رو دقیق بخونی. چون اول باید پردازشگری که میخوای سیستم عاملت رو توش توسعه بدی رو انتخاب کنی، بعد توسط زبان اسمبلی مخصوص همون پردازشگر، برنامه نویسی کنی. چون نحوه اسمبل کردن هر پردازشگر، متفاوته.
    مثلا اگه میخوای سیستم عاملت رو روی یک پردازشگر Intel توسعه بدی، باید پردازشگر های اینتل رو خوب بشناسی و Syntax مخصوص خودشون واسه اسمبل کردن رو یاد بگیری؛ تا پردازشگر رو اسمبل کنی توسط نرم افزارهای اسمبلر مثل NASM که بالا ذکر شد. (NASM یه برنامه گرافیکی نیست. مثل CMD هستش).

    یه مثال از Intel Syntax و AT&T Syntax برات می زنم :
    Intel Syntax
    mov eax, 123

    AT&T Syntax
    mov $123, %eax

    هردو برنامه دارن اعداد 123 رو به داخل eax منتقل می کنن. اما نحوه ترکیبشون رو می بینی که متفاوته. اینتل جدیده و خلوت تر. (mov همون move هستش که به زبان فارسی میشه : انتقال، حرکت، منتقل کردن).
    اینها یعنی نحوه برنامه ریزی که به انگلیسی میشه Syntax. هردو دارن یه کار انجام میدن، اما تنها نحوه یا شکل برنامه ریزیشون متفاوته.

    »»» با سیستم عامل های موجود خوب کار کن و نقاط قوت و ضعفشون رو کشف کن تا ایده های جدید خود به خود در ذهنت پدیدار بشن. دل هر سیستم عامل رو دربیار! همه جاشون رو سرک بکش. بین چی دارن و چی ندارن و یادداشت کن. ببین دربارشون چی بده و چی خوبه.

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

    اینجا حرف یک بزرگی رو به خاطر میارم که میگه : برای رسیدن به ایده ال ها، باید از خیلی چیزها گذشت.
    بهتره قبل از شروع چنین کاری، اینده نگری کنی. یه چیز رو هرگز فراموش نکن : هروقت به احمق بودن خودت پی ببری، می تونی پیشرفت کنی.
    به قول استیو جابز که نقل از کتابی می کنه و میگه :
    Stay hungry. Stay foolish گرسنه بمون. احمق بمون. من هرچقدر هم مطالعه کنم باز هم احمقم چون هنوز خیلی چیزها هست که نمی دونم. پس گرسنه می مونم و هرگز سیر نمیشم و باز هم پیش میرم تا زمانی که جانم به ته بکشه و بمیرم. همچنان احمق می مونم. من چیزی نمی دونم. باز هم یاد می گیرم.
    اگر دوست داری با هم در ارتباط باشیم و با هم بحث کنیم، بهم پیام بده.

    عمرت رو بذار، می بینی که میشه.
    آخرین ویرایش به وسیله a ceo called hammer : یک شنبه 14 مهر 1392 در 12:56 عصر

  4. #4
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: توسعه سیستم عامل ، چگونه؟

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

  5. #5

    Exclamation نقل قول: توسعه سیستم عامل ، چگونه؟

    نقل قول نوشته شده توسط fjm11100 مشاهده تاپیک

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

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

    شما لازم نیست به من پاسخ بدی. به این جوون 17 ساله پاسخ بده که تاپیکش رو از 11 مهر ایجاد کرده و تا 3 روز کسی بهش پاسخی نداده بود. اگرم شکایت کنه، میگن: "تاپیک های موجود را جست و جو کنید"!
    و این پاسخ رو منی که تازه دیشب ثبت نام کردم باید بدم بهش!

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

    موفق باشید.

  6. #6
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: توسعه سیستم عامل ، چگونه؟

    ساده بگیر دوست من، من فقط خواستم همین جوون فردایی نره بگه جابز سیستم عامل خلق کرده بهش بخندند. مک یجورایی با توسعه شروع شده و حالا هم با کلی فاصله که پیدا کرده باز هنوز هسته اش خیلی نزدیکه به اجدادشه و این فرق میکنه با خالق. متاسفانه خیلی ها استیو جابز را خالق خیلی از محصولات اپل و NeXT میدونند و این اشتباهه. جابز هنر را به دنیای کامپیوتر آورد همونطور که گیتس تجارت را وارد دنیای نرم افزار کرد. خالق سیستم عامل یعنی یکی مثل Ken Thompson و Dennis Ritchie
    منم گفتم باید سیستم عاملت حرفی واسه زدن داشته باشه وگرنه سر هم کردن یک OS با هسته دستکاری شده لینوکس فقط مصرف دولتی داره که اسمشو بزارن سیستم عامل ملی و کلی بودجه حرومش کنن

  7. #7

    Thumbs up نقل قول: توسعه سیستم عامل ، چگونه؟

    نقل قول نوشته شده توسط fjm11100 مشاهده تاپیک
    ساده بگیر دوست من، من فقط خواستم همین جوون فردایی نره بگه جابز سیستم عامل خلق کرده بهش بخندند. مک یجورایی با توسعه شروع شده و حالا هم با کلی فاصله که پیدا کرده باز هنوز هسته اش خیلی نزدیکه به اجدادشه و این فرق میکنه با خالق. متاسفانه خیلی ها استیو جابز را خالق خیلی از محصولات اپل و NeXT میدونند و این اشتباهه. جابز هنر را به دنیای کامپیوتر آورد همونطور که گیتس تجارت را وارد دنیای نرم افزار کرد. خالق سیستم عامل یعنی یکی مثل Ken Thompson و Dennis Ritchie
    منم گفتم باید سیستم عاملت حرفی واسه زدن داشته باشه وگرنه سر هم کردن یک OS با هسته دستکاری شده لینوکس فقط مصرف دولتی داره که اسمشو بزارن سیستم عامل ملی و کلی بودجه حرومش کنن
    من یکی از دوستداران Dennis Ritchie هستم و مطمئنا اگر ایشون نبود، استیو جابزِ با شهرتی وجود نداشت.
    اگه ایشون نبود، هیچی نبود!
    شاید حرف من رو بد متوجه شدی. منظور من از خلق، همون ساختن سیستم عامل بود که درواقع درسته، مک توسعه داده شده. منظور من از "خلق" همون چیزیه که دراومده. یعنی مک.

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

    در مورد اون قضیه هم درسته. من معتقدم باید در این زمانه که زمانه پادشاهیه سیستم عامل هاست، تحولی عظیم ایجاد کرد. باید هسته ای جدید برای سیستم عاملی جدید ساخت و کلا پایه بندی رو از نو ساخت.
    من از جمله User-Friendly متنفرم. من از ساده بودن سیستم عامل های حال حاظر متنفرم. باید همه چی تغییر کنه. چرا پیش به سوی تخیلات نریم؟ اگه همینطور بخوایم منطقی عمل کنیم در ساخت نرم افزار و سیستم عامل، پس دیگه تحول کجاست؟ من از ساده بودن سیستم عامل iOS به شدت متنفرم. زمانی به ساده بودن و راحت بودن معتقد بودم اما حالا به عجیب و انیمیشنی بودن معتقدم! چون تحولات در اینهاست (در این زمانه).
    ارزوی من فراتر از فراتره! اخیرا عکسها و مطالبی درباره شبیه بودن مک پرو جدید اپل به سطل اشغال دیدم و شنیدم. درسته شبیه سطل اشغاله! اما در سایت اپل مراجعه کنید و بخونید که زیر مک پرو جدید
    نوشته شده : گاهی برای برداشتن یک قدم بزرگ به جلو، مجبوری کل مسیر رو تغییر بدی.
    کسی که میخواد سیستم عامل بسازه، اما این قضیه "تغییر عمده و اساسی" رو توی کله اش نداره، بهتره از همین الان بی خیال این کار بشه.

    اون کلمه خالق رو از پست اولی حذف می کنم. بهتر که یاداوری کردی. چون من زیاد از کلمه خالق استفاده می کنم.

    موفق باشی.
    آخرین ویرایش به وسیله a ceo called hammer : یک شنبه 14 مهر 1392 در 13:08 عصر

  8. #8

    نقل قول: توسعه سیستم عامل ، چگونه؟

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

  9. #9

    Question نقل قول: توسعه سیستم عامل ، چگونه؟

    نقل قول نوشته شده توسط UfnCod3r مشاهده تاپیک
    نمی دونم چرا فکر می کنن محصولات ماکیروسافت رو بیل گیتس ساخته مال اپل هم استیو جابز
    عزیز من اینا بیشتر مدیریت می کردن .
    یاده فامیلمون میفتم که میگه IPad رو استیو ساخته . انگار افتابست که ی نفره بشه ساختش
    هرچند که همونم کار هرکسی نیست
    عوامل موثر در کمپانی های اپل و مایکروسافت به واضح مشخصند و برخی هم خودشون رو هرگز به مردم و در رسانه ها نشون ندادن.
    اتفاقا خود من هروقت به فکر "پول دراوردن" و "نواوری" میفتم، یاد استیو و بیل میفتم.
    حقیقت اینه که خیلی ها نامشون برده نشده. کسانی که واقعا از موثرترین ها در این دو کمپانی بودن اما افتخاراتشون تنها نصیب مدیرعامل ها و بنیان گذارانشون شد.
    آخرین ویرایش به وسیله a ceo called hammer : یک شنبه 14 مهر 1392 در 23:22 عصر

  10. #10
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: توسعه سیستم عامل ، چگونه؟

    ۱. ...
    2.تقریبا هیچ کدوم از چیزهایی که گفتید برای ساخت سیستم عامل ضروری نیست.
    چیزهایی که ضروری هستن بیشتر شامل این لیست میشن:
    آشنایی با روش کار interrupt ها.روش کار با درگاهها.روش ساخت file-system.زمانبندی پروسه ها.مدیریت حافظه.مدیریت دسترسی.و خیلی چیزهای دیگه که هیچ ربطی به سینتکس ه اسمبلرها ندارن.
    آخرین ویرایش به وسیله pswin.pooya : شنبه 20 مهر 1392 در 13:56 عصر

تاپیک های مشابه

  1. ساخت سیستم عامل با دلفی
    نوشته شده توسط amin_omega در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 20
    آخرین پست: سه شنبه 12 بهمن 1400, 11:38 صبح
  2. سوال: توسعه سیستم عامل
    نوشته شده توسط moonDark در بخش توسعه‌ی هسته‌ی سیستم عامل
    پاسخ: 4
    آخرین پست: شنبه 25 شهریور 1391, 16:15 عصر
  3. سوال: توسعه سیستم عامل
    نوشته شده توسط ahmadasm در بخش توسعه‌ی هسته‌ی سیستم عامل
    پاسخ: 5
    آخرین پست: دوشنبه 26 دی 1390, 15:48 عصر
  4. سوال: کتاب در مورد توسعه هسته یا نوشتن سیستم عامل
    نوشته شده توسط mahdi7s در بخش توسعه‌ی هسته‌ی سیستم عامل
    پاسخ: 6
    آخرین پست: سه شنبه 11 آبان 1389, 10:49 صبح
  5. سایت تخصصی توسعه سیستم عامل
    نوشته شده توسط pswin.pooya در بخش توسعه‌ی هسته‌ی سیستم عامل
    پاسخ: 1
    آخرین پست: یک شنبه 05 اردیبهشت 1389, 01:24 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •