انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: محمدرضا ح. در 12 آبان 1391، 06:45 ب‌ظ

عنوان: بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 12 آبان 1391، 06:45 ب‌ظ
با سلام .

در این تاپیک (http://forum.ubuntu.ir/index.php/topic,15688.0.html) دوستی سوالی کرده و خب تاپیک کمی پرحاشیه شده! از اون گذشته تاپیک بسیار قدیمی هست.

در اینجا سوالی برای من پیش اومده که بهترین راه برای ایجاد یک سیستم عامل چیست؟

1- توزیع کردن یک سیستم عامل دیگر
(اینجا منظورم گنو ، بی اس دی ، و ... نیست! بلکه فقط توزیع کردن هست!) .

2- استفاده از هسته سایر سیستم ها (کاری که Apple انجام داده یا در ابعاد بسیار گسترده تر آندروید).

3- نوشتن همه چیز از صفر!

4- استفاده از چیزی مثل گنو و نوشتن یک هسته برای اون.

ممنون میشم کمک کنید. :).
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: majidkamali1370 در 12 آبان 1391، 08:25 ب‌ظ
معمولا توی این دوره و زمونه کسی سیستم عامل نمیسازه
ولی اگه بخوای برای یادگیری این کارو بکنی گزینه ۳ مناسبه.
البته اگه برای ساختن سیستم عامل کاربردی هم اگه بخوای من بازم گزینه ۳ رو میگم. اینطوری میشه یه سیستم عامل کاملا بومی! ;)
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 12 آبان 1391، 08:33 ب‌ظ
معمولا توی این دوره و زمونه کسی سیستم عامل نمیسازه
ولی اگه بخوای برای یادگیری این کارو بکنی گزینه ۳ مناسبه.
البته اگه برای ساختن سیستم عامل کاربردی هم اگه بخوای من بازم گزینه ۳ رو میگم. اینطوری میشه یه سیستم عامل کاملا بومی! ;)

ممنون بابت نظرت. :)

خب مزایایی که نسبت به راههای دیگه داره تنها بومی بودنشه. از طرفی لینوکس بعد ۲۰ سال لینوکس شده! و همچنین من هنوز دانش آموزم .
و علم لازم رو ندارم .
(البته این تاپیک رو صرفا جهت بحث و گفتگو زدم ).
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: majidkamali1370 در 12 آبان 1391، 08:45 ب‌ظ
حق با شماست. بسیار کار سخت و زمان بریه ولی اگه یه تیم ۲۰ نفره (برای شروع) که همه سوادشو تا حدودی داشته باشن بشه جور کرد شدنی هست.
منظورت از گزینه یک یعنی fork کردن یه توزیع جدید؟
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 12 آبان 1391، 08:48 ب‌ظ
حق با شماست. بسیار کار سخت و زمان بریه ولی اگه یه تیم ۲۰ نفره (برای شروع) که همه سوادشو تا حدودی داشته باشن بشه جور کرد شدنی هست.
منظورت از گزینه یک یعنی fork کردن یه توزیع جدید؟

