انجمنهای فارسی اوبونتو
جامعه کاربران => کافه اوبونتو => نویسنده: Mmjafari در 16 امرداد 1395، 09:41 قظ
-
سلام.
من می خوام یک سیستم عامل جدید بنویسم. البته از بیخ. به اسمبلی و سی آشنایی دارم. از کجا باید شروع کنم؟
-
بابا دمت گرم
باریکلا به این شجاعت و همت
برخلاف شما من هیچ سررشته نه از سی دارم نه از اسمبلی ولی این رو می دونم برای نوشتن سیستم عامل سی خیلی بهتره از اسمبلی هستش چون قبلا این تجربه شده سیستم عامل یونیکس سابقا به زبون اسمبلی بود ولی در سال ۱۹۷۲ همش رو از اول دوباره به زبون سی نوشتن.
https://fa.wikipedia.org/wiki/%DB%8C%D9%88%D9%86%DB%8C%DA%A9%D8%B3 (https://fa.wikipedia.org/wiki/%DB%8C%D9%88%D9%86%DB%8C%DA%A9%D8%B3)
بازنوشتن به زبان سی[ویرایش]
در ۱۹۷۲، یونیکس به زبان سی بازنوشته شد. این برخلاف پندار همگانی آن زمان بود که میگفت «هر چیز پیچیدهای مثل یک سیستمعامل که باید با رویدادهای حساس به زمان سر و کار داشته باشد، باید منحصراً به زبان اسمبلی نوشته شود.» نتیجه مهاجرت از زبان اسمبلی به زبان سطح بالاتر سی این بود که کد یونیکس پرتابلتر و قابل حملتر شد و برای اجرا بر روی ماشینهای دیگر تنها کافی بود قسمتهای کوچکی از آن به زبان اسمبلی مخصوص همان ماشین نوشته شوند.
ایتیاندتی کد منبع یونیکس را تحت مجوزهایی در دسترس دانشگاهها، شرکتهای تجاری و دولت ایالات متحده قرار دارد. مجوزها در همه جای کد منبع قرار داده شده بودند، حتی کدهای وابسته به ماشین در داخل هسته سیستمعامل، که به زبان اسمبلی پیدیپی-۱۱ نوشته شده بودند. در اواخر دهه ۱۹۷۰، کدهای منبع یونیکس در کتابی به نام «نسخه ۶ یونیکس به روایت لیونز، به همراه کد منبع» که توسط جان لینوز نوشته شده بود، به صورت گسترده منتشر شد. این کار باعث شد یونیکس به شکل قابل توجهی برای مقاصد آموزشی استفاده گردد.
برای اینکه از کجا باید شروع کرد؟
خوب توی اینترنت خیلی سایتها هستند که کمک می کنن فقط باید کلمه جادویی انترنت رو بگی:
how to ...
مثلا
how to write a new operating system
یا چیز های دیگه ای که مثل همین باشند
سایت های زیادی معرفی می کنه
مثل این
http://www.wikihow.com/Make-a-Computer-Operating-System (http://www.wikihow.com/Make-a-Computer-Operating-System)
یه راه دیگه هم اینه که کدهای منبع یه سیستم عامل دیگه رو - فقط برای وارد شدن و نه برای کپی کردن - مطالعه کنید مثلا همین لینوکس یا سیستم های دیگه هم هست که احتمالا کدشون رو ارائه می کنند
به هر حال موفق باشید
مشکله و ممکنه
-
از صحبتتون اینطور برمیآد که احتمالاً به صورت دقیق نمیدونید سیستمعامل چبه. توصیهٔ من شروع از اینجاست: http://www.linuxfromscratch.org/lfs/view/stable/
-
درسته. اما من دارم سعی در اختراع دوباره چرخ می کنم.
-
خب اصلا اینکار اگر هم بتونید منطقی نیستش . هدفتون از اینکار چیه ؟ اگر واقعا دانشش رو دارید بهتره روی هرد کار کنید .
البته بعید میدونم درک درستی داشته باشید از اینکه باید دقیقا چیکار کنید چون فرآیند پیچیده ای هستش و دانش بالایی نیاز داره .
-
ایده ای غیر از ایده پیاده شده روی هرد، لینوکس ، بی اس دی یا ان تی دارم. بنا بر این بهتره از اول شروع کنم.
-
چه ایده ای ؟
-
از صحبتتون اینطور برمیآد که احتمالاً به صورت دقیق نمیدونید سیستمعامل چبه. توصیهٔ من شروع از اینجاست: http://www.linuxfromscratch.org/lfs/view/stable/
مثل همیشه کاملا صحیح
مینیکس با هدف آموزش ساخته شده. امکاناتش کمه ولی قراره که کدش اینقدر ساده نوشته بشه که همه بتونن بخوننش. خب واسه اینکه بفهمیم چی می شه که بوت می شه گرافیک چیه و چه جوری کار می کنه و چه جوری فایل کپی می شه و غیرو غیره بد نیست نگاهی بهش بندازی.
-
نمیشه فعلا مطرح کرد. اون صفحه رو هم دیدم
-
کتابهای دانشگاهی سیستمعامل رو بخونید :)
-
نمیشه فعلا مطرح کرد. اون صفحه رو هم دیدم
یعنی میخوای سیستم عامل رو متن بسته و انحصاری توسعه بدی ؟
-
نمیشه فعلا مطرح کرد. اون صفحه رو هم دیدم
یعنی میخوای سیستم عامل رو متن بسته و انحصاری توسعه بدی ؟
نه ولی فعلا قصد مطرح کردن ندارم
-
یک سایت هست OSDev.org اگر اشتباه نکنم مطالبش خوبه.
-
دوست عزیز اگه فکر کردی یه سیستم عامل جدید رو شروع میکنی و بعدش سیستم عاملت مثل لینوکس جهانی میشه و خودتم مثل آقای توروالدز جهانی میشی سخت در اشتباهی. خودتو گول نزن و از رویا بیا بیرون. به هزار دلیل شدنی نیست. عمرت رو تلف نکن. اگه تونستی همین هرد یا bsd رو یک درجه ارتقا بدی تمام دنیا بهت ایمان میارن!
اپل با اون عظمتش نرفت از اول بنویسه، bsd رو گرفت ادامه داد. یعنی شما از اپل هم دانش و تواناییت بیشتره؟
در ضمن هنوز برای من سواله که شما اصلاً با چه استدلالی میخوای از اول os بنویسی. واقعاً دونستنش برام جالبه. نمیخواد همه چیز رو لو بدی فقط بگو این سیستم عاملهای موجود چه ایرادی دارن از نظر تو؟
-
دوست عزیز اگه فکر کردی یه سیستم عامل جدید رو شروع میکنی و بعدش سیستم عاملت مثل لینوکس جهانی میشه و خودتم مثل آقای توروالدز جهانی میشی سخت در اشتباهی. خودتو گول نزن و از رویا بیا بیرون. به هزار دلیل شدنی نیست. عمرت رو تلف نکن. اگه تونستی همین هرد یا bsd رو یک درجه ارتقا بدی تمام دنیا بهت ایمان میارن!
اپل با اون عظمتش نرفت از اول بنویسه، bsd رو گرفت ادامه داد. یعنی شما از اپل هم دانش و تواناییت بیشتره؟
در ضمن هنوز برای من سواله که شما اصلاً با چه استدلالی میخوای از اول os بنویسی. واقعاً دونستنش برام جالبه. نمیخواد همه چیز رو لو بدی فقط بگو این سیستم عاملهای موجود چه ایرادی دارن از نظر تو؟
چرا همه فکر میکنن تا یکی میخواد توزیع بسازه یا از اول سیستم عامل بسازه میخواد معروف شه؟ یا بگه خفنه؟ :) شاید قصد بنده خدا فقط وارد شدن یه یه دنیای باحال به اسم طراحی سیستم عامل باشه :)
-
خب جامعه ما یه اصطلاح داره
((shut up and calculate))
شما هم بهتره بجای صحیت دربارش بسازیش...
-
کار خوبی هست.
چرخ خودت رو بساز!
این سایت رو نگاه کن:
http://mikeos.sourceforge.net/write-your-own-os.html
خیلی مطالب آموزنده ای داره و ظاهرا نوشتن یک سیستم عامل چیز سختی نیست.البته نوشتن یک سیستم عامل خفن که بتونه بازیهای خفن تر از خودش رو اجرا کنه ظاهرا سخته.
-
خب اصلا اینکار اگر هم بتونید منطقی نیستش . هدفتون از اینکار چیه ؟ اگر واقعا دانشش رو دارید بهتره روی هرد کار کنید .
البته بعید میدونم درک درستی داشته باشید از اینکه باید دقیقا چیکار کنید چون فرآیند پیچیده ای هستش و دانش بالایی نیاز داره .
این کار چه سودی برای جامعه کاربری داره؟ و چه توزیع هایی تحت هرد وجود دارن؟
-
این کار چه سودی برای جامعه کاربری داره؟
به جامعه امکان استفاده از کرنلی رو میده که حتا از لینوکس هم بهتره.
و چه توزیع هایی تحت هرد وجود دارن؟
در حال حاضر دبیان و آرچ و گیکس به صورت رسمی و اوبونتو به صورت غیررسمی. با روند شتابان توسعهٔ هرد، این توزیعها بیشتر هم میشن.
-
این کار چه سودی برای جامعه کاربری داره؟
به جامعه امکان استفاده از کرنلی رو میده که حتا از لینوکس هم بهتره.
و چه توزیع هایی تحت هرد وجود دارن؟
در حال حاضر دبیان و آرچ و گیکس به صورت رسمی و اوبونتو به صورت غیررسمی. با روند شتابان توسعهٔ هرد، این توزیعها بیشتر هم میشن.
از چه لحاظ از لینوکس بهتره؟
بعد هرد چند درصد کامله؟ همه قابلیت های مهم رو داره؟
-
خب برای اطلاعات بیشتر باید اینجا رو بخونی : https://www.gnu.org/software/hurd/
هرد ساختار میکروکرنل داره . این خودش دریای برتری رو میاره . هرد قراره جزء مهم یک سیستم عامل آزاد باشه . در نتیجه شما داخل هرد دیگه برای هر کاری مثل کرنل های یونیکسی (مثل لینوکس) به دسترسی مدیر سیستم نیاز ندارید .
همچنین هرد امنیت بیشتر و قابلیت کانفیگ و تغییرات بیشتری رو ارائه میکنه .
میتونی اینجا رو هم بخونی : https://www.gnu.org/software/hurd/advantages.html
الان روی نسخه ی ۰.۸ هستش . ماخ هم باید کنارش پیشرفت بکنه . برای استفاده ی کاربر الان مناسب نیست ، چون ماخ تعدادی از سخت افزار ها رو نمیشناسه .
پیاده سازی ساختار میکروکرنل سختتر از کرنل یکپارچه هستش برای همین بیشتر طول کشیده .