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

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

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

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

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

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

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

۴۲ مطلب توسط «عماد رضوانی» ثبت شده است

انتشار نسخه فراموش شده 0.1.2

عماد رضوانی | شنبه, ۱۵ آبان ۱۳۹۵، ۰۶:۲۲ ب.ظ

سلام.

​خیلی وقت هست که زمان و وقت کافی برای تحقیقات و توسعه این سیستم عامل کوچک نداشتم. یادش بخیر! 

​امروز بعد از مدت ها نگاهی به پوشه این سیستم عامل کردم و نگاهی هم به وبلاگ انداختم . متوجه شدم که آخرین نسخه از ویرایش اول (۱.۲) رو انتشار ندادم. هرچند که شاید کاربردی هم نداشته باشه اما انتشار دادنش هم خالی از لطف نیست. خیلی مشتاقم زمانی داشتم و این روند رو ادامه میدادم. دنیای سیستم عامل با تمام پیچیدگی هایی که داره اما با گذر زمان ساده به نظر میرسه.  سالها پیش در مد کرنل دیباگ و درایور می نوشتیم. زمانی که این کدهای ساده رو کنار هم میگذاشتیم متوجه میشدیم واقعا زمان کافی و نیرو نیازه که یک سیستم عامل قدرتمند برای کشور عزیزمون داشته باشیم. البته برخی از دوستان مشکل نبود پردازنده بومی رو مطرح می کردند و برخی هم تکنولوژی ها و ...

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

​نسخه دوم این سیستم عامل زمانی شروع شد که مباحت مولتی تسک و قابل پورت شدن به پردازنده های دیگه هم داشته باشه که خدارو شکر انجام شد. ادامه دار هم بود تا اینکه ...

​فلسفه بافی رو کنار میزارم و آخرین نسخه از ویرایش اول(بدون مولتی تسک و ترد) رو برای دانلود قرار میدم.

دانلود​

راهنمایی خاصی نداره. کلید F2 برای هر پنجره قابلیت بزرگ شدن و کوچک شدن میزاره. یعنی اگه بار اول کلیک کنید به حالت جابجایی پنجره رفتین و اگر بار دیگه فشار بدید به حالت تغییر اندازه پنجره میرید. ​ ​کلید F4 نمایش log و ​کلیدهای F9-12 هم خودتون تست کنید.

​التماس دعا
موفق باشید.

  • عماد رضوانی

علت تاخیر در انتشار و زمان انتشار نسخه جدید

عماد رضوانی | دوشنبه, ۲۰ مرداد ۱۳۹۳، ۰۹:۵۲ ق.ظ
السلام علیکم ورحمة الله وبرکاته.
بابت وقفه بوجود آمده در بروز رسانی وبلاگ پوزش می طلبیم. چند روزیست که مشغله کاری ما زیاد شده و کمتر وقت بر روی بروز رسانی هسته گذاشتیم. اما با این حال بیکار نبودیم و در حال اضافه کردن قابلیت و ایده های جدید به هسته هستیم. مثلا راه اندازی هسته(یا به اصتلاح پورت کردن هسته) به روی AVR و X86  و  Windows(منظور راه اندازی بدون مجازی ساز و سخت افزار هست که بعدا بحث خواهیم کرد).

نکته بعدی در مورد درخواست هایی هست که دوستان جهت همکاری با ما داده اند که باید عرض کنم تا زمان ارائه پورتال و SDK منتظر بمانید.

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

و من الله توفیق.

  • عماد رضوانی

حمایت از مردم مظلوم غزه

عماد رضوانی | جمعه, ۳ مرداد ۱۳۹۳، ۱۱:۰۸ ق.ظ

  • عماد رضوانی

پیشرفت در MultiTasking

عماد رضوانی | سه شنبه, ۲۴ تیر ۱۳۹۳، ۰۲:۵۰ ب.ظ

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


  • عماد رضوانی

هسته جدید و پیشرفت در Multitasking

عماد رضوانی | شنبه, ۲۱ تیر ۱۳۹۳، ۱۰:۳۹ ب.ظ

سلام. بلاخره شروع به نوشتن هسته جدید کردیم. تصویر اول نمایانگر بازنویسی هسته جدید با نسخه 2.0.0(به دلیل اینکه نسخه ۱ ادامه نسخه قبل خواهد بود-نسخه قبل عملکرد یکپارچه داشت-اگر چه این نسخه مقدار کمی تفاوت دارد)  هست. تصویر دوم نمایانگر Multitasking هست. حتما به مقادیر EIP دقت کنید(ویرایش: مقادیر EIP نباید بصورت منفی باشد - مشکل در قسمت نمایش مقدار در تابع itoa بود که حل شده):


  • عماد رضوانی

Multitasking و شروع دوباره

عماد رضوانی | جمعه, ۲۰ تیر ۱۳۹۳، ۰۲:۵۰ ب.ظ

سلام. شروع به نوشتن Multitasking کردیم و متوجه شدیم که باید مقداری از کدهای زیرساختی پروژه تغییر کنه. و این بهونه ای شد که یه بازنگری در مورد طراحی هسته انجام بدیم. مسلما روزی که شروع به توسعه این سیستم عامل کردیم دانش فعلی رو نداشتیم و مسلما چند ماه آینده هم دانش فعلی رو نداریم! پس احتمالا مدل جدید هم آزمایشی/آموزشی هست.

احتمالا دیگه بروزرسانی هسته فعلی رو نداشته باشیم. هسته فعلی بصورت یکپارچه طراحی شده بود.تصویر زیر برگرفته از ویکی هست که تفاوت چند نوع هسته رو نشون میده:



