سیستم عامل کوثر

سیستم عامل فارسی کوثر

سیستم عامل کوثر

سیستم عامل فارسی کوثر

سیستم عامل کوثر

سیستم عامل کوثر یک سیستم عامل فارسی بر پایه معماری X86 می باشد. هدف این سیستم عامل تا اطلاع ثانوی آزمایشی / آموزشی می باشد. این سیستم عامل بر پایه هیچ سیستم عامل دیگری مانند لینوکس و ... نمی باشد و از ابتدا توسط توسعه دهندگان آن نوشته شده است.
ما از علاقمندان به برنامه نویسی و طراحی سیستم در همکاری و توسعه این سیستم عامل استقبال می کنیم. نیازی نیست که شما برنامه نویسی و یا ... خبره باشید. حتی با دانش کم هم می توان به ما کمک کرد.
امید است بعد از مراحل آموزشی به مرحله بهره برداری از یک سیستم عامل کاملا بومی برسیم.
emadrezvani@chmail.ir

آخرین نظرات
نویسندگان

معماری سیستم عامل - مدل ها و هسته ها - بخش اول

مازیار نون | شنبه, ۲۱ تیر ۱۳۹۳، ۱۱:۴۹ ق.ظ

سلام

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

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

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

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

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

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

با بوجود آمدن تکنولوژی های متعددی در برنامه نویسی و ساختار دهی سیستم مانند شی گرائی و ماژولار ، باعث شد که تاثیر مهمی بر طراحی سیستم عامل بگذارد از این جهت سیستم عامل ها به صورت لایه ای ساخته شدند و در آن مولفه هایی قرار دارد که هریک فعالیت و عملکرد خاصی را برای سیستم عامل فراهم می کند که این باعث انتزاع بیشتری در سیستم می شود. به این ترتیب مولفه ها می توانند با یکدیگر محاوره داشته باشند به عنوان مثال ، مولفه memory manager با مولفه file manager. این محاوره به نوعی مانند ارتباط اشیاء در جهان واقعی و در مفهوم شی گرایی است. به این صورت که درخواست ها از طریق پیام هایی به یکدیگر فرستاده می شوند.و در نتیجه باعث تجرید مولفه های از یکدیگر می شود.

معماری هسته باعث تقسیم شدن به دو بخش مجزا شد: حالت کاربر و حالت هسته. این دو حالت هر کدام براساس معماری هسته بار مختلفی را به دوش می کشند. به همین خاطر لازم است که هدف سیستم عامل که در بالا ذکر کردم در اینجا تاثیر داشته باشد به عنوان مثال آیا file manager در حالت کاربر باشد یا در حالت هسته؟ به مواردی همچون قابلیت اطمینان فعالیت های برنامه های برنامه کاربر بستگی دارد.مثلاً اگر سیستم عامل برای محیط های توزیعی است ممکن است یک بدافزار تاثیر زیادی روی این مولفه داشته و مسائلی مانند قابلیت اطمینان را تحت شعاع قرار دهد. البته این را هم اضافه کنم که می توان با داشتن این مولفه در سیستم عامل های توزیعی و حتی با وجود بدافزار بدون مشکل جلو رفت ، ولی باید قابلیت اطمینان را نیز در نظر گرفت ، چرا که هرچه نرم افزار گسترش یابد بزرگتر می شود و قابلیت اطمینان در آن کمتر و یا اداره کردن آن مشکل تر خواهد شد.

پس این سوال ممکن است مطرح شود که آیا لازم است که بین مولفه های سطح کاربر و سطح هسته تفاوت قائل شد؟ و این ارتباطات چه تاثیری می تواند داشته باشد؟

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

این مطلب ادامه دارد...

  • مازیار نون

نظرات  (۱)

  • عماد رضوانی
  • سلام. بحث اصلی و مورد نیاز برای تصمیم گیری هسته جدید همین مباحث هست. لطفا ادامه بدید.

    ارسال نظر

    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی