نحوه ساخت سیستم عامل رایانه: 13 مرحله (همراه با تصاویر)

فهرست مطالب:

نحوه ساخت سیستم عامل رایانه: 13 مرحله (همراه با تصاویر)
نحوه ساخت سیستم عامل رایانه: 13 مرحله (همراه با تصاویر)

تصویری: نحوه ساخت سیستم عامل رایانه: 13 مرحله (همراه با تصاویر)

تصویری: نحوه ساخت سیستم عامل رایانه: 13 مرحله (همراه با تصاویر)
تصویری: محیط توسعه خود را حرفه ای کنید - تبدیل اوبونتو ساده به حرفه ای 2024, آوریل
Anonim

این wikiHow به شما می آموزد که چگونه برنامه ریزی کرده و یک سیستم عامل را توسعه دهید اگر نمی دانید چگونه در C یا C ++ کدگذاری کنید. سیستم عامل ها سخت افزار رایانه را مدیریت می کنند و منابعی را که برنامه ها برای اجرا نیاز دارند ، فراهم می کنند. نوشتن یک سیستم عامل از ابتدا مستلزم تسلط قوی به علوم کامپیوتر ، یک زبان برنامه نویسی مانند C یا C ++ ، مونتاژ و شیوه های مدیریت کد است.

مراحل

قسمت 1 از 2: یادگیری اصول اولیه

ساخت سیستم عامل کامپیوتر مرحله 1
ساخت سیستم عامل کامپیوتر مرحله 1

مرحله 1. برخی از دوره های اساسی علوم کامپیوتر را بگذرانید

برخلاف توسعه برای وب ، ایجاد یک سیستم عامل نیاز به درک قوی از الگوریتم ها ، ساختار داده ها ، سخت افزار کامپیوتر و مدیریت منابع دارد. افراد در این زمینه مدرک می گیرند ، بنابراین انتظار نداشته باشید که پس از مطالعه یک آموزش آنلاین یک سیستم عامل کامل بنویسید! دوره آشنایی هاروارد با علوم کامپیوتر بصورت آنلاین از طریق EDX بدون هیچ هزینه ای در دسترس است.

ساخت سیستم عامل کامپیوتر مرحله 2
ساخت سیستم عامل کامپیوتر مرحله 2

مرحله 2. یک زبان برنامه نویسی سطح بالا مانند پایتون را بیاموزید

هنگامی که درک کاملی از علوم کامپیوتر دارید ، گام بعدی تسلط بر C و/یا C ++ است. مانند یادگیری در مورد علوم کامپیوتر ، تسلط بر زبان اختیاری نیست-اگر نتوانید برنامه های جامد بنویسید ، نمی توانید یک سیستم عامل را کدگذاری کنید.

اگر کاملاً با C آشنا هستید ، دوره آموزشی Dartmouth's C Programming: Getting Started را مطالعه کنید که از طریق EDX رایگان است. پس از اتمام آن دوره ، می توانید دوره بعدی این سری را بگذرانید: C Programming: Language Foundations. سپس ، به دوره های بعدی مانند برنامه نویسی مدولار و مدیریت حافظه و اشاره گرها و مدیریت حافظه بروید

ساخت سیستم عامل کامپیوتر مرحله 4
ساخت سیستم عامل کامپیوتر مرحله 4

مرحله 3. زبان اسمبلی را بیاموزید

زبانهای اسمبلی زبانهای سطح پایینی هستند که برای ارتباط با پردازنده های مختلف طراحی شده اند. از آنجا که مونتاژ برای انواع مختلف پردازنده (به عنوان مثال ، زبان اسمبلی x86 برای Intel ، AMD ، VIA و سایر پردازنده ها) متفاوت است ، باید نسخه مربوط به نوع پردازنده ای را که برای آن کد می نویسید ، بیاموزید.

  • این کتاب منبع باز ، اگر به طور کامل مطالعه شود ، می تواند درک کافی کافی برای ایجاد یک سیستم عامل به شما ارائه دهد.
  • Art of Assembly یک کتاب بسیار توصیه شده در مورد مونتاژ است که هم به صورت آفلاین و هم به صورت آفلاین در دسترس است.
  • همچنین باید در مورد نوع پردازنده (ها) که سیستم عامل شما باید بر روی آنها کار کند ، تحقیقات زیادی انجام دهید. کتابچه های راهنمای معماری پردازنده را می توانید با استفاده از جستجوی Google ("راهنمای Intel" ، "راهنمای ARM" و غیره) به راحتی پیدا کنید.
