امروز ميخوام تو اين مطلب درباره ساخت سيستم عامل توضيحاتي رو بدم. تو اين پست من ميخوام اول مواد مورد نياز براي ساخت سيستم عامل رو بگم.
-
براي ساخت سيستم عامل اول شما بايد با زبان سطح پايين يعني اسمبلي آشنايي كامل داشته باشيد. يا حداقل به صورت نصفه و نيمه با اون آشنايي داشته باشيد. ولي حتما بايد كم كم به صورت كامل با اين زبان آشنا بشيد.
-
بعد از زبان اسمبلي بلد بودن زبان سي يا سي++ هم ميتونه خيلي كمك كنه. الته به نظر من زبان سي ميتونه سرعت و كارايي بيشتري داشته باشه. سي ++ درسته كه راحتتره ولي نسبت به سي سرعت كمتري داره.
-
شما بايد با طريقه كاركرد پردازنده، حافظه اصلي(رم) و ساير سختافزارها(مثل هارد، صفحه كليد، ماوس و...) آشنا باشيد تا بتونيد براي اونا برنامه بنويسيد.
اينايي كه گفتم اطلاعاتي بود كه بايد حتما بلد باشيد. براي ساخت سيستم عامل شما بايد مراحل زير رو انجام بديد:
- ساخت بوت لودر
- طراحي يك هسته اوليه
- طراحي هسته اصلي
- نوشتن راهانداز براي سخت افزارها
- نوشتن توابع API براي سيستم عامل
- طراحي نرافزارهاي كاربردي براي توسعه سيستمعامل
اين مراحل، مراحلي بودند كه براي ساخت يك سيستم عامل موفق و كاربردي حتما مورد نياز هستند. در زير موارد بالا را توضيح ميدم.
بوت لودر
بوت لودر يك تكه برنامهاي هست كه وظيفه داره هسته سيستم عامل رو بارگذاري كنه. اين تكه برنامه در اولين سكتور حافظه جانبي كه به سكتور راهانداز معروف هست قرار ميگيره. اين حافظه جانبي ميتونه فلاپي يا هارد يا هر حافظهي ديگري باشه. البته براي شروع من فلاپي رو به شما پيشنهاد ميكنم. به دليل اينكه اندازهي هر سكتور 512 بايت هستش، بوت لودر ما نبايد اندازش از 512 بايت بيشتر بشه. حتي نبايد اندازش كمتر هم باشه. دليلش هم اينه كه بوت لودر دو بايت مخصوص داره. اونم بايتهاي 511 و 512 هستش. به اين بايتها، بايت امضاء ميگن. اين دو بايت دو مقدار مخصوص دارن. اگر اين دو مقدار توي اين بايتها نباشن، كامپيوتر اون رو يك بوت لودر نميشناسه و اون رو بار گذاري نميكنه. در ضمن بوتلودر بهتره كه با اسمبلي نوشته بشه. البته فكر نكنم بشه بوتلودر رو با سي بنويسيد. چون توي كامپيوترهاي قديمي اجرا نميشه. ولي تو كامپيوترهاي جديد ميشه با سي هم بوتلودر نوشت. خوب كد زير يك نمونه كد بوت لودر هست كه با اسمبلي نوشته شده:
org 0x7c00
bits 16
Start:
cli
hlt
times 510 - ($-$$) db 0
dw 0xAA55
ادامهي اين مطلب را در اين آدرس مشاهده نماييد