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

نام تاپیک: ساخت و طراحی سیستم عامل آپادانا

  1. #1
    کاربر دائمی آواتار masaioki.ono
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    تهران
    پست
    155

    Smile ساخت و طراحی سیستم عامل آپادانا

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


    http://apadanaos.persianblog.ir/

    دوستان برنامه نویس مخصوصا زبان اسمبلی که خواهان کمک در این راه هستند در حد توان خود کمک کنند .
    تشکر

  2. #2

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

    سلام

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

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

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

    در مورد زبان هم شما باید زبان ساخت خودتان را با زبان های دیگر مقایسه کنید مقاله steelman report در مورد مقایسه چهار زبان C و ++C و جاوا و Ada را مطالعه کنید و
    جایگاه زبان خودتان را بشناسید.
    شاید بدک نباشه به زبان Ada هم فکر کنید چون قابلیت اطمینان بسیار بالایی داره و در صنایع نظامی و پر اهمیت هم بسیار کاربرد داره.

    موفق باشید

  3. #3
    کاربر دائمی آواتار masaioki.ono
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    تهران
    پست
    155

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

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

    نگفتم که از سی استفاده نمیکنیم بلکه در حد امکان سعی میکنیم که از زبانهای دیگه استفاده بشه

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

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

    با زبان ada آشنایی ندارم اما حتما در موردش مطالعه میکنم

    با تشکر
    آخرین ویرایش به وسیله masaioki.ono : چهارشنبه 25 شهریور 1394 در 01:23 صبح

  4. #4

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

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

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

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

    بازهم طبق همون تجربه بهتون قول می دم یا میرید سراغ C/C++‎ یا سراغ پاسکال و یا اینکه کلا پروژه تون شکست می خوره.

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

  5. #5
    کاربر دائمی آواتار masaioki.ono
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    تهران
    پست
    155

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

    سلام قصد کنار گذاشتن اسمبلی و سی رو نداریم اما قصد داریم که تا اونجا که میشه از اونها کمتر استفاده بشه .
    قصد بهتر کردن - سریعتر کردن - امنتر کردن و ساده تر کردن سیستم عامل رو داریم در حد امکان .
    در حال حاضر با تعدادی از دوستان در حال کار روی این پروژه هستیم و خوبی کار ما اینه که بصورت تیمی کار میکنیم پس کمتر به هر نفر فشار میاد و هر شخص تنها کد قسمت خودش رو بر اساس استانداردی که گفته میشه رو مینویسه .
    اولویت انجام کار تیمی هست

  6. #6
    کاربر دائمی آواتار masaioki.ono
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    تهران
    پست
    155

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

    یکی از دوستان سوالات دیگه ای هم پرسیده که اونا رو هم همینجا جواب میدم

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

  7. #7

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

    نقل قول نوشته شده توسط masaioki.ono مشاهده تاپیک
    سیستم عامل آپادانا سورس بسته خواهد بود
    قصد داریم سیستم عاملی تولید کنیم که فروش بره یعنی قابل فروش و عرضه به بازار باشه
    سلام، دست من، من آرزو دارم شما یک روز بتوانید یک سیستم عامل بسیار قدرتمند بسازید ولی
    بهتره روی تصمیماتی که میگیرید بیشتر فکر کنید.

    چرا سورس بسته :
    1. برای اینکه توانمندی ما در حدیست که نیاز به کمک دیگران نداریم.
    2. دوست داریم موقع تحویل محصول هزینه کارمان را دریافت کنیم.
    3. ما برای کاربر سیستم عامل را تعریف میکنیم و کاربر را در تغییر سیستم و خصوصی سازی آن سهیم نمیدانیم.
    4. سیستم عامل منبع بسته امکان پیدا کردن خطا ها و نفوذ در سیستم را کاهش میدهد. البته خودمان را در این امر مقتدر میشماریم.
    5. در سیستم عامل ما اصرار تجاری وجود دارد که انتشار آن باعث شکست کار میشود. ( اصراری که ورای سیستم عامل های فعلیست)
    و ...

    چرا سورس باز :
    1. برای اینکه هر فرد یا ارگانی بتواند در توسعه سیستم سهیم باشد منبع باز عمل میکنیم.
    2. دوست داریم برای پشتیبانی نرم افزاری که ارائه میدهیم هزینه دریافت کنیم.
    3. کاربر حق دارد که بر آنچه که با آن سروکار دارد تسلط کامل داشته باشد.
    4. سیستم عامل متن باز هرچند که قابل مطالعه و عیب یابی است ولی پشتیبانی جهانی برای پیدا کردن خطاها و رفع آنها دارد.
    5. در سیستم عامل ما هیچ سری وجود ندارد و نیت ما ارتقاع سطح علم و دانش و در کنار آن کسب در آمد است.
    و ...

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

    موفق باشید

  8. #8

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

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


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

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


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

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

    مورد دیگه در کار تیمی لیدر تیم هست. یه لیدر خوب یک تیم افتضاح رو عالی می کنه و یه لیدر بد یه تیم قدرت مند رو هیچ می کنه. لیدر چند تا مشخصه باید داشته باشه:
    ۱. باید اطلاعات کامل و یا حداقل کلی در مورد کل پروژه داشته باشه. مثلا برای پروژه ای مثل سیستم عامل باید تقریبا از تمام علوم کامپیوتر سر دربیاره.
    ۲. افراد تیم باید حرف شنوی کامل داشته باشن ازش
    ۳. باید واقع گرا و تدبیرگرا باشه: تصمیمات درست رو در زمان درست بگیره.
    ۴. باید مصمم باشه.
    و ....

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

  9. #9
    کاربر دائمی آواتار masaioki.ono
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    تهران
    پست
    155

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

    خوشبختانه دوستانی که در این پروژه کار میکنن بعد از یک سری جلسه و صحبت طولانی و به صورت رای گیری که انجام شد به این نتایج رسیدیم که

    پیشرفت = حرکت به جلو ( نسبت به چیزی / جایی که هستیم )
    نقشه راه کلی برای خودمون رسم کردیم .
    قسمتهایی که وجود دارن رو دوباره کاری نکنیم .
    از زبانهای اسمبلی و سی که لازمه کار هستن فقط در حد لزوم استفاده بشه نه اینکه نشه بیشتر کار اولیه به ناچار باید استفاده بشه ولی در ادامه از زبانهای برنامه دیگری هم استفاده کنیم که دلایلی متفاوتی داره
    استانداردی رو برای برنامه نویسی خودمون در نظر گرفتیم که همه رعایت کنن
    قبول دارم که تمام موارد رو بهتر کردن سخته اما هیچ چیز نا ممکن نیست
    سرعت که حتما به معنای کد کمتر نیست مثلا در زبان اسمبلی کد بیشتر میزنیم اما سرعتش بیشتره
    یکی از دلایل برنامه نویسی با زبانهای دیگه هم امنیته البته یکی از مواردش که انواع overflow stack buffer و هزار جور باگ دیگه ذاخل کد نویسی سی هست که هممون میدونیم و ... امنیت مساله بسیار مهمی برای همه هست دیگه همه بر سر این مساله اتفاق نظر دارند . نه اینکه برنامه های دیگه هیچ باگی ندارن خیر اما قابل کنترلتر و متفاوتتر هستند به هر حال انتخاب این مساله با رای گیری بوده


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

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

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

    یک مثال دارم در کارهای خودم و میگم نیاز نیست که نابغه باشم فقط کافیه بک قدم جلو باشیم

    به قول یک دوستی هیچ محدودیتی وجود نداره مگر همان محدودیتی که در فکرمون برای خودمون بوجود میاریم

  10. #10

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

    سرعت که حتما به معنای کد کمتر نیست مثلا در زبان اسمبلی کد بیشتر میزنیم اما سرعتش بیشتره
    ببینید. یکی از مواردی که داخل CPU وجود داره. اسمش پایپ لاین هست. مثلا اگر اشتباه نکنم Corei7 بین ۲۰ تا ۲۴ مرحله هست. حالا یه کد زیر که با اسمبلی نوشته شده میتونه هازاد داده اینجاد کنه و باعث شه که سرعت برنامه حداقل ۲۴ برابر کمتر شه:

    mov ax,4
    add ax,2
    mov ax,2
    البته این مثال ساده هست. و یک نمونه از مشکلات. حالا اینکه مراقب این قضیه توی اسمبلی باشید یه تجربه طولانی برنامه نویسی و علم زیادی در مورد ساختار پردازنده لازم داره. که همین کار رو مجانی کامپایلر میکنه.

    مورد دوم: زبان اسمبلی زبان سطح پایین هست. نتیجتا هر دستور به یک کد ماشین تبدیل میشه اما بقیه زبانها (اکثر اونها) زبان سطح بالا هستند که هر دستور به چند دستور زبان اسمبلی تبدیل میشه. اینکه دارید زبان C رو با زبان اسمبلی از نظر تعداد خط مقایسه می کنید خوب نیست.

    یکی از دلایل برنامه نویسی با زبانهای دیگه هم امنیته البته یکی از مواردش که انواع overflow stack buffer و هزار جور باگ دیگه ذاخل کد نویسی سی هست که هممون میدونیم
    ۱. دوست دارم باگ های زبان C رو بگی که البته با اینکارت توی دنیا معروف میشی. چون معمولا زبان باگ نداره (باز بر می گرده به تعریف علمی نظریه زبانها و ماشین ها ) حالا می گفتین کامپایلر باگ داره یا برنامه جا داشت.

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

    ۳. اینکه حافظه کنترل بشه و ... اصلا ربطی به امنیت نداره. من قول می دم اگر دانشجو هستید استاد شما یا داره جاوا درس می ده و یا C#‎ که همچین چیز مسخره ای رو به شما گفته و یا اینکه کلا یکی به اشتباه گفته. اگر با این موضوع مشکل جدی دارید داخل زبان C++‎ هم ساختارهایی برای کنترل و جمع آوری زباله و ... وجود داره و یا حتی خودتون می تونید مال خودتون رو بسازید. مورد دیگه اینه که کلا برنامه نویس سیستم عامل باید اینقدر حواسش جمع باشه که همچین اشتباهی نکنه. کلا اگر از برنامه نویسهایی که واقعا سیستم عامل نوشتن بپرسید متوجه می شید که چی میگم و چه دقتی رو بخرج میدن.

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


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

  11. #11
    کاربر دائمی آواتار masaioki.ono
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    تهران
    پست
    155

    نقل قول: ساخت و طراحی سیستم عامل آپادانا

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


    من خودم هم موقعی که شروع کردم اطلاعات کافی نداشتم اما خب همیشه از تجربه بقیه بهترین استفاده رو کردم. مثلا رفتم سایتهای توسعه و کلی مطلب خوندم و بعدش استارت زدم. حتی نزدیک یک سال هم نگفتم که دارم روش کار می کنم.
    تیم ما هم وقتی رو به همین مسایل ابتدایی اختصاص داده و بعد از بررسی های زیاد به این نتایج رسیده و تصمیم یک نفره و یا از سر بی علمی نبوده و مطمعنا ما هم مطالب مورد نظر رو میخونیم .
    آخرین ویرایش به وسیله masaioki.ono : دوشنبه 18 آبان 1394 در 00:02 صبح

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

  1. طراحی سیستم عامل
    نوشته شده توسط Parsa_2006 در بخش توسعه‌ی هسته‌ی سیستم عامل
    پاسخ: 4
    آخرین پست: شنبه 24 آذر 1386, 10:46 صبح
  2. طراحی سیستم عامل
    نوشته شده توسط نغمه در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 2
    آخرین پست: پنج شنبه 13 اردیبهشت 1386, 22:23 عصر
  3. طراحی سیستم عامل
    نوشته شده توسط BitMap در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 24
    آخرین پست: دوشنبه 18 اردیبهشت 1385, 13:03 عصر

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

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

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