بزودی شروع به توسعه هسته جدید میکنیم. تا اون موقع در حال بررسی معماری های هسته و انتخاب یک مدل برای توسعه هستیم. برای انتخاب یک مدل باید موارد زیادی رو مد نظر قرار داد. در انتشار جدید حتما خبرهای خوبی از SDK خواهید شنید.

التماس دعا.


  • عماد رضوانی

آخرین تغییرات Dialog , مدیر حافظه

عماد رضوانی | پنجشنبه, ۱۹ تیر ۱۳۹۳، ۱۱:۱۷ ق.ظ

با سلام. مدیر حافظه تا حدودی آماده کار هست. البته الگوریتم های مدیر حافظه بصورت پایه نوشته شده است و باید به مرور زمان بازنویسی شود. در حال حاضر تابع malloc پیاده سازی شده است که البته پیش نیاز اون paging و VirtualMemory بوده که نوشتیم.

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



  • عماد رضوانی

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

عماد رضوانی | سه شنبه, ۱۷ تیر ۱۳۹۳، ۱۲:۵۸ ق.ظ

با سلام.

بلاخره بخش اصلی مربوط به Dialog تموم شد و حالا به راحتی میتونیم شروع به نوشتن بخش مدیر حافظه کنیم.

تصاویر زیر گویای همه چیز هست. من فایل هارد سیستم عامل رو برای WMVare و دیگر مجازی ساز های برای دانلود گذاشتم.

دانلود دیسک مربوط به بخش Dialog

آموزش نصب و راه اندازی


>

  • عماد رضوانی

معرفی افراد جدید تیم و عملکرد دو ماهه

عماد رضوانی | چهارشنبه, ۱۱ تیر ۱۳۹۳، ۰۶:۵۵ ب.ظ

با سلام. 

خوشحالیم که در کمتر از 2 ماه توانستیم مبانی طرح و طراحی یک سیستم عامل رو از ابتدا پایه ریزی کنیم. توی این مدت افراد زیادی به ایمیل بنده حقیر پیام دادند و ما رو نقد کردند و برخی هم با پیشنهادات و راهنماییهایشون ما رو دل گرم به این کار می کردند. به هر حال تغریبا ۲ ماه گذشت.  تصاویر زیر روند پیشرفت ۲ماهه ما رو به نمایش گذاشته است!

در این زمان دوستانی به ما درخواست همکاری دادند و البته ما هم به چند تن از دوستان دعوت به همکاری دادیم. در این میان 2 نفر از دوستان به عنوان نویسنده و ایده پرداز در وبلاگ با ما بطور ویژه ارتباط خواهند داشت و ورود اونها رو به تیم خوش آمد میگم.

آقای مازیار نظریان

آقای سید امیر محمد حسن لی

دوستان دیگر هم که معرف دوستان هست:

آقای بنی طبا

آقای سانیان

و...

بنده چند روزی مشهد هستم و احتمالا وقت نشه هسته و  توابع زیر ساختی رو توسعه بدم. انشاا.. بعد از سفر   دوباره و با قدرتی مضاعف روند توسعه رو با همراهی دوستان پیش خواهیم گرفت.

بارگذاری کرنل

تصویر جدید از نسخه 0.1.0

تصویر جدید از نسخه 0.1.0


 و ....

  • عماد رضوانی

زیر ویرایش ۲۹ و ۳۰ سیستم عامل آراکس

عماد رضوانی | دوشنبه, ۹ تیر ۱۳۹۳، ۰۴:۰۸ ب.ظ

برگرفته از وبلاگ اطلاع رسانی:


در این زیر ویرایش ها موتکس (mutex)  و لیست پیوندی(link list) برای استفاده در فایل سیستم اضافه شد.

یه باگ در کانتینر صف گرفته شد و همینطور یه پارامتر به تابع strcpy اضافه شد تا عملیات کپی رشته  با امنیت بیشتری انجام شه.

 

به احتمال زیاد زیر ویرایش بعدی برای VFS خواهد بود. که از ساختار لینوکس با اعمال یکسری تغییرات جزئی استفاده خواهد شد. مثل لینوکس برای نگهداری ساختار از ساختمان داده های inode و dentry و superblock استفاده می کنم. با این تفاوت که مجوزها رو از شی inode به dentry انتفال دادم. این قضیه باعث میشه که هر لینک سخت بتونه مجوزهای جداگانه داشته باشه. به این شکل گروه های کاربری مختلف می تونن لینک های سخت خودشون با دسترسی های مختلف رو داشته باشن.

البته یه ساختار mask هم در inode نگهداری میشه تا سیستم امنیت رو بتونه حفظ کنه و مجوزهای فایل به راحتی تغییر نکنه. یعنی اگر مالک تمامی مجوزهای ماسک رو بده شما امکان تغییر بقیه مجوزها رو در لینک خودتون دارید اما در غیر این صورت امکان صدور مجوزها در لینک های خودتون نیست. به عنوان مثال فرض کنید مالک مجوز ماسک ۷۷۷ رو داده و شما یه لینک سخت با مجوز ۱۱۱ برای یه گروه خواص در دایرکتوری خودش ایجاد میکنید. حالا این گروه در دایرکتوری خودش فقط امکان خوندن اون فایل رو داره.

یه آیتم دیگه که در نظر دارم اما فعلا اضافه نمیکنم union directory سیستم عامل plan9 است. که باعث میشه هر فایل چند اسم داشته باشه که اگر مثلا در سیستم بصورت لوکال وجود نداشته باشه اتوماتیک از مسیرهای داده شده بهش از روی شبکه و … فچ شه. (این قضیه بیشتر به سیستم های توزیع شده مربوط هست که فعلا در برنامه توسعه قرار نداره. اما در آینده حتما روش سوئیچ میشه.)

  • عماد رضوانی