آموزش ساخت سیستم عامل ۳۰۰ خطی از صفر (مبتنی بر x86) - آخرین آپدیت

دانلود Build an 300 lines Operating System From Scratch (x86 base)

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

چگونه یک سیستم عامل x86 با استفاده از نرم‌افزار مجازی‌سازی QEMU، کد اسمبلی و C ایجاد کنیم؟

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

آنچه در این دوره خواهید آموخت:

  • مفاهیم کدنویسی سیستم عامل.
  • نحوه راه‌اندازی ابزارها و محیط توسعه سیستم عامل در ویندوز.
  • نحوه اجرای تمامی کدهای مثال عملی.
  • فرآیند بوت (Boot) کامپیوتر با CPU x86.
  • مدل برنامه‌نویسی اسمبلی CPU x86.
  • آشنایی با وقفه‌ها (Interrupts) و تایمرها.
  • مبانی زمان‌بندی (Scheduling).
  • نقشه‌برداری حافظه (Memory Mapping): چیست و چگونه کار می‌کند.
  • فراخوان سیستمی (System Call) چیست و نحوه پیاده‌سازی آن‌ها.
  • سیستم صفحه‌بندی (Paging) چگونه کار می‌کند و نحوه پیاده‌سازی آن.
  • نحوه ایجاد وظایف (Tasks) از دیدگاه سیستمی.
  • مسئولیت‌های سخت‌افزار و نرم‌افزار در عملکرد سیستم عامل.

پیش‌نیازها:

  • دانش پایه از معماری CPU x86.
  • آشنایی پایه با زبان‌های اسمبلی و C.
  • مفاهیم پایه سیستم عامل.
  • آشنایی اولیه با خط فرمان (مانند make, gcc و غیره).

این پیش‌نیازها بسیار ابتدایی هستند؛ نیازی نیست که یک متخصص باشید، زیرا من در ویدئوها خط به خط کد را به شما نشان خواهم داد و تمام مراحل را توضیح خواهم داد.

این دوره، هم مفاهیم نظری سیستم عامل (OS) و هم کاربرد عملی آن‌ها را پوشش می‌دهد. ابتدا مفاهیم کلیدی سیستم عامل را معرفی خواهیم کرد که سپس مستقیماً در توسعه مینی سیستم عامل ۳۰۰ خطی ما به کار گرفته خواهند شد. شما در مورد مسئولیت‌های سخت‌افزار و نرم‌افزار، از فرآیند بوت CPU گرفته تا زمان‌بندی (Scheduling)، وقفه‌ها (Interrupts)، تایمرها، فراخوان‌های سیستمی (System Calls)، نقشه‌برداری حافظه (Memory Mapping)، صفحه‌بندی (Paging) و غیره، آموزش خواهید دید.

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

امیدوارم همه شما از این آموزش لذت ببرید. از هرگونه بازخورد یا پیشنهاد شما برای محتوای آینده بسیار سپاسگزار خواهم بود. بهترین راه برای کمک به من این است که یک بررسی (review) بنویسید و لینک کلاس را با دوستان خود به اشتراک بگذارید. در حال حاضر قصد دارم پس از این دوره، یک دوره دیگر در مورد نحوه درک کامل کد منبع کرنل لینوکس (نسخه ۰.۱۱.۰) ارائه دهم.

پرسش و پاسخ (Q&A):

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


سرفصل ها و درس ها

Introduction

  • مقدمه‌ای بر مینی‌او‌اس x86 Introduction to x86 minios

  • تنظیم ابزارها برای کامپیوتر ویندوز Tools setup for windows computer

  • ایجاد و اجرای پروژه سیستم‌عامل با قالب OS create project with template and run

  • جریان بوت BIOS در x86 X86 boot bios flow

  • مدل برنامه‌نویسی CPU x86 X86cpu program model

  • کپی کردن خود minios به RAM Copy minios itself to ram

  • رفتن به حالت محافظت‌شده Go to protected mode

  • فعال‌سازی سیستم صفحه‌بندی (نگاشت حافظه) – مهم Enable paging system (memory mapping) important

  • فعال‌سازی تایمر Enable timer

  • تغییر از حالت کرنل سیستم به حالت کاربر Switch to user mode from kernel system mode

  • ایجاد وظایف Create tasks

  • افزودن فراخوانی سیستمی Add system call

  • استفاده از LDT برای هر وظیفه use LDT for each task

نمایش نظرات

آموزش ساخت سیستم عامل ۳۰۰ خطی از صفر (مبتنی بر x86)
جزییات دوره
4.5 hours
13
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
224
4.2 از 5
دارد
دارد
دارد
Mike jiang
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Mike jiang Mike jiang

مهندس ارشد نرم افزار جاسازی شده