PDA

View Full Version : بهترین زبان برنامه نویسی برای ساختن یک سیستم عامل



unix_svr4
شنبه 10 فروردین 1387, 19:50 عصر
با سلام

درسته که من یک برنامه نویس جاوا هستم ولی علاقه زیادی هم به طراحی سیستم عامل دارم.
من می دانم که سیستم عامل های اولیه به زبان Assembly نوشته می شدند.
و همچنین می دانم نسخه اولیه Unix به زبان PL/1 نوشته شده بود.
می خواستم بدانم از نظر شما بهترین زبان برنامه نویسی برای نوشتن یک سیستم عامل چیست؟؟؟

1-Assembly
2-C
3-++C
4-Java

tritilium
یک شنبه 11 فروردین 1387, 06:16 صبح
به نظر من c++ البته نظر مایکروسافت هم همینه چون ویندوز رو هم با اون نوشتن !

fatrix
یک شنبه 11 فروردین 1387, 19:27 عصر
اگر میخوای تازه شروع کنی assembly خیلی خوبه من خودم الان مشغول همین کارم اما بعد که راه افتادی با C

ICEMAN
یک شنبه 11 فروردین 1387, 21:09 عصر
من هم موافقم با Assembly , C/C++ ,ولی منظورتون و نمی فهمم چرا Java رو نوشتید

سیستم عاملی هست که با جاوا نوشته باشن

Mehdi Asgari
دوشنبه 12 فروردین 1387, 00:04 صبح
سیستم عاملی هست که با جاوا نوشته باشن
http://www.jnode.org/

می خواستم بدانم از نظر شما بهترین زبان برنامه نویسی برای نوشتن یک سیستم عامل چیست؟؟؟
بهترینی وجود نداره ، ولی اسمبلی و سی تقریبا در تمام سیستم عامل ها به کار رفتن (سیستم عامل های managed هم داریم که با سی شارپ ایجاد شدن)

__Genius__
یک شنبه 25 فروردین 1387, 16:40 عصر
عموماً با C , Assembly مینویسن .

qazwsx
شنبه 07 اردیبهشت 1387, 14:38 عصر
ببین دوست عزیز شما اول باید ببینید از سیستم عاملتون چی میخواهید
1-سرعت
2-امنیت
3-گرافیک بالا
و......

صدها چیز دیگه
خوب ببینید شما اگه تو سیستمتون امنیت رو نیاز دارین اسمبلی بهترین گذینه هست
ولی اگه گرافیک اهمیت داره خوب سی.

MSK
سه شنبه 10 اردیبهشت 1387, 19:56 عصر
البته اینجا جا داره اشاره کنم که سیستم عامل هایی مثل ویندوز و لینوکس و مک او اس و ... هم کدوم در هستشون ملیونها خط کد به زبان سی دارند و البته هرجا هم که نیاز بوده کتابخانه هایی به زبان اسمبلی بهشون لینک شده. (که خوب همه می دونستید)

اما مسئله ای که اینجا مهمه اینه که ما مثلما دنبال نوشتن چنین چیزایی اینجا نیستیم؛ و برنامه هایی که تحت عنوان سیستم عامل ما اینجا به نوشتنشون نیاز پیدا می کنیم در مقیاسی اند که بهترین زبان براشون مفهومی نداره غیر اینکه دقیقاً بدونی چکار باهاش میخواهی بکنی.

miradli
سه شنبه 01 مرداد 1387, 15:38 عصر
دوست عزیز همون طور که دوستان گفتن سیستم عاملهای کاربردی مثل ویندوز و لینوکس و مک و ... با اسمبلی و سی نوشته شدند ، اما هدف شما مهمتر هست :
> به عنوان مثال برای برنامه ساده ای که نیاز به ارتباط با بانک اطلاعاتی داره و به منابع سیستم کاری نداره ، عاقلانه نیست با سی پلاس پلاس برنامه بنویسیم و بهتره با سی شارپ بنویسیم اگر چه با سی پلاس پلاس هم میشه ! ( بخاطر راحتی کار و سریع تر به نتیجه رسیدن پروژه )
زبان کاری خودتون که جاوا هست با همون میتونی کار کنی .
درضمن با اسمبلی به تنهایی میشه سیستم عامل نوشت اما با دیگر زبانها به تنهایی نمیشه ، یعنی اگه سی رو انتخاب کنی باید باز هم اسمبلی رو بدونی ! و همینطور دیگر زبونهایی که مطرح کردی !
اسمبلی = سیستمی مطمعن سریع و ....
سی = سیستمی خوب + سریعتر به نتیجه رسیدن

