نحوه برنامه ریزی سیستم عاملهای بسیار شخصی خود (OS)

افشای: پشتیبانی شما به حفظ سایت کمک می کند! ما برای برخی از خدماتی که در این صفحه توصیه می کنیم هزینه ارجاع دریافت می کنیم.

در حقیقت هیچ زمینه توسعه ای چالش برانگیزتر از توسعه سیستم عامل (OS) نیست. این “اوج بزرگ برنامه نویسی” است.

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

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

سیستم عامل چیست؟?

اولین کامپیوترها سیستم عامل نداشتند.

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

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

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

سیستم عامل (OS) نرم افزاری است که سخت افزار کامپیوتر و منابع سیستم را مدیریت می کند و ابزاری را که برنامه ها برای کار با آن نیاز دارند فراهم می کند. تولد سیستم عامل ها به این معنی بود که دیگر برنامه هایی برای کنترل کل دامنه عملکرد رایانه ها نیازی به نوشتن ندارند.

در عوض ، برنامه های رایانه ای می توانند نوشته شوند که توسط سیستم عامل اجرا شوند در حالی که سیستم عامل نگران منابع رایانه ای و تجهیزات جانبی متصل به دستگاه مانند چاپگرها و خواننده های کارت کاغذ سوراخ شده است.

تاریخچه مختصر سیستم های عامل

اولین سیستم عامل در سال 1956 توسط جنرال موتورز ایجاد شد تا یک رایانه اصلی IBM را اجرا کند. سایر دارندگان اصلی IBM از این سیستم پیروی کردند و سیستم عاملهای خود را ایجاد کردند.

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

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

با این حال ، IBM تنها فروشنده در این مدت سیستم عامل ایجاد نکرده است. شرکت کنترل داده ها ، شرکت علوم کامپیوتر ، شرکت Burroughs ، GE ، شرکت تجهیزات دیجیتال و زیراکس همگی سیستم عامل اصلی را در دهه 1960 منتشر کردند..

در اواخر دهه 1960 نسخه اول سیستم عامل یونیکس تولید شد. یونیکس به راحتی به سیستم های جدید منتقل شد و به سرعت در سطح گسترده ای پذیرش شد.

بسیاری از سیستم عامل های مدرن ، از جمله Apple OS X و تمام طعم های لینوکس ، ریشه های خود را به یونیکس ردیابی می کنند.

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

اولین سیستم عامل ساخته شده توسط مایکروسافت ویندوز نامگذاری نشده است ، آن را MS-DOS نامیده می شود و در سال 1981 با خرید سیستم عامل 86-DOS از محصولات سیاتل کامپیوتر و اصلاح آن برای پاسخگویی به نیاز IBM ساخته شد..

نام ویندوز برای اولین بار در سال 1985 استفاده شد که یک رابط کاربری گرافیکی ایجاد شد و با MS-DOS جفت شد.

Apple OS X ، Microsoft Windows و اشکال مختلف لینوکس (از جمله Android) اکنون اکثریت قریب به اتفاق بازار سیستم عامل مدرن را فرماندهی می کنند.

قسمتهای یک سیستم عامل

سیستم های عامل از دو بخش اصلی ساخته شده اند:

  • هسته؛
  • برنامه های سیستم.

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

برنامه های سیستم بالای هسته حرکت کنید. در عوض از آنها برای انجام کارهای مفید استفاده نمی شوند ، در عوض ، آنها برنامه های لازم برای اتصال هسته به برنامه های کاربر و دستگاه های جانبی هستند. درایورهای دستگاه ، سیستم فایلها ، برنامه های شبکه و برنامه های کاربردی سیستم مانند Defragmeters دیسک ، همه نمونه برنامه های سیستم هستند.

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

چه چیزی میخواهید بدانید

لیست چیزهایی که شما باید قبل از تلاش برای توسعه سیستم عامل بدانید بسیار طولانی است. سه مهمترین چیزهایی که شما باید قبل از پرش به توسعه سیستم عامل آن را یاد بگیرید:

  • دانش پایه علوم کامپیوتر؛
  • نظریه برنامه نویسی رایانه و بهترین روشها؛
  • زبان های برنامه نویسی سطح پایین و سطح بالا.

علوم کامپیوتر را بیاموزید

توسعه سیستم عامل مانند توسعه وب نیست. این چیزی نیست که بتوانید به آنجا بروید و یاد بگیرید. شما باید قبل از انتقال به موضوعات دیگر ، پایه و اساس محکمی در علم کامپیوتر ایجاد کنید.

در اینجا چند منبع برای شروع کار آمده است:

کورسرا: علوم کامپیوتر 101 البته اگر در زمینه برنامه نویسی کامپیوتر و علوم رایانه ای کاملاً جدید هستید باید اولین دوره را طی کنید.

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

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

edX: مقدمه ای بر علوم کامپیوتر کامل ترین و عمیق ترین دوره علوم کامپیوتر در این لیست است. این دوره رایگان و گام به گام توسط دانشگاه هاروارد طراحی شده است و مطالب ارائه شده در این دوره را با همین نام ارائه شده در پردیس دانشگاه هاروارد آینه می دهد..

در این دوره بسیار دور با الگوریتم ها ، ساختار داده ها ، مدیریت منابع ، مهندسی نرم افزار آشنا می شوید و به زبان های برنامه نویسی مانند C ، PHP و JavaScript نگاهی می اندازید..

برنامه نویسی رایانه را بیاموزید

با درک کاملی از علوم رایانه در زیر کمربند خود و تجربه محدود با زبان های برنامه نویسی ، گام بعدی یادگیری چگونگی مقابله با یک پروژه برنامه نویسی در مقیاس بزرگ است..

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

یادگیری زبان های برنامه نویسی

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

  • زبان مونتاژ سطح پایین؛
  • یک زبان برنامه نویسی سطح بالا.

از زبانهای مونتاژ برای ارتباط مستقیم با یک CPU استفاده می شود. هر نوع CPU با یک زبان ماشین صحبت می کند و برای هر نوع CPU فقط یک زبان مونتاژ مربوطه وجود دارد. معمول ترین معماری رایانه x86 است ، در ابتدا توسط اینتل ساخته شده است و اکنون توسط طیف گسترده ای از تولید کنندگان تراشه رایانه ای از جمله AMD ، VIA و بسیاری دیگر استفاده می شود. در این راهنما شما را به سمت یادگیری زبان مونتاژ x86 می گوییم.

زبانهای برنامه نویسی سطح بالا با معماری های رایانه ای متعدد کار می کنند. C زبان برنامه نویسی است که بیشتر برای نوشتن سیستم عامل ها مورد استفاده قرار می گیرد. به همین دلیل ، ما قصد داریم یادگیری و استفاده از C را برای توسعه سیستم عامل توصیه کنیم. با این حال ، زبانهای دیگری مانند C ++ و Python نیز قابل استفاده هستند.

x86 مجمع زبان

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

برنامه نویسی از Ground Up توسط جاناتان بارتلت یکی از کتاب های تعریف کننده چشم انداز زبان مونتاژ است. این کتاب از زبان مونتاژ به عنوان پایه ای برای یادگیری علوم کامپیوتر و برنامه نویسی استفاده می کند. این منبع از بایگانی اینترنت نیز موجود است.

هنر زبان مونتاژ توسط رندی هاید یکی دیگر از متن های نمادین در جهان آموزش زبان مونتاژ است. در ابتدا به طور اختصاصی برای دوره های برنامه نویسی هاید در Cal Poly و UC Riverside نوشته شده است ، متن در اواسط دهه 1990 به عنوان یک کتاب HTML منتشر شد و به عنوان یک کار تعیین کننده در این زمینه شناخته می شود. همچنین متن توسط گروه Yale FLINT به صورت یک سری از فایلهای PDF میزبانی می شود.

