# برنامه نویسی سطح پایین > توسعه‌ی هسته‌ی سیستم عامل > خبر: گردهمایی جهت بحث بر روی ساخت یک سیستم عامل بومی در سطح عالی !

## Gerdab

*به نام ایزد توانا*

با سلام خدمت تمام اساتید گرانقدر

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

میدانم که خیلی در این فروم در این باب این موضوع بحث شده اما ... 
 بهتر است در این زمان کسانی که واقعا به دنبال خلق یک اثر هنری (مانند os x ) هستند دست به کار شوند

جهت هماهنگی برای روز گردهمایی و مکان آن لطفا به شماره 09384731404در تلگرام و یا به صورت SmS پیام بفرستید

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

با تشکر فراوان -سجاد گردکانه

----------


## pswin.pooya

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





> بهتر است در این زمان کسانی که واقعا به دنبال خلق یک اثر هنری (مانند os x ) هستند دست به کار شوند


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

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

*چه کارهایی می شه کرد:*
برای اینکه بتونیم بفهمیم چه کارهایی می تونیم بکنیم *اول باید بدونیم که* *مشکل چیه*. نظر شخصی من که فکر می کنم خیلی ها هم با اون موافق باشن اینه که اولین مشکل نبود دانش کافی هست و متخصص کافی هست. *قدم بعدی باید برنامه ریزی برای حل مشکل* باشه. کم بود متخصص باید از طریق دانشگاه ها جبران بشه و نقش حرکتهای گروهی خیلی کم رنگ می تونه باشه توی جامعه. از اونجا که فکر کنم دانشگاه های ما به شدت مورد دارن (حداقل توی فیلد ما). باید با اساتید شروع کردن صحبت کردن (و البته آموزش دادن اونها) و پایه های توسعه سیستم عامل رو قوی کرد بجای اینکه به خودش رسیدگی کرد. مثلا توی درس آزمایشگاه کامپیوتر بجای درس دادن سخت افزار و ... و یا (حتی توی موردهای زیادی من دیدم ویندوز درس می دن) به تدریس سیستم عامل های پایه ای تر مثل لینوکس پرداخت (که بعدا دانشجوها می تونن ازش توی درسهای مختلف استفاده بکنن). قدم بعدی تغییر ساختار درس برنامه نویسی هست بشکلی که درس برنامه نویسی پایه ای تر باشه و تمرکز ۱۰۰ درصد اون روی زبان C/C++‎ باشه. (توی خیلی موارد دیدم که C#‎ یا جاوا تدریس شده). البته برای ساخت سیستم عامل اطلاعات دقیقی از ساختار کامپیوتر و کامپایلر هم نیازه. پس درس های معماری کامپیوتر و کامپایلر هم باید پیش نیاز باشن و در کنار اونها ساختار این درسها هم تغییر کنه. یعنی در درس کامپایلر دانشجو باید بتونه کامپایلر بسازه (که توی لینوکس سریع می تونن نحوه ساخت رو یاد بگیرن) و یا در درس معماری دانشجو باید با معماری های جدید و چالشها آشنا بشه ( که معمولا کتاب فوق قدیمی مترلینگ رو می خونن) مثلا می شه از کتابهای جدید تر مثل کتاب پترسون استفاده کرد و در آزمایشگاه اون از FPGA برای ساخت یک حداقل پردازنده. در نهایت آخرین درسی که باید دانشجو سراغش بره باید سیستم عامل باشه که قبلا تمام این قابلیت ها رو توش محک زده باشه.

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

۱. یادگیری لینوکس
۲. یادگیری خیلی دقیق زبان C/C++‎
۳. یادگیری زبان اسمبلی
۴. ساخت کامپایلر
۵. مطالعه در مورد پردازنده و نحوه ساخت و عملکرد اون.
۶. یادگیری یک API سیستم عامل (ترجیحا POSIX)


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

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

----------


## Gerdab

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

من سالهای زیادی رو وقت صرف کردم و منظورم از ( بهتر است در این زمان کسانی که واقعا به دنبال خلق یک اثر هنری (مانند os x ) هستند دست به کار شوند) این نبود که از روی دست اپل کپی بزنیم ، بلکه منظور این بنده این بود که یک محصول باکیفیت و جذاب طراحی و عرضه کنیم و خب مطمعنا برنامه ریزی هم برای این طرح وجود دارد .

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

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

امیدوارم هرچه زود تر بتوانیم پروژه را شروع کنم 

و نهایتا من هم برای شما موفقیت و پیشرفت را آرزو مندم 

و از توجه شما بسیار بسیار خورسند شدم . *یا علی*

----------


## aksiya

سلام بنده حاضر به همکاری هستم .

----------


## joker

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


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

----------


## Gerdab

سلام مجدد محمد جان، لطفا شماره ات رو دوباره برای من بفرست

----------


## moslem.hady

توی این 6-7 ماه چی گذشت؟ به نتیجه ای هم رسیدید؟

----------


## aksiya

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

----------


## aksiya

تو این چند ماه بنده داشتم رو سورس کرنل FreeDOS و minix3 کار می کردم.همچنین ghost kernel نسخه جدید رو برسی کردم.

----------


## Hooman.Prog

درست کردن يک سيستم عامل درست و حسابي در ايران در حدي که بتونه فقط نزديک سيستم عاملهاي معتبر دنيا بشه، امري تقريبا غير ممکنه!
مثل اين ميمونه که اميد داشته باشيم سازمان فضايي ايران بتونه در عرض 10 سال رقيب جدي ناسا بشه (در اون همه زمينه اي که ناسا فعاليت ميکنه).
خب فکر ميکنم واضح باشه که چرا اينطور چيزا غيرممکنه! نه؟
بنده از ده پانزده سال پيش که تازه وارد دنياي اينترنت شدم توي اينترنت مدام اينطور بحث ها و تاپيک ها و ادعاهايي ميبينم که 99.99% شون هم هيچوقت به نتيجه نرسيدن و حتي اکثرا در حد ابتدايي هم پيش نرفتن (تازه موارد خيلي محدودتر و ساده تر از درست کردن سيستم عامل). چرا؟ ميتونيد بگيد؟ اين يه مسئلهء آدم شناسي و روانشناسي و اجتماعي است!
در حقيقت ما در ايران منابع انساني و مالي لازم براي اينطور کارها رو تقريبا نداريم. دو نفر آدم که يخورده چيز ياد گرفتن دوتا برنامه نوشتن جوگير ميشن و فکر ميکنن مثلا درست کردن سيستم عامل هم به اين سادگي هاست، درحاليکه دانش و توانايي اي که براي انجام واقعي چنين کاري حتي بصورت نصفه و نيمه لازمه خيلي فراتر از حد تصور اونهاست.
نياز به سواد گسترده و بالا، که در بعضي موارد در حد علمي ميشه و مثلا رياضيات و يکسري مسائل پيشرفته هم نيازه که افرادي بايد بقدر کافي ازش سردربيارن. گذشته از حجم بالا و قدرت مديريت و کار تيمي اي که اينطور چيزها نياز دارن. که اينا رک بگم هيچکدام در ايران عملا پيدا نميشن! مگر شايد بصورت شانسي و براي مدتي در تاريخ ايران چنين پارامترها و نيروها و منابعي در حد کافي تونسته باشن و بتونن براي کاري گرد هم جمع بشن (بعد از اينکه پيدا شدن!!).
سيستم عامل واقعي و کامل نوشتن که عملا بصرفه و بتونه بعنوان جايگزين سيستم عامل هاي ديگر در واقعيت استفاده بشه، کار خيلي حجيم و پيچيده و علمي است، و يکسري ابعاد خاصي هم داره که اکثرا ازش اطلاع ندارن و بهش توجه نميکنن. مثلا عمدتا به اين نکته توجهي نميشه که نوشتن يک سيستم عامل عمومي جديد به خودي خودش امروزه اهميت و فايدهء زيادي نداره، و مهم اينه که نرم افزارهاي زيادي براي اون سيستم عامل نوشته بشن يا بشه نرم افزارهاي موجود سيستم عامل هاي متداول ديگر رو روش اجرا کرد. چون اين نرم افزارها خودشون خيلي زياد و مهم هستن و نوشتنشون خودش يک ارتش از برترين برنامه نويسان رو نياز داره (و کي ميخواد اينا رو پيدا و تامين و پشتيباني هاي مالي و غيره لازم بکنه؟ حتي دولت ايران هم فکر نميکنم حتي اگر بخشي از بودجهء کل کشور رو بهش اختصاص بده بازم شدني باشه). مورد مشابه دیگر مثلا نوشتن درایور برای سخت افزارهای زیادی هست که وجود دارن (و در خیلی موارد اول نیاز به مهندسی معکوس هم داره) و جامعهء لینوکس با اون همه منابع و نفرات همیشه سر این مسئله مشکل داشتن و دارن چون شرکت های تولید سخت افزار برای خیلی از سخت افزارهاشون درایورهای لینوکس طراحی نمیکنن (یا اینکه درایورهاشون آزاد/بازمتن نیست).
و البته ما سيستم عامل هاي آزاد و بازمتن مثلا يونيکسي ها مثل لينوکس و بي اس دي و غيره رو داريم و بنابراين ديگه حتي کشورهاي قدرتمند و پيشرفته هم عملا دليل کافي ندارن که برن و يک سيستم عامل کاملا جديدي رو از پايه ايجاد کنن! اونوقت توي ايران ملت دنبال درست کردن سيستم عامل جديدي هستن!!
بنابراين از نظر عقل و منطق، کاري که بايد/ميتونيم بکنيم تسلط بر همين سيستم عامل هاي بازمتن و آزاد مثل لينوکس هست و مشارکت و سفارشي سازي و نهايت مقداري تغييرات در اونها. اينطوري از نيروي مغزي و وقت و انرژي و سواد کلي آدم ديگه در سراسر دنيا هم ميتونيم استفاده کنيم.
امروزه روز ديگه در خيلي کارها تک روي و مستقل عمل کردن عملا صرف نميکنه يا تقريبا غيرممکن شده! اين بخاطر حجم و پيچيدگي بالاي کار و سرعت پيشرفت و توسعهء فناوري هاي امروزي و پارامترهاي متعدد جانبي درگير است.
و چقدر شما از واقعيت هاي دنياي واقعي امروز بي اطلاع هستيد که ميايد و همچين بحث ها و ادعاهايي رو اينطور مطرح ميکنيد!
من ميگم در ايران اصلا کسانيکه سواد و مابقي ويژگيهاي شخصيتي و انگيزه و جديت و اخلاق و مرام کاري کامل اينطور کارها رو داشته باشن اگر پيدا بشه به زور در حد انگشتان دست شايد باشه! و اگر بگيد يک نفر هم پيدا نکرديم بنده تعجب نميکنم!
اين بحث ها که شما مطرح ميکنيد داستانهاي تخيلي است. چون به وضوح ميبينم و ميدونم که حتي يک نفر از شما آدمي نيستيد که خودتون صلاحيت اظهار نظري در اين مورد رو داشته باشيد، چه برسه به اينکه بخوايم واقعا يک چنين پروژه اي رو با اتکا به چنين آدمها و قول و ادعاهايي شروع کنيم و براش هزينه اي بکنيم و اميد داشته باشيم به جايي هم برسه.
از خواب بيدار شيد!
البته من خودباخته نيستم، ولي واقعيت گرا و عملگرا هستم. هرکس هم در هرجاي دنيا اگر از استعداد و هوش حداقل لازم برخوردار باشه و زحمت بکشه ميتونه به بالاترين درجات علم و دانش و سواد و توان برسه، ولي اين راه سخت و طولاني است و آدمهاي خاص خودشو ميخواد، نه دوتا نوجوان معمولي که جوگير هستن و دانش و بينش اونها از واقعيت دنيا و زندگي نزديک به صفره!
بخواي ميتوني پيشرفت کني و بزرگ بشي، ولي زحمت داره، راه و روش خودشو داره. همينطوري کشکي که نيست!! دوتا مطلب خوندي دوتا برنامه نوشتي فکر ميکني همه چيز همينه؟ درواقع اون چيزايي که شما بلديد و ميتونيد و ميدونيد يک هزارم از چيزهاي موجود در دنياست! 999 مورد ديگه هست بايد ياد بگيريد، و اين سالها زمان ميبره، و جديت زيادي ميخواد، زحمت داره، و آدمهاي عاقل و بالغ ميخواد.
بعضي چيزا هم هست که تيم ها و مديريت قوي ميخواد که ديگه دست يک نفر نيست. مثلا من اگر بزرگترين دانشمند و نابغهء دنيا هم باشم درسته ميتونم خيلي کارها بکنم اما خيلي کارها رو هم نميشه تنهايي انجام داد و بايد يک تيم با تعداد افراد کافي در سطح سواد و توان کافي و با خصوصيات شخصيتي و اخلاقي و تعهد کاري کافي بايد پيدا کنم، و تازه بحث منابع ديگر مثل مالي هم که به کنار.
بايد قبول کرد در دنياي امروز خيلي چيزها هست که کشورهايي با منابع انساني و اقتصاد و مالي ما از عهدش به تنهايي برنميان. و حتي بنظر میرسه کارهايي در دنيا هست که براي بزرگترين قدرتهاي علمي و فناوري و صنعت و اقتصادي هم به تنهايي صرف نميکنه و بخاطر همينه که بصورت مشترک با کشورهاي ديگر انجام ميدن.

----------


## aksiya

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

----------


## Gerdab

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

----------


## Dark-Knight

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

----------