بله. این راه رو خودم رفتم (توزیع جبیر ---> http://jabirproject.org ) .

اما الان قصدم کار کمی حرفه ای تر هست. یعنی چیزی فراتر از یک ریمستر ساده!

(پ.ن : اگر وقتم رو بجای بحث و جدل با اپلی ها ( iSheep ها البته نه اون اقلیتی که یه چیزی بارشونه :دی) روی کار با لینوکس گذاشته بودم الان چیزی بسیار بهتر از یه ریمستر میدادم دست ملت :| ).
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: سیروس در 12 آبان 1391، 09:02 ب‌ظ
اگر وقت،سرمایه و دانش دارید گزینه 3 رو پیشنهاد میکم
اگر سرمایه ودانش دارید ولی وقتشو ندارید گزینه 2
گزینه 4 رو بیخیال شو چون کمی بی معنیه و نیازی به هسته جدید با سیستم عمل قدیمی نیست.
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: Amir (شفقی) در 12 آبان 1391، 09:06 ب‌ظ
با سلام .

در این تاپیک (http://forum.ubuntu.ir/index.php/topic,15688.0.html) دوستی سوالی کرده و خب تاپیک کمی پرحاشیه شده! از اون گذشته تاپیک بسیار قدیمی هست.


2- استفاده از هسته سایر سیستم ها (کاری که Apple انجام داده یا در ابعاد بسیار گسترده تر آندروید).


ممنون میشم کمک کنید. :).

به نظرم این بهتر است.
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 12 آبان 1391، 09:08 ب‌ظ
اگر وقت،سرمایه و دانش دارید گزینه 3 رو پیشنهاد میکم
اگر سرمایه ودانش دارید ولی وقتشو ندارید گزینه 2
گزینه 4 رو بیخیال شو چون کمی بی معنیه و نیازی به هسته جدید با سیستم عمل قدیمی نیست.

با سلام .

در این تاپیک (http://forum.ubuntu.ir/index.php/topic,15688.0.html) دوستی سوالی کرده و خب تاپیک کمی پرحاشیه شده! از اون گذشته تاپیک بسیار قدیمی هست.


2- استفاده از هسته سایر سیستم ها (کاری که Apple انجام داده یا در ابعاد بسیار گسترده تر آندروید).


ممنون میشم کمک کنید. :).

به نظرم این بهتر است.

راستش رو بخواید من از ایده Microkernel خیلی خوشم اومده . به نظرم کل دنیای کامپیوتر با اومدن هرد دگرگون خواهد شد.

پیشنهاد شما چه کرنلی هست؟ و این که Application Userland با چه زبانی نوشته بشه راحت تر هست برای من توسعه دهنده ؟

(به شخصه کرنلهای FreeBSD , NetBSD و Linux رو مد نظر دارم. همچنین Darwin هم دلربا به نظر میاد :D ).


{ باز هم میگم بحث تحلیلی هست برای آیندگان :D }
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: majidkamali1370 در 12 آبان 1391، 09:34 ب‌ظ
نقل‌قول
راستش رو بخواید من از ایده Microkernel خیلی خوشم اومده .
خب پس با مینیکس شروع کن.
نقل‌قول
و این که Application Userland با چه زبانی نوشته بشه راحت تر هست برای من توسعه دهنده ؟
C یا C++ که البته ممکنه با C++ یه خورده به مشکل بر بخورید.
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 12 آبان 1391، 09:47 ب‌ظ
نقل‌قول
راستش رو بخواید من از ایده Microkernel خیلی خوشم اومده .
خب پس با مینیکس شروع کن.
نقل‌قول
و این که Application Userland با چه زبانی نوشته بشه راحت تر هست برای من توسعه دهنده ؟
C یا C++ که البته ممکنه با C++ یه خورده به مشکل بر بخورید.

باز هم ممنون. آیا سیستم عامل شبه یونیکس باشه؟ یا ایده و ساختار جدیدی به همراه داشته باشه؟
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: Amir (شفقی) در 12 آبان 1391، 09:55 ب‌ظ
فکر کنم دبیان یه نسخه با کرنل هرد داره. تستش کن.
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 12 آبان 1391، 10:03 ب‌ظ
فکر کنم دبیان یه نسخه با کرنل هرد داره. تستش کن.

درسته. ولی متاسفانه روی VirtualBox نصب نشد. دارم QEMU و AQEMU رو نصب میکنم :).
فعلا میکروکرنل خیلی جذبم کرده.
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: majidkamali1370 در 12 آبان 1391، 10:06 ب‌ظ
استفاده از تجربیات دیگران خیلی خوبه.
اگه میخوای حداقل یه تقلیدی از دیگران نباشه کدهای اونا رو نگاه کن و از اونا الگو بگیر نه اینکه عینا کپ بزن ;D
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 12 آبان 1391، 10:22 ب‌ظ
استفاده از تجربیات دیگران خیلی خوبه.
اگه میخوای حداقل یه تقلیدی از دیگران نباشه کدهای اونا رو نگاه کن و از اونا الگو بگیر نه اینکه عینا کپ بزن ;D

:D

ممنون.

درسته. و بزرگترین مزیت FOSS هم همینه :).
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 13 آبان 1391، 09:34 ق‌ظ
خب دوستان کرنلهای داروین و هرد رو دانلود کردم و در حال تستشون هستم.

نظری نیست؟
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: Amir (شفقی) در 13 آبان 1391، 09:59 ق‌ظ
خب دوستان کرنلهای داروین و هرد رو دانلود کردم و در حال تستشون هستم.

نظری نیست؟

خوبه
 اجرا برنامه ها چه جوری میشه؟
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 13 آبان 1391، 10:10 ق‌ظ
خب دوستان کرنلهای داروین و هرد رو دانلود کردم و در حال تستشون هستم.

نظری نیست؟

خوبه
 اجرا برنامه ها چه جوری میشه؟

Hurd که همون دبیان هست. البته سرعت بسیار بالاتری موقع بوت داشت  :o (طبیعی هست چون میکروکرنل کلا سرعت بیشتری داره)