اگر نیاز به منبع هم داری میتونی از کتاب تانن باوم ( اصول طراحی و پیاده سازی سیستم های عامل ) استفاده کنی که به چگونگی نوشتن سیستم عامل minix می پردازه ، که با سی نوشته شده !
این کتاب منبع خوبی هست برای آشنایی و درک ساختمان و کد نویسی سیستم عامل .
امیدوارم موفق باشید .

behzad24be
یک شنبه 06 مرداد 1387, 00:12 صبح
سلام . شما باید بدونید که توی چه سطح و مرحله ای از کار هستید . توی مراحل اولیه مثل نوشتن هسته و بخش های سیستمی باید از اسمبلی و c استفاده کرد چون کد ماشین کمتری تولید میکنن و زبان c++ در ابتدا اصلا مناسب نیست . هرچند میشه همون اولش هم از c++ استفاده کرد ولی چون از کلاسها برای نوشتن برنامه استفاده میشه باعث میشه که کد ماشین تولید شده زیاد باشه ، همونطور که میدونید توی نوشتن بخشهای سیستمی اندازه کد نهایی برامون مهم . ولی توی مرحله های بالاتر مثل ساخت GUI سیستم عامل میشه از کدهای ساختار یافته تر مثل کلاسها در C++ استفاده کرد . حتی اگه به هسته لینوکس نگاه کنید با اون وسعتش فقط با C نوشته شده .

hozouri
سه شنبه 08 مرداد 1387, 09:39 صبح
سلام دوستان
برای نوشتن یک سیستم عامل خوب شما باید هم زبان سی و هم اسمبلی و هم آشنایی با زبان ماشین داشته باشید.
چون بعضی از کار ها رو باید در اسمبلی انجام بدید و بعد به زبان سی در بیارید.
زبان ماشین هم برای اینکه سیستم عامل نرم افزاری سیستمی است که رابط سخت افزار و کاربر می باشد نه اینکه خودش برای بالا اومدن از سیستم عامل دیگه ای استفاده کنه در حقیقت با داس بوت بشه.
و برای خواندن و نوشتن در سخت افزار ها هم باید ابتکاراتی داشته باشید شما اگر تمایل دارید می تونید کتاب مینیکس رو برای مطالعه در نظر بگیرید که لینوکس رو هم آقای لینوس توروالدز از هیمن مینیکس ساختند و اونجاست که متوجه می شین اثلاً سیستم عامل به چه چیزی گفته میشه و چه کار باید بکنه. و همه دستورات هم به زبان سی برگردانده شده اند که در خود سایت مینیکس می تونید این سیستم عامل رو دانلود بفرمایید.

mehrdadmehrvarz
پنج شنبه 24 مرداد 1387, 16:57 عصر
البطه ویندوز با سی نوشته شده و گلوگاهای حساس اون با اسمبلی نه با c++

jeson_park
یک شنبه 31 خرداد 1388, 02:14 صبح
شما اگر تمایل دارید می تونید کتاب مینیکس رو برای مطالعه در نظر بگیرید که لینوکس رو هم آقای لینوس توروالدز از هیمن مینیکس ساختند و اونجاست که متوجه می شین اثلاً سیستم عامل به چه چیزی گفته میشه و چه کار باید بکنه.
سلام می بخشید منظور شما همون کتاب "طراحی و پیاده سازی سیستم عامل"
اندرو اس تننباوم هست چون من شنیدم منیکس در واقع همین کتابه هستش!!!!
اگه میشه بیشتر توضیح بدین!:بوس:

pswin.pooya
یک شنبه 31 خرداد 1388, 12:22 عصر
بله درسته. نحوه نوشته شدن قسمتی از minix داخل این کتاب همراه با مفاهیم سیستم عامل توضیح داده شده

alireza.zahani
شنبه 24 اسفند 1392, 17:04 عصر
رو سی شارپ حساب کن
هم به java شما نزدیکه
هم ویندوز سون روش حساب کرده

yassersajjadi
دوشنبه 26 اسفند 1392, 23:43 عصر
خوب برای کد نویسی سیستم عامل همونطور که دوستان گفتن ، سرعت و خوانایی خیلی مهمه ، نوشتن کد با اسمبلی از نظر سرعت اجرای کد بهتر هست اما خوانایی کمی داره ، این مهمه که بعد از یه مدت که با پروژه کار نمیکنی بفهمی که چی کردی ، که توی اسمبلی خیلی سخت هست ، در ضمن اگه شما یه پروژه به زبان اسمبلی انجام بدی مثلا برای x86 و بعدا بخوای به arm تغییرش بدی باید تمام فرمان های اسمبلی رو از نو بنویسی چون فرامین متفاوتی دارن ، توی خود پردازنده های arm هم فرامین متفاوته ولی اگه با سی انجام شده باشه فقط بخش اسمبلی نیازه تغییر کنه که خیلی راحت میتونی این کار رو انجام بدی و ...
البته وقتی وارد محیط گرافیکی بشین خودتون نیاز به C++ رو بیشتر و بیشتر درک میکنین

