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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: راهنمایی برای نوشتن سیستم عامل  (دفعات بازدید: 20210 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #45 : 12 آبان 1391، 03:35 ب‌ظ »
انتشاراتش رو یادم نیست الآن! مترجمش دکتر ابوالفضل طرقی حقیقته

ممنونم :) . اگر کتابی هم در زمینه زبان اسمبلی میشناسید ممنون میشم معرفی کنید. شدیدا نیاز دارم :)
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #46 : 12 آبان 1391، 03:40 ب‌ظ »
Art of assembly
البته انگلیسیه. به صورت آنلاین و pdf موجوده.
Ubuntu 14.04 LTS 64-bit - unity

آفلاین mehrzadmo

  • Jr. Member
  • *
  • ارسال: 77
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #47 : 12 آبان 1391، 03:44 ب‌ظ »
نمي دونم پاسخ من الان به درد شما ميخوره يا خير اما اميدوارم كمكي كرده باشم .
متاسفانه امروزه كسي به مفاهيم اوليه بها نمي ده . نتيجه اون هم همين رفتار دوستان در اين تاپيكه . بايد دست اين استاد رو به گرمي فشرد و ازشون تقدير كرد . كاش تمام اساتيد ما اين شكلي بودند . خيلي بي راهه نمي رم .

* داس رو به شكل متعصبانه اي دوست دارم ! و بايد عرض كنم به هيچ وجه سيستم عامل ساده و كوچكي نيست . اگر احيانا روند توسعه سيستم عامل رو ادامه بديد شما هم به اين مورد معترف بشيد . پس شما نبايد انتظار يه سيستم عامل كامل مثل داس رو داشته باشيد !!!

اما در مورد كار شما ، خوشبختانه امروزه منابع بسيار زيادي در مورد توسعه سيستم عامل به فارسي وجود داره ! حتي چندين تيم بسيار عالي دارن روي اين موارد كار مي كنند . اما بنا به دلايل زيادي بيشتر جنبه آموزشي داره تا كاربردي . دلايلش رو اگر دوست داشتيد توضيح ميدم . نوشتن سيستم عامل به زبان اسمبلي تنها يه مقدار زيادي سخته . البته اين كار نيز قبلا انجام شده . يه سيستم عامل ساده با چند برنامه كاربردي وجود داره كه از روي فلاپي - قبلا البته جديدا رو نممي دونم - بوت ميشه سبك و ساده و با كلي امكانات تازه ! اگر اشتباه نكنم محيط گرافيكال هم داره .
براي توسعه سيستم عامل ، بهترين محيط لينوكس هست . به دلايل زيادي باز كه توضيحش اينجا نمي گنجه . بعد يه سري مراحل داره كارتون كه شما بايد خيلي از موارد رو براي ابتدا ناديده بگيريد . يه سيستم عامل بايد چند مورد اساسي رو داشته باشه :
1- بوت لودر
2- مدير حافظه
3- سيستم فايل
4- هسته 
و ...
براي هر كدوم مثال هايي به زبانهاي مختلف وجود داره . سعي كنيد با توجه به زمان و هدف كار قسمت هايي رو كپي بزنيد يا بازنويسي كنيد همين .
هر كدوم از اين موارد كلي زير برگ و زير شاخه دارند اما خوب شما يه پي سي ساده رو بدون حواشي در نظر بگير و بر اساس اون برو جلو . با توضيحات شما فكر نمي كنم حتي نيازي به كنترلر ماوس هم حتي باشه !

لينك هايي براي شروع :
http://www.osdever.net/tutorials
براي شروع اين سايت خيلي خوبه . همه چيزي رو پله به پله برات توضيح ميده . بر پا كردن محيط طراحي - نوشتن مراحل مهم و ...
http://www.google.com/url?sa=t&rct=j&q=%D8%B7%D8%B1%D8%A7%D8%AD%D9%8A%20%D8%B3%D9%8A%D8%B3%D8%AA%D9%85%20%D8%B9%D8%A7%D9%85%D9%84%20%D8%B3%D9%8A%20%D8%A7%D8%B3%D9%85%D8%A8%D9%84%D9%8A&source=web&cd=3&cad=rja&ved=0CDcQrAIoAzAC&url=http%3A%2F%2Fbarnamenevis.org%2Farchive%2Findex.php%2Ft-95053.html&ei=nbeTUMkL8tXhBLL_gfgP&usg=AFQjCNGercI_a8_dEURWzLEoYenCoyi4Zg
اينم يه نوشته قديمي از من ! راستش يادم نيست چي توش نوشتم الان هم سرور برنامه نويس داره ظاهرا جابجا ميشه براي همين حتي نتونستم بخونمش . بعد از مدتها اينو توي اينترنت ديدم !!!‌

+ اين لينك ها
http://osdevel.blogfa.com/
http://vazeh.com/n-1335513.html
منم پيشنهاد مي كنم به فوروم برنامه نويس دات ا ار جي سر بزنيد . اونجا برنامه نويس هاي در سطوح مختلف حضور دارند كه بهتر مي تونند بهتون كمك كنند . حتي تا اونجا كه يادمه يكي شون يه سيستم عامل كامل نوشت .

مطالب قديمي رو هم سرچ كنيد به چندين و چند مطلب كه به اين موضوع اشاره دارند مي رسيد .

بر خلاف دوستان هم فكر نم يكنم كتاب تننباوم براي شما مناسب باشه !!! فقط يه سورس همراهش هست از يه سيستم عامل به نامه مينيكس - كه الهام بخش همين لينوكس خودمون هم بوده !!! - كه فقط سه هزار خط هستش ! كه رفتار يونيكس بيسي داره كلا  . اگر بتونيد مطالعه اش كنيد مورد جالبيه .

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #48 : 12 آبان 1391، 03:44 ب‌ظ »
خب یک سوال فنی از دوستان  ;D

برای سطح پایین C بهتره یا ASM ؟ البته از نظر وقت گذاشتن میگم :) .
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین mehrzadmo

  • Jr. Member
  • *
  • ارسال: 77
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #49 : 12 آبان 1391، 03:57 ب‌ظ »
نقل‌قول
برای سطح پایین C بهتره یا ASM ؟ البته از نظر وقت گذاشتن میگم  .
نظر منو بخوايي سي ! دلايلش هم بسيار زياده !‌
 سي به پلت فورم خاصي بستگي نداره يعني همون كد بدون تغيير خاصي يا با تغيير خيلي اندكي ميشه روي ويندوز يا لينوكس اجرا بشه . يا حتي از پردازنده هاي مختلف پشتيباني ميشه ! اصطلاخا بهش مي گند قابليت حمل . چيزي كه اسمبلي تقريبا فاقد اونه !
 
كد نويسي خيلي خيلي نسبت به اسمبلي راحت تره . كد قابل فهم تره و ..

منابع و مثال هاي بيشتر وجود داره . آموزش هاي بيشتر و كاربردي تر هست .

خيلي از كارهايي كه توي سي با يه خط انجام ميشه رو شما بايد توي سي با چندين خط انجام بدي !
....
اما در مقابل كاربرد هاي خاصي براي اسمبلي وجود داره :
مثل استفاده از اين برنامه توي كرك كردن برنامه ها . ديباگ برنامه ها و ...
برنامه هايي كه با اسمبلي نوشته ميشند چون هر خط به يه خط كد ماشين تبديل ميشه سرعت بسيار بالايي دارند و ...

در كل جز در موارد خاص استفاده از اسمبلي اصلا منطقي نيست .

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #50 : 12 آبان 1391، 04:07 ب‌ظ »
نقل‌قول
برای سطح پایین C بهتره یا ASM ؟ البته از نظر وقت گذاشتن میگم  .
نظر منو بخوايي سي ! دلايلش هم بسيار زياده !‌
 سي به پلت فورم خاصي بستگي نداره يعني همون كد بدون تغيير خاصي يا با تغيير خيلي اندكي ميشه روي ويندوز يا لينوكس اجرا بشه . يا حتي از پردازنده هاي مختلف پشتيباني ميشه ! اصطلاخا بهش مي گند قابليت حمل . چيزي كه اسمبلي تقريبا فاقد اونه !
 
كد نويسي خيلي خيلي نسبت به اسمبلي راحت تره . كد قابل فهم تره و ..

منابع و مثال هاي بيشتر وجود داره . آموزش هاي بيشتر و كاربردي تر هست .

خيلي از كارهايي كه توي سي با يه خط انجام ميشه رو شما بايد توي سي با چندين خط انجام بدي !
....
اما در مقابل كاربرد هاي خاصي براي اسمبلي وجود داره :
مثل استفاده از اين برنامه توي كرك كردن برنامه ها . ديباگ برنامه ها و ...
برنامه هايي كه با اسمبلي نوشته ميشند چون هر خط به يه خط كد ماشين تبديل ميشه سرعت بسيار بالايي دارند و ...

در كل جز در موارد خاص استفاده از اسمبلي اصلا منطقي نيست .

آیا میشه کرنل رو با C خالص نوشت ؟
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #51 : 12 آبان 1391، 04:11 ب‌ظ »
ممنونم :) . اگر کتابی هم در زمینه زبان اسمبلی میشناسید ممنون میشم معرفی کنید. شدیدا نیاز دارم :)

بهترین کتابی که در این زمینه خوندم راهنمای اسمبلر 80x86 بود برای شخصی به اسم مشحون اگه اشتباه نکنم
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #52 : 12 آبان 1391، 04:45 ب‌ظ »
نقل‌قول
آیا میشه کرنل رو با C خالص نوشت ؟
نه. شما یه سر به osdev.org بزن. بعضی قسمتها رو از inline assembly استفاده کردن.
Ubuntu 14.04 LTS 64-bit - unity

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #53 : 12 آبان 1391، 05:44 ب‌ظ »
نقل‌قول
آیا میشه کرنل رو با C خالص نوشت ؟
نه. شما یه سر به osdev.org بزن. بعضی قسمتها رو از inline assembly استفاده کردن.

:) .

ممنون دیدم وبگاهش رو . خیلی وبگاه خوبی هم هست. من با MikeOS اونجا آشنا شدم و کرنلی هم که با اسمبلی نوشتم رو از مستندات همین سایت و MikeOS استفاده کردم (چند پست قبلتر هستش! اگر نگاه کنید کرنلی بسیار ساده نوشتم که در QEMU یک خوشامد ساده میگه به کاربر :دی) .

البته Inline Assembly باز بهتره تا نوشتن با خود اسمبلی :D .
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #54 : 12 آبان 1391، 05:51 ب‌ظ »
اخه inline assembly اون که تازه با syntax های at & t هست خیلی نوشتنش دردسر داره. همش کوتیشن داره و این حرفا.
پیشنهاد من اینه که بوت لودر و قسمتهای کمی رو که واسه لود شدن و اجرا شدن فایلها هست با fasm بنویسی و بقیش رو با C
fasm سریعترین assembler هست.
اگه خواستی یه نگاه به سایتش بنداز
http://flatassembler.net/
Ubuntu 14.04 LTS 64-bit - unity

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #55 : 12 آبان 1391، 06:01 ب‌ظ »
اخه inline assembly اون که تازه با syntax های at & t هست خیلی نوشتنش دردسر داره. همش کوتیشن داره و این حرفا.
پیشنهاد من اینه که بوت لودر و قسمتهای کمی رو که واسه لود شدن و اجرا شدن فایلها هست با fasm بنویسی و بقیش رو با C
fasm سریعترین assembler هست.
اگه خواستی یه نگاه به سایتش بنداز
http://flatassembler.net/

خودم در نظر دارم که بوت لودر رو گراب قرار بدم چون :

1- هم آزاد و قویه .
2- شناسایی خوبی داره (وقتی سیستم عاملم رو خواستم نصب کنم راحتم :)) ).
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #56 : 12 آبان 1391، 11:32 ب‌ظ »
بر خلاف دوستان هم فكر نم يكنم كتاب تننباوم براي شما مناسب باشه !!! فقط يه سورس همراهش هست از يه سيستم عامل به نامه مينيكس - كه الهام بخش همين لينوكس خودمون هم بوده !!! - كه فقط سه هزار خط هستش ! كه رفتار يونيكس بيسي داره كلا  . اگر بتونيد مطالعه اش كنيد مورد جالبيه .
به نظر میاد این کتاب رو نخوندید. این کتاب فقط یک سورس همراهش نیست، سورس تنها قسمت فرعی این کتاب هست! برای شخصی که بخواد پایه‌های سیستم‌عامل رو یاد بگیره، یکی از بهترین کتاب‌های سیستم‌عامل هستش.

برای سطح پایین C بهتره یا ASM ؟ البته از نظر وقت گذاشتن میگم :) .
بستگی داره دقیقا برای چه کاربردی. خوب Assembly عموما زمان بیشتری میبره نسبت به C و می‌تونه توسعه اون سخت‌تر باشه، ولی از اون طرف سرعت بالاتری داره و حجم کمتری می‌گیره.
از طرف دیگه Assembly شدیدا به معماری سخت‌افزارتون وابسته هستش، در حالی توی C زحمت اکثریت سازگاری با معماری شما توسط Compiler کشیده شده.

آفلاین mehrzadmo

  • Jr. Member
  • *
  • ارسال: 77
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #57 : 13 آبان 1391، 09:02 ق‌ظ »
نقل‌قول
به نظر میاد این کتاب رو نخوندید. این کتاب فقط یک سورس همراهش نیست، سورس تنها قسمت فرعی این کتاب هست! برای شخصی که بخواد پایه‌های سیستم‌عامل رو یاد بگیره، یکی از بهترین کتاب‌های سیستم‌عامل هستش.

بنده حرف شما رو قبول دارم اين كتاب يكي از بهترين هاي سيستم عامل هست . اما اگر دقت كنيد فقط گفتم "اين كتاب به درد شما نمي خوره " نه كه كتاب به درد نمي خوره !
با توجه به زمان و نوع كاري كه ايشون ميخوان انجام بدند و حجم مطالب كتاب و سطحشون ، مطالعه اش كاري جز وقت تلف كردن نيست !
بعد سيستم عامل هاي نوين براي حل مسائل از راههايي استفاده مي كنند كه توي كتاب بهشون اشاره اي نشده ! به نظر اين كتاب صرفا يه داكيومنت براي مينيكسه !  كه منطقي هم هست و در كنار اين به شما مفاهيم رو هم ياد مي ده . مثلا در مورد مديريت حافظه و سيستم فايل و ... راه حل هاي كتاب رو با مثلا روش هاي ويندوز يا لينوكس مقايسه كنيد .

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : راهنمایی برای نوشتن سیستم عامل
« پاسخ #58 : 27 تیر 1396، 05:08 ب‌ظ »
موضوع مربوط به پنج‌سال پیشه. لطفاً موضوع‌های قدیمی رو بالا نیارید و موضوع جدید بسازید.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن