این دوره طراحی شده است تا به شما یاد دهد چگونه سیستم عامل چندوظیفه ای و هسته خود را از ابتدا ایجاد کنید. فرض بر این است که شما هیچ تجربه ای در هسته های برنامه نویسی ندارید و از پایه به شما آموزش داده می شود.
توسعه حالت واقعی
حالت واقعی یک حالت قدیمی در تمام پردازندههای اینتل است که باعث میشود پردازنده در حالت قدیمی شروع به کار کند، مانند پردازندههای قدیمی 8086 اینتل عمل میکند.
در بخش "توسعه حالت واقعی" دوره، با یادگیری در مورد فرآیند بوت و نحوه عملکرد حافظه شروع می کنیم، سپس به ایجاد بوت لودر خودمان می رویم که روی ماشین واقعی خود آزمایش می کنیم! این بوت لودر یک خروجی ساده "Hello World!" به صفحه پیام دهید و ما این بوت لودر را به زبان کاملا اسمبلی می نویسیم.
در این بخش همچنین یک بخش (512 بایت) از هارد دیسک را می خوانیم و همه چیز را در مورد وقفه ها در حالت واقعی و نحوه ایجاد آنها می آموزیم.
این بخش به شما مزه خوبی در توسعه هسته می دهد، بدون اینکه شما را با اطلاعات آزار دهد. اصول اولیه و به اندازه کافی در مورد پردازنده های قدیمی به شما آموزش داده شده است تا بتوانید در این دوره به سمت توسعه هسته مدرن تر حرکت کنید.
توسعه حالت محافظت شده
در این بخش یک هسته 32 بیتی چند وظیفه ای ایجاد می کنیم که دارای سیستم فایل FAT16 است. هسته ما از مکانیسمهای حفاظتی و امنیتی داخلی اینتل استفاده میکند که به ما اجازه میدهد به پردازنده دستور دهیم هسته خود را محافظت کند و از آسیب دیدن برنامههای کاربر به آن جلوگیری کند.
این بخش بسیار عمیق است، همه چیز در مورد صفحه بندی و حافظه مجازی به شما آموزش داده می شود. ما از دستورالعملهای هوشمندانه در پردازندههای اینتل استفاده میکنیم تا به همه فرآیندها اجازه دهیم آدرسهای حافظه یکسانی را به اشتراک بگذارند، این به عنوان مجازیسازی حافظه شناخته میشود. ما آدرسهای حافظه را نقشهبرداری میکنیم تا به آدرسهای حافظه فیزیکی مختلف اشاره کنیم تا این توهم ایجاد کنیم که هر فرآیندی که در حال اجرا است در یک آدرس بارگذاری میشود. این یک تکنیک بسیار متداول در توسعه هسته است و همچنین نحوه عملکرد فایلهای swap است (فایلهایی که برای جبران کمبود RAM قابل استفاده استفاده میشوند).
ما لایه سیستم فایل مجازی خود را ایجاد می کنیم که از طرحی شبیه به هسته لینوکس استفاده می کند. این انتزاع هوشمندانه که به شما آموزش داده خواهد شد از دانش مربیان در زمینه نوشتن درایورهای هسته لینوکس در گذشته او الهام گرفته شده است.
در مورد طراحی سیستم فایل FAT16 و نحوه تجزیه سیستم فایل FAT16 به خوشه ها و اینکه آنها می توانند به یکدیگر زنجیره ای بزنند به شما آموزش داده شده است. سپس درایور سیستم فایل FAT16 خودمان را پیاده سازی می کنیم که اجازه می دهد فایل ها متولد شوند!
ما عملکردها را برای وظایف و فرآیندها پیاده سازی می کنیم و درایورهای صفحه کلید خود را می نویسیم.
در این دوره همچنین میتوانید نحوه عملکرد مدیریت حافظه را بیاموزید، ما توابع «malloc» و «free» را پیادهسازی میکنیم که پشتههای خودمان را ایجاد میکنیم که برای پیگیری حافظههای مورد استفاده طراحی شده است. مدیریت حافظه در هر سیستم عامل و هسته ضروری است.
فراموش نکنیم که ما حتی یک بارکننده فایل ELF ایجاد می کنیم، همه برنامه های سیستم عامل خود را در فایل های ELF کامپایل می کنیم و اجازه بارگذاری برنامه های باینری یا برنامه های ELF را می دهیم. فایلهای ELF حاوی اطلاعات زیادی هستند که برنامه ما را توصیف میکنند، مثلاً جایی که برنامه ما باید در حافظه بارگذاری شود و بخشهای مختلف برنامه.
در پایان این دوره، شما یک هسته چندوظیفه ای 32 بیتی کاملاً کارآمد خواهید داشت که می تواند چندین فرآیند و وظایف را به طور همزمان اجرا کند. شما یک پوسته کار خواهید داشت که ما نیز می توانیم از آن استفاده کنیم.
جایزه زبان اسمبلی
اگر در این دوره کمی با زبان اسمبلی مشکل دارید، این بخش امتیازی است که برای بالا بردن مهارتهای اسمبلی شما طراحی شده است. با این حال توصیه می شود با تجربه در زبان اسمبلی به این دوره بیایید، ما از آن استفاده می کنیم و مهم است. اگر میخواهید بدون تجربه اسمبلی شانسی را در این دوره امتحان کنید، این بخش به شما کمک میکند در مسیر درست راهنمایی کنید تا بتوانید آنچه را که آموختهاید استفاده کنید و آن را در هسته اعمال کنید.
توسط متخصصی که ماژول های هسته لینوکس را به صورت حرفه ای در محل کار ایجاد کرده است، آموزش داده شده است. 15 سال تجربه به عنوان مهندس نرم افزار
همیشه چیزهای بیشتری برای یادگیری وجود دارد
نمایش نظرات