زبان های برنامه نویسی برای نوشتن یک سیستم عامل مستقل

magnetsoft

New Member
سلام سلام
برای نوشتن یک سیستم عامل مستقل از چه زبون برنامه نویسی استفاده کنم؟
 

the_king

مدیرکل انجمن
سلام
می خواستم بدونم که اگه بخوام یه سیستم عامل مستقل بنویسم باید از چه زبان برنامه نویسی استفاده کنم؟

زبان های برنامه نویسی Assembly و C و ++C برای این منظور مناسب اند.

باید کامپایلری داشته باشه که :
  • بتونه با مدل حافظه Tiny (کد برنامه و داده ها جمعا 64 کیلوبایت بیشتر نشه و همه بخش های برنامه
    یکجا در یک سگمنت قرار بگیرند) کار کنه، این مدل حافظه مورد استفاده در فایل های اجرایی COM ئه.
  • خروجی 16 بیتی داشته باشه. کامپایلر هایی که فقط 32 بیتی و یا 64 بیتی اند، مناسب اینکار نیستند.
  • قابلیت استفاده از کد های سطح پایین زبان اسمبلی رو در برنامه ارائه کنه. این قابلیت برای ساختن
    سیستم عامل مورد نیاز است.

مثلا ++MASM، Borland Turbo C و TASM

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

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

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

+Mohammad+

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

موفق باشید - ایام به کام
 

magnetsoft

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

موفق باشید - ایام به کام

ببخشید کنکاو شدم چرا به صورت عملی در آوردن این کار بیهودست؟
البته شاید بتونم حدس بزنم، چون این قدر شرکت قوی وجود دارن که دیگه برای انجام کاری دیر باشه ونشه کاری کرد!!!
 

magnetsoft

New Member
زبان های برنامه نویسی Assembly و C و ++C برای این منظور مناسب اند.

باید کامپایلری داشته باشه که :
  • بتونه با مدل حافظه Tiny (کد برنامه و داده ها جمعا 64 کیلوبایت بیشتر نشه و همه بخش های برنامه
    یکجا در یک سگمنت قرار بگیرند) کار کنه، این مدل حافظه مورد استفاده در فایل های اجرایی COM ئه.
  • خروجی 16 بیتی داشته باشه. کامپایلر هایی که فقط 32 بیتی و یا 64 بیتی اند، مناسب اینکار نیستند.
  • قابلیت استفاده از کد های سطح پایین زبان اسمبلی رو در برنامه ارائه کنه. این قابلیت برای ساختن
    سیستم عامل مورد نیاز است.

مثلا ++MASM، Borland Turbo C و TASM

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

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

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

خوب من می خوام با اسمبلی کد بنویسم، باید دانلود کنم نرم افزار رو دانلود کنم ؛ لینک دانلود می دی؟
اگه زحمتی نیست!
 

the_king

مدیرکل انجمن
خوب من می خوام با اسمبلی کد بنویسم، باید دانلود کنم نرم افزار رو دانلود کنم ؛ لینک دانلود می دی؟
اگه زحمتی نیست!

phatcode.net - Downloads - Compilers

ببخشید کنکاو شدم چرا به صورت عملی در آوردن این کار بیهودست؟
البته شاید بتونم حدس بزنم، چون این قدر شرکت قوی وجود دارن که دیگه برای انجام کاری دیر باشه ونشه کاری کرد!!!

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

shirini_forush

Well-Known Member
البته بهتره بپرسید چرا سیستم عامل بنویسیم؟

شما دلایلش رو بگید اون وقت میشه بیشتر توضیح داد و راه حل کاربردی داد.
 

جدیدترین ارسال ها

بالا