Darwin هم که بیس Mac OS X هست و خب برنامه هایی که روش نصب میشن باید از MacPorts یا سورس کامپایل بشن. (البته ظاهرا YUM و RPM روش کار میده :) ).
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 13 آبان 1391، 12:54 ب‌ظ
دوستان عزیز یه راهنمایی ساده در مورد QEMU میخوام :( .

موندم چطوری هارد و .... بسازم براش :| .
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: جادی در 13 آبان 1391، 02:21 ب‌ظ
بهتره اول تئوری بخونی و یاد بگیری. کتاب سیستم عامل تاننباوم رو بخون و بعدش Understanding linux kernel (http://www.amazon.com/Understanding-Linux-Kernel-Third-Edition/dp/0596005652) رو. اولا بوت کردن مثلا داروین کار راحتی نیست و طول می کشه و هیچ ارزش علمی هم نداره ولی اگر واقعا دوست داری توی این راه بری جلو، این دو تا کتاب بهت خیلی کمک می کنن.

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

نمی خوام بزنم تو ذوقت. می خوام بگم باید قدم به قدم و با حوصله پیش رفت. مثلا قدم بعدی معقول اینه که آدم بتونه خوب برنامه بنویسه / برنامه بخونه. قدم بعدی اینه که یکی از کرنل ها درک کنه و قدم بعدی اینه که شـــــــــــــــــــاید بتونه با یک کد مناسب به یکی از نیازهای موجود در کرنل های موجود پاسخ بده (دقت کن که کرنل خیلی چیز پیچیده ای است و اصلا اینطوری نیست که الان یکسری ایده برای اجرا باشه ولی کسی حوصله نکن برنامه بنویسه. الان کرنل کاملا بالغ شده و کسی ایده های فوق العاده ای برای بهبود ناگهانی توش نداره).
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: جادی در 13 آبان 1391، 02:24 ب‌ظ
اوه! این رو هم از یکی از بهترین دوستانم (سینا) نقل کنم: برای سنجیدن راه نیاز به دونستن هدف داریم!

هدفت از ساخت یک سیستم عامل چیه؟ اینه که می گه بهترین راه کدومه! اگر چیز یاد گرفتن است بهتره یکبار منظم و مرتب بدون تلاش برای زودتر رسیدن به «پیروزی» مثلا LFS رو نصب کنی. کلی چیز یاد می گیری. اگر اشنایی با مفاهیم است باید کتاب بخونی (دو تایی که قبلا گفتم) چون نصب موفق هیچ چیزی بهت هیچ چیزی در مورد تئوری های سیستم عامل یاد نمی ده. اگر تجربه است می تونی چیزهای مختلف نصب و تست کنی و غیره و غیره
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 13 آبان 1391، 02:39 ب‌ظ
ممنون جادی جان :).

من در کل بزرگترین هدفم یادگیری بیشتر هست :) . به همین خاطر هم این تاپیک رو ایجاد کردم تا دنبال راههایی باشم که بهتر یاد بگیرم :).
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: علی نعمت اللهی در 13 آبان 1391، 06:48 ب‌ظ
من هم می خواستم یه سیستم عامل بسازم اما دیدم الان بهتره برنامه سازی برای اوبونتو رو یاد بگیرم و انجام بدم تا هم یادگیری باشه هم بدرد بقیه بخوره هر کی میرسه یه سیستم عاملی میزنه دو روز بدش هم منقرض میشه :( همین اوبونتو یا فدورا یا ... رو توسعه بدیم بهتر نیست؟
عنوان: پاسخ : بهترین راه برای ایجاد یک سیستم عامل؟
ارسال شده توسط: محمدرضا ح. در 13 آبان 1391، 06:52 ب‌ظ
من هم می خواستم یه سیستم عامل بسازم اما دیدم الان بهتره برنامه سازی برای اوبونتو رو یاد بگیرم و انجام بدم تا هم یادگیری باشه هم بدرد بقیه بخوره هر کی میرسه یه سیستم عاملی میزنه دو روز بدش هم منقرض میشه :( همین اوبونتو یا فدورا یا ... رو توسعه بدیم بهتر نیست؟

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

اونها هم سیستم عامل نیستند. توزیع های یک سیستم عامل دیگرند. مثلا AROS یا Minix دو سیستم عاملی هستند که هنوزم زنده و سرحالن. منتها مصارف خودشون رو دارند (بیشتر بدرد دانشجوهایی میخورن که برای درس سیستم عامل دنبال رفرنس مناسب هستند).