behnam404
شنبه 30 فروردین 1393, 21:49 عصر
Assembly , سی پلا پلاس
هر دو رو باید بدونی

mohamad.550
سه شنبه 02 اردیبهشت 1393, 18:40 عصر
انشاالله موفق باشید.

m.j_banitaba
چهارشنبه 03 اردیبهشت 1393, 07:48 صبح
آره راست میگه آلمان و انگلیس و فرانسه که به خاطر پشتیبانی xp میلیونها دلار به ماکروسافت میدن قشنگن. بعدشم تو چرا به خاطر سعی کردن یه عده ای ناراحت می شی اصلا تو رو سننه.
به قول یه مثل انگلیسی :
راهبری کن یا پیروی کن یا از سر راه برو کنار

mohamad.550
چهارشنبه 03 اردیبهشت 1393, 13:29 عصر
آره راست میگه آلمان و انگلیس و فرانسه که به خاطر پشتیبانی xp میلیونها دلار به ماکروسافت میدن قشنگن. بعدشم تو چرا به خاطر سعی کردن یه عده ای ناراحت می شی اصلا تو رو سننه.
به قول یه مثل انگلیسی :
راهبری کن یا پیروی کن یا از سر راه برو کنار


آره حق با شماست

m.j_banitaba
چهارشنبه 03 اردیبهشت 1393, 15:35 عصر
من مرده اون فهمتم.آقای با ادب.


با مدعی مگویید اسرار عشق و مستی

تا بی‌خبر بمیرد در درد خودپرستی


عاشق شو ار نه روزی کار جهان سر آید

ناخوانده نقش مقصود از کارگاه هستی


دوش آن صنم چه خوش گفت در مجلس مغانم

با کافران چه کارت گر بت نمی‌پرستی


سلطان من خدا را زلفت شکست ما را

تا کی کند سیاهی چندین درازدستی


در گوشه سلامت مستور چون توان بود

تا نرگس تو با ما گوید رموز مستی


آن روز دیده بودم این فتنه‌ها که برخاست

کز سرکشی زمانی با ما نمی‌نشستی


عشقت به دست طوفان خواهد سپرد حافظ

چون برق از این کشاکش پنداشتی که جستی

mohamad.550
چهارشنبه 03 اردیبهشت 1393, 17:33 عصر
من مرده اون فهمتم.آقای با ادب.



چاکرتیم.خواهش.

alizadehsoha
یک شنبه 25 خرداد 1393, 20:13 عصر
سلام دوستان.
من یه سوال کلی داشتم که:
ما چرا بیایم یه سیستم عامل جدید بنویسیم؟خب وقتی یه کسی یه ایده جدید درباره سیستم عامل نداره چرا بیاد یه کار تکراری که خیلی سال ها پیش مایکروسافت و اپل
انجام دادن دوباره با امکانات محدودتر ما بیایم انجام بدیم و عمر و وقت خودمون رو حروم کنیم؟؟ الان یه عالمه توزیع از لینوکس وجود داره که اصلا به درد نمیخوره و همون کار تکراری رو هم به خوبی انجام ندادن.
خلاصه اگه یه ایده خوب دارین بیاین وقت بذارین...و اون رو ریشه ای و همچین جون دار و قدرتمند انجام بدین.
لطفا پاسخ بدین.....مرسی

m.j_banitaba
یک شنبه 25 خرداد 1393, 21:23 عصر
برای من مسیله اصلی نوشتن کد نیست . بلکه در سیستم عامل مفاهیم بالاتری در سطح مدیریت وجود داره . اشتراک گذاری ،توسعه ،تقسیم کار ،بهینه سازی و...
در مرحله دوم بحث بر سر اینه که مثلا فرض کنید بخواهید با زبان اسمبلی شی گرایی را پیاده سازی کنید بدون کامپایلر هایی که از این مفاهیم پشتیبانی کنند کاری کند و زمان بر است . حال به نظر من در مورد سیستم عامل نیز چنین کمبودی وجود دارد ما جهت توسعه سیستم عامل نیاز به مفاهیم پایه ای تر داریم .
در مرحله سوم نوشتن سیستم عامل برای من مثل ساختن هواپیمای مدل است کسی که هواپیمای مدل می سازد چه هدفی را دنبال می کند . هدف من هم چیزی شبیه آن است .به پرواز در آوردن هواپیمایی که مدل خودمه و میگم ساختمش
در مرحله چهارم در آزمایشگاه های سیستم عامل و در درس سیستم عامل چقدر توسعه همون لینوکس رو یاد می دن چند .
د رمرحله پنجم خون ریزی قلبی اینترنت به تنهایی می تواند دلیل بازنگری تمامی کدهای سیستم عامل باشد.