تالار گفتمان مانشت
می خواهم سورس سیستم عامل را دستکاری کنم ! - نسخه‌ی قابل چاپ

می خواهم سورس سیستم عامل را دستکاری کنم ! - simorghsimorgh - 08 اردیبهشت ۱۳۹۲ ۰۸:۳۰ ب.ظ

سلام دوستان

من دوست دارم سورس یک سیستم عامل را با هر نرم افزاری که نوشته شده ، ویرایش کنم و نتیجه ی تغییرات خودم رو ببینم . لطفا به من راهکار پیشنهاد بدین !

اصلا سیستم عامل ها (مثلا همین ویندوز) رو با چه زبان برنامه نویسی می نویسند ؟ من فکر می کنم که چون سی شارپ قابلیت ویندوزی و فرمی داره خیلی برای این کار مناسبه درسته ؟

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

می خواهم سورس سیستم عامل را دستکاری کنم ! - azad_ahmadi - 08 اردیبهشت ۱۳۹۲ ۰۹:۰۰ ب.ظ

برنامه هایی که open source یا متن باز هستند رو می توان تغیراتی درش ایجاد کرد، البته این تغییرات محدود هستند و شامل همه قسمت های برنامه نمیشه، مثلا نواحی حساس برنامه، مانند مدیریت دستگاها، زمانبندی و مدیریت حافظه و این گونه موارد. سیستم عامل لینوکس متن باز هست اما سیستم عامل ویندوز به این صورت نیست و نمیشه درش تغییر ایجاد کرد.
معمولا سیستم عامل ها رو بسته به نیاز با برنامه هایی مانند C و برای نواحی حساس از اسمبلی استفاده میشه که کد سریع تری تولید کنه. در مورد جایی که در رابطه با اینگونه برنامه نویسی کار کنند اطلاعی ندارم.

اطلاعات من در حدی نیست که بتونم بیشتر کمک کنم، انشالله دوستان بهتر راهنمایی می کنن.
موفق باشید.

می خواهم سورس سیستم عامل را دستکاری کنم ! - mfXpert - 08 اردیبهشت ۱۳۹۲ ۱۰:۴۹ ب.ظ

(۰۸ اردیبهشت ۱۳۹۲ ۰۸:۳۰ ب.ظ)simorghsimorgh نوشته شده توسط:  من دوست دارم سورس یک سیستم عامل را با هر نرم افزاری که نوشته شده ، ویرایش کنم و نتیجه ی تغییرات خودم رو ببینم . لطفا به من راهکار پیشنهاد بدین !
سوالی که پیش میاد این هست که چرا می‌خواید کد رو تغییر بدید؟
اما فارغ از اینکه چه جوابی به این سوال میدید باید بگم به طور کلی سروکله زدن با کد سیستم عامل کار جالب و هیجان انگیزی هستش و کار هر کسی هم نیست. نیاز به کلی پیش نیاز داره که اگر خواستید من اونهارو بهتون خواهم گفت.

RE: می خواهم سورس سیستم عامل را دستکاری کنم ! - blackhalo1989 - 09 اردیبهشت ۱۳۹۲ ۱۲:۱۱ ق.ظ

(۰۸ اردیبهشت ۱۳۹۲ ۱۰:۴۹ ب.ظ)mfXpert نوشته شده توسط:  نیاز به کلی پیش نیاز داره که اگر خواستید من اونهارو بهتون خواهم گفت.
بفرمایید

می خواهم سورس سیستم عامل را دستکاری کنم ! - mfXpert - 09 اردیبهشت ۱۳۹۲ ۱۲:۱۱ ب.ظ

موارد زیر صرفا از تجربه‌ی خودم ناشی میشه و ممکنه لزوما ضروری نباشن.

۱- داشتن اطلاعات در مورد مفاهیم سیستم عامل کاملا ضروریه. پیشنهاد خود من خوندن کتاب Design and Implementation of Operating Systems نوشته‌ی تننباوم هستش. این کتاب علاوه بر آموزش مفاهیم سیستم عامل شما رو با کد سیستم عامل MINIX 3 هم تا حدودی آسنا می‌کنه.

۲- آشنایی با سیستم عامل گنو/لینوکس یه جورایی واجبه چون در دسترس‌ترین هسته‌ای که میشه تغییر داد هسته‌ی همین سیستم عامل هستش.

۳- زبان برنامه‌نویسی C (استاندارد) رو یاد بگیرید.

۴- یک کتاب در زمینه آشنایی با هسته‌ی سیستم عامل گنو/لینوکس بخونید مثلا Understanding the Linux Kernel از انتشارات O'reilly

فعلا همین موارد به ذهنم میرسه.

می خواهم سورس سیستم عامل را دستکاری کنم ! - blackhalo1989 - 09 اردیبهشت ۱۳۹۲ ۱۲:۱۷ ب.ظ

احتیاجی به چیزی که معمولا با internals میشناسن نیست؟ (مثلا ساختمان داده هایی که برای پراسس ها نگهداری میشه.)

می خواهم سورس سیستم عامل را دستکاری کنم ! - mfXpert - 09 اردیبهشت ۱۳۹۲ ۰۶:۳۱ ب.ظ

(۰۹ اردیبهشت ۱۳۹۲ ۱۲:۱۷ ب.ظ)blackhalo1989 نوشته شده توسط:  احتیاجی به چیزی که معمولا با internals میشناسن نیست؟ (مثلا ساختمان داده هایی که برای پراسس ها نگهداری میشه.)

در هر فصل از کتابی که در مورد ۴ معرفی کردم یه اشاره‌هایی به ساختمان‌داده‌های لازم (با توجه به نیاز اون فصل) میشه.

RE: می خواهم سورس سیستم عامل را دستکاری کنم ! - ahtech - 21 خرداد ۱۳۹۲ ۱۰:۱۰ ب.ظ

من یه جایی خوندم سورس سیستم عامل اوبونتو یه چیزی حدود ۳۰ گیگه!! میتونی دانلود کنی؟

می خواهم سورس سیستم عامل را دستکاری کنم ! - mfXpert - 21 خرداد ۱۳۹۲ ۱۰:۳۲ ب.ظ

(۲۱ خرداد ۱۳۹۲ ۱۰:۱۰ ب.ظ)ahtech نوشته شده توسط:  من یه جایی خوندم سورس سیستم عامل اوبونتو یه چیزی حدود ۳۰ گیگه!! میتونی دانلود کنی؟
موضوع اول اینکه از هر کجا که این مطلب رو خوندید بدونید که اشتباه بوده.

موضوع دوم اینکه منظوراز دستکاری سیستم عامل، تغییر در هسته سیستم عامل هست. سورس هسته سیستم عامل گنو/لینوکس چیزی در حدود ۷۰ مگ هستش و حجم نسخه کامپایل شدش حدودا ۴۵ مگ میشه

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


می خواهم سورس سیستم عامل را دستکاری کنم ! - one hacker alone - 21 خرداد ۱۳۹۲ ۱۰:۴۳ ب.ظ

با یاد خدا
سلام دوستان
در مورد بحث برنامه نویسی سیستم و بخصوص سیستم عامل دو چیز مطرح هست
اول اینکه اگه شما میخواین کد سیستم عامل رو دستکاری کنید باید به سراغ سیستم عامل های متن باز برید و با توجه به اینکه دوس دارید رو هسته کار کنید پس سورس قابل توسعه کرنل رو دانلود میکنید و بعد براش ماژول مینویسید یا ویرایش میکنید بعد با کامپایلر GCC کامپایل میکنید بعد جایگزین هسته اصلی میکنید و بعدش هم اجرا و مشاهده نتیجه
اما در مورد اینکه خودتون بشینید از صفر سیستم عامل بنویسید باید عرض کنم من خودم مشغول نوشتن هستم و نیاز به یک برنامه نویس برای نوشتن محیط گرافیکیش هستم
همینجا هم اعلام میکنم دوستان هرکی حس نوشتن داره من فیلم تهیه میکنم بهش میدم تا با روند نوشتن و کامپایل و اجرای سیستم عامل اشنا بشه کد سیستم عامل خودم رو هم بهش میدم
اگه مشکلی هم بود هستم خدمت دوستان
اما اونقدر مراحل طولانی و نیاز به دانش معماری سیستم داره که حس توضیح از صفر نیست . معذرت
یادم رفت بگم خود C# برای اجرا نیاز به .NET فریمورک داره و این فریم ورک خودش تو ویندوز اجرا میشه پس اینجا دیگه بی معنی میشه و اصلا امکان پذیر نیست اما خب با ASM و C قابل انجام هست

می خواهم سورس سیستم عامل را دستکاری کنم ! - esi - 22 خرداد ۱۳۹۲ ۰۱:۰۷ ق.ظ

مسلما شما فقط می تونید سیستم های open source یعنی unix based رو دستاکاری کنید مثل انواع لینوکس، FreeBSD و...
من طبق تجریه اندکی که داشتم جهت اطلاع عرض می کنم.
کار زیاد جالبی هستش و می تونید قدرت برنامه نویسی خودتون رو محک بزنید، اگه ایده درست و حسابی دارین باید رویه تمام جنبه های ایدتون فکر کنید. اگه واسه تفریح علمی مخوایید این کار انجام بدید که برید سراغ کتاب های Kernel Programming اونجا کامل توضیح داده. من به طور کلی می گم که چه کارهایی باید انجام بدید:
شما می تونید یکسری قابلت های جدید مثل درایور های جدید، ماژول های قابل بارگذاری در هسته KLM و .... رو ایجاد کنید و به هسته سیستم عامل اضافه کنید. این فایل های به زبان C نوشته میشه و روش ها و اصول خاص خودشو داره، مثلا برای روش های استفاده از توابع درون هسته ای، ایجاد نخ های سطح هسته یا سطح کاربر، ایجاد واسط کاربری و ....
بعد شما باید هسته تغییر یافته رو کامپایل کنید که معمولا با استفاده از یک فایل Make کارهای کامپایل هسته انجام میشه که ریز کارهایی خاص خودشو داره.
بعد از هسته قبلی در صورت نیاز Dump می گیرید و هسته جدید رو بارگذاری می کنید که دستورات خاص خودشو داره مثل دستورات kldload و...
فقط یه توضیح مختصر بود و کار بسیار بیشتر از این حرفاست.