ساخت سیستم عامل کامپیوتر مرحله 5
ساخت سیستم عامل کامپیوتر مرحله 5

مرحله 4. آموزش سیستم عامل را تکمیل کنید

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

  • Bare Bones یک آموزش است که به شما کمک می کند اولین هسته ساده 32 بیتی خود را بنویسید. پس از اتمام آموزش ، مرحله بعدی این است که از Meaty Skeleton برای ایجاد سیستم عامل خود استفاده کنید.
  • Linux from Scratch یک کتاب آنلاین است که شما را در ایجاد سیستم عامل لینوکس خود راهنمایی می کند.
  • سیستم عامل های 0 تا 1 یک کتاب رایگان در مورد ایجاد سیستم عامل های مختلف از ابتدا تا انتها است.
ساخت سیستم عامل کامپیوتر مرحله 3
ساخت سیستم عامل کامپیوتر مرحله 3

مرحله 5. اهداف سیستم عامل خود را مشخص کنید

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

  • توسعه را با تیمی از برنامه نویسان دیگر در نظر بگیرید. داشتن تیم توسعه دهندگان که روی پروژه کار می کنند زمان توسعه را به میزان قابل توجهی کاهش می دهد.
  • اهداف پروژه ، طرح ها و س questionsالات خود را به مخزن عمومی خود اضافه کنید تا دیگران بتوانند به شما کمک کنند.

قسمت 2 از 2: ایجاد سیستم عامل خود

از رایانه لذت ببرید مرحله 16
از رایانه لذت ببرید مرحله 16

مرحله 1. یک محیط توسعه را انتخاب کنید

این پلتفرمی است که از آن برای کدگذاری سیستم عامل جدید خود استفاده می کنید. این به ترجیح شخصی بستگی دارد ، اما اکثر مردم یا از ویندوز استفاده می کنند یا از طعم یونیکس استفاده می کنند. اگر از ویندوز استفاده می کنید ، ایده خوبی است که محیط UNIX مانند Cygwin یا MinGW را نصب کنید. شما عموماً می خواهید مطمئن شوید هر محیطی که استفاده می کنید شامل موارد زیر باشد:

  • GCC (کامپایلر Gnu). اگر از ویندوز استفاده می کنید ، می توانید آن را در Cygwin یا MinGW نصب کنید.
  • Binutils مجموعه ای از ابزارهایی است که برای دستکاری فایل های شی استفاده می شود. مجدداً ، اگر از ویندوز استفاده می کنید ، می توانید آن را در Cygwin نصب کنید.
  • یک ویرایشگر متن خوب Vim و emacs معمولاً در محیطهای UNIX استفاده می شود. کاربران ویندوز می توانند از Notepad استفاده کنند ، یا Notepad ++ را برای ارتقاء چند برگه مشاهده کنند.
  • پرل و/یا پایتون. یکی یا هر دو برای دستکاری رشته توصیه می شود.
ساخت سیستم عامل کامپیوتر مرحله 13
ساخت سیستم عامل کامپیوتر مرحله 13

مرحله 2. سیستم کنترل نسخه خود را راه اندازی کنید

نوشتن یک سیستم عامل به این معنی است که احتمالاً صدها (یا هزاران!) خط کد ایجاد می کنید. وقتی در حال کار روی نسخه های بازنگری شده هستید ، ممکن است گیج کننده باشد. برخی از گزینه های مورد بررسی عبارتند از CVS ، Mercurial و Subversion.

ساخت سیستم عامل کامپیوتر مرحله 6
ساخت سیستم عامل کامپیوتر مرحله 6

مرحله 3. در مورد بوت لودر تصمیم بگیرید

اگر نمی خواهید خود را ایجاد کنید ، می توانید از موجودی مانند Grand Unified Bootloader (GRUB) استفاده کنید. اگر به اندازه کافی جسور هستید که یک بوت لودر را کد کنید ، Rolling Your Own Bootloader را در OSDev.org ببینید.

ساخت سیستم عامل کامپیوتر مرحله 9
ساخت سیستم عامل کامپیوتر مرحله 9