اگر می خواهید از یک کتاب درسی سنتی برای یادگیری زبان مونتاژ x86 استفاده کنید ، دو مورد از متون متداول و بسیار توصیه شده عبارتند از:

  • زبان مونتاژ گام به گام: برنامه نویسی با لینوکس توسط جف دانتونن؛
  • برنامه نویسی مدرن زبان مجمع X86 توسط دانیل کوسورم.

ج

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

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

C راه سخت را بیاموزید یک کتاب الکترونیکی HTML رایگان است که شامل بسیاری از تمرین های تمرینی است. این متن شما را از طریق زبان برنامه نویسی C کاملاً طی می کند و اگر کار را انجام دهید ، وقت خود را بگذرانید و تمام تمرینات را تمام کنید ، تا زمانی که برنامه نویسی C صالح باشید ، در مسیر خود قرار خواهید گرفت. این آموزش را کامل کنید.

اگر یک کتاب درسی سنتی چیزی است که شما بیشتر می خواهید راه خود را طی کنید ، این دو متن برای تسلط به زبان برنامه نویسی C محبوب ترین هستند.

  • زبان برنامه نویسی C توسط Kernighan و Ritchie؛
  • C برنامه نویسی راهنمای مبتدی مطلق توسط پری و میلر.

آموزشهای توسعه سیستم عامل

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

Linux از Scratch شما را از طریق ساخت یک سیستم عامل کامل لینوکس پیاده می کند. کاملاً این آموزش یک سیستم عامل تمام عیار تولید نخواهد کرد ، اما یک پایه کد کاملی به شما می دهد تا بتوانید یک سیستم عامل کامل تهیه کنید. برای ساخت سیستم عامل اصلی خود به یک نرم افزار مفید ، از آموزش های پیشرفته ای مانند Beyond Linux از Scratch ، Linux Linux از Scratch ، Cross Linux از Scratch یا Hardened Linux از Scratch استفاده کنید..

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

سری توسعه سیستم عامل از Broken Thorn Entertainment مجموعه ای از 25 آموزش است که شما را در روند ایجاد یک سیستم عامل از سطح زمین به بالا می گذراند. مبتدی ها مراقب باشید: این سری فرض می کند که شما راه خود را در اطراف IDE می دانید و یک برنامه نویس صحیح C و زبان مونتاژ هستید.

متون بسیاری وجود دارد که می توانید برای یادگیری در مورد رشته توسعه سیستم عامل استفاده کنید. سه مورد که بیشتر توصیه می شود:

  • سیستم عامل های مدرن توسط Tanenbaum و Bos؛
  • طراحی سیستم عامل UNIX توسط موریس باخ؛
  • مفاهیم سیستم عامل توسط Silberschatz ، Galvin و Gagne.

انجمن های توسعه سیستم عامل

وقتی شروع به توسعه برنامه نویس سیستم می کنید ، چند مکان وجود دارد که می توانید سایر توسعه دهندگان سیستم عامل را بیابید تا از آنها یاد بگیرید و با آنها همکاری کنید:

  • OSDev.org یک ویکی است که اطلاعات زیادی در مورد توسعه سیستم عامل و همچنین تالار گفتگو دارد که می توانید با سایر برنامه نویسان متفکر ملاقات کرده و بازخورد خود را دریافت کنید..
  • کانال توسعه سیستم عامل در reddit یک جامعه عالی است که می توانید در مورد توسعه سیستم عامل بیاموزید و وقتی وظیفه توسعه سیستم عامل کمی دشوار می شود ، لحظه ای از سرعت آن لذت ببرید..
  • علوم کامپیوتر ، برنامه نویسان و StackOverflow از StackExchange مکانهایی هستند که می توانید در هنگام مواجهه با مشکلی که به نظر می رسد به تنهایی خودتان نتوانید سؤالات فنی را برای سایر برنامه نویسان مطرح کنید.

خلاصه

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

مراحل بعدی – به دنبال یک میزبان وب هستید؟ راهنمای ما برای میزبانی وب را مشاهده کنید & میزبانهای پیشنهادی ما.

همچنین راهنماهای دیگر ما راجع به زبان های برنامه نویسی مشاهده کنید.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me