PDA

View Full Version : سوال: کتاب در مورد توسعه هسته یا نوشتن سیستم عامل



mahdi7s
یک شنبه 31 مرداد 1389, 22:45 عصر
با سلام

من در این مورد خیلی کم کتاب دیدم یا یکی دوتا هم که دیدم چندان مطالب عملی نداشته و بیشتر تئوری بوده
می خواستم بدونم نظر شما در این مورد چیه و کدوم کتاب رو پیشنهاد می کنید؟

ممنون

blue_lotus
دوشنبه 01 شهریور 1389, 09:59 صبح
سلام دوست عزیز

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

اگر کتابی میخواین که با کدنویسی و توضیحات باشه. minix و LDD3 هست.

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

Ropser
دوشنبه 01 شهریور 1389, 10:06 صبح
بحث توسعه ی سیستم عامل یک بحث عمومی مثل WebApp ها یا WinApp ها نیست که برای فراگیریش چندتا کتاب اماده داشته باشی که بعد خوندنشون دیگه بتونی برای خودت یه سیستم عامل بنویسی.

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

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

pswin.pooya
دوشنبه 01 شهریور 1389, 21:18 عصر
بهترین منبع برای یادگیری:
http://wiki.osdev.org/Main_Page

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

همینطور من سعی در راه اندازی یک سایت فارسی برای اینکار دارم که متاسفانه با محدودیتهای خیلی زیادی برای اینکار رو به رو هستم (نیازمند یاری سبزتان هستیم):
http://wiki.osdev.ir/

blue_lotus
چهارشنبه 03 شهریور 1389, 17:32 عصر
http://kernelnewbies.org/Documents/Kernel-Docbooks
http://kernelnewbies.org/KernelBooks

به غیر از منابع بالا. داکبوک و کتابهایی که سایت بالا معرفی کرده یکی از فوق العاده ترین کتابهای کرنل هستن.
کتاب Linux Kernel Development ۲۰۱۰ یک نسخه جدید داده که فوق العاده هست.
همچنین همراه با سورس قسمت های مورد بحث از کرنل لینوکس.

mahdi7s
چهارشنبه 10 شهریور 1389, 13:10 عصر
سلام

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

با توجه به گفته های شما دوستان:
کتاب Design and implementation os که روی minix متمرکز شده رو دیدم و 40 صفحه ای هم خواندم ولی می دونم که بدردم نمی خوره و نمی خونمش!
1)چون انگلیسی خودم خوب نیست! 2)کتاب آمده و برخی از تکه کد این سیستم عامل رو بررسی کرده و از نظر من این بیشتر شبیه یه کنفرانس هست تا یک آموزش!

2 فصل از کتاب Linux Kernel Development 2010 رو هم خوندم میشه گفتم نسبتا کتاب خوبیه و میشه یه چیزهایی ازش یادگرفت ولی نه زیاد (به هر حال این یکی رو می خونم!)

به سایت http://wiki.osdev.org/Main_Page هم سر زدم و مطالبی را خواندم و میشه گفت یکی بهترین سایتهایی هست که در این زمینه دیدم. مثلا یکی از مطلب های جذاب (فکرشو نمی کردم) در این سایت دیدم سیستم عامل های نوشته شده با زبان سی شارپ بود!
http://wiki.osdev.org/CSharp
آیا نوشتن یک سیستم عامل با زبانی مثل سی شارپ می تونه یک سیستم عامل مثل ویندوز یا لینوکس تولید کنه؟

کتاب فارسی به دردبخوری وجود داره؟

و سوال اصلیم:
کتابی هست که از شروع تا پایان نحوه نوشتن سیستم عاملی(هر چند کوچیک) رو آموزش داده باشه؟

و نهایتا اگر پیشنهاد دیگری هم دارید من گوش می کنم

ممنون

pswin.pooya
سه شنبه 11 آبان 1389, 10:49 صبح
به سایت http://wiki.osdev.org/Main_Page هم سر زدم و مطالبی را خواندم و میشه گفت یکی بهترین سایتهایی هست که در این زمینه دیدم. مثلا یکی از مطلب های جذاب (فکرشو نمی کردم) در این سایت دیدم سیستم عامل های نوشته شده با زبان سی شارپ بود!

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


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