مرحله 4. یک طرح هسته انتخاب کنید

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

ساخت سیستم عامل کامپیوتر مرحله 12
ساخت سیستم عامل کامپیوتر مرحله 12

مرحله 5. از کوچک شروع کنید

قبل از حرکت به مواردی مانند مدیریت حافظه و انجام چند وظیفه ، از کارهای کوچکی مانند نمایش متن و وقفه ها شروع کنید. همچنین می توانید به جای یک جهش بزرگ ، یک سیستم عامل ساده 16 بیتی بسازید.

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

ساخت سیستم عامل کامپیوتر مرحله 14
ساخت سیستم عامل کامپیوتر مرحله 14

مرحله 6. سیستم عامل جدید خود را با ماشین مجازی آزمایش کنید

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

ساخت سیستم عامل کامپیوتر مرحله 15
ساخت سیستم عامل کامپیوتر مرحله 15

مرحله 7. یک "نامزد آزادی" را آزاد کنید

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

با کامپیوتر سرگرم شوید مرحله 28
با کامپیوتر سرگرم شوید مرحله 28

مرحله 8. با سایر توسعه دهندگان سیستم عامل شبکه کنید

یک جامعه کامل از توسعه دهندگان سیستم عامل در انجمن های مختلف گرد هم آمده اند ، از جمله /r /osdev در Reddit و Exchange Engineering Engineering Software. یکی که با توسعه یک سیستم عامل اصلی آشنا شده اید ، پست های موجود را بخوانید تا ببینید چه چیزهایی در طول فرایند توسعه به وجود می آید.

ویدئو - با استفاده از این سرویس ، ممکن است برخی از اطلاعات با YouTube به اشتراک گذاشته شود

نکات

  • اگر می خواهید سیستم شما پایدار باشد ، ویژگی های امنیتی را به عنوان اولویت اصلی خود پیاده سازی کنید.
  • پس از انجام کلیه مراحل ، تصمیم بگیرید که آیا می خواهید کد را به عنوان منبع آزاد یا اختصاصی منتشر کنید.
  • برای اینکه یک سیستم عامل بتواند چندین پردازنده را اداره کند ، Memory Manager شما باید مکانیزم های "قفل" را برای جلوگیری از دسترسی همزمان چندین پردازنده به یک منبع داشته باشد. "قفل" هایی که برای این مورد استفاده می شود نیاز به حضور زمانبندی دارد تا مطمئن شود که فقط یک پردازنده در هر زمان به یک منبع مهم دسترسی پیدا می کند و بقیه منتظر می مانند. با این حال زمانبندی به حضور مدیر حافظه بستگی دارد. این یک مورد وابستگی به بن بست است. هیچ راه استانداردی برای حل چنین مشکلاتی وجود ندارد. به عنوان یک برنامه نویس ، از شما انتظار می رود که به اندازه کافی مهارت داشته باشید تا روش خود را برای مقابله با آن مشخص کنید.
  • یک سیستم عامل نیز می تواند کاربر پسند باشد. اطمینان حاصل کنید که ویژگی های کاربرپسند را اضافه کرده و اینها را جزء لاینفک طراحی خود کنید.
  • ملحق نشوید انجمن های OSDev.org را شروع کرده و س askingالات واضح را شروع کنید. به سادگی منجر به آن می شود "دفترچه راهنما را بخوانید" پاسخ می دهد شما باید ویکی پدیا و کتابچه های راهنمای ابزارهای مختلفی را که مایل به استفاده از آنها هستید مطالعه کنید.
  • شروع نکن یک پروژه سیستم عامل برای شروع یادگیری برنامه نویسی. اگر قبلاً C ، C ++ ، پاسکال یا هر زبان مناسب دیگری از جمله دستکاری اشاره گر ، دستکاری بیت در سطح پایین ، تغییر بیت ، زبان مونتاژ داخلی و غیره را نمی دانید ، برای توسعه سیستم عامل آماده نیستید. به
  • اگر کاری غیرمنتظره انجام دهید ، مانند نوشتن بایت های تصادفی به پورت های ورودی/خروجی تصادفی ، سیستم عامل خود را خراب می کنید و می توانید (از لحاظ تئوری) سخت افزار شما را سرخ کنید.

توصیه شده: