پس از محیط لینوکس شروع کردید به این کار، خوبه. Dialog Box ها رو هم خیلی خوب کار کردین. درست مثل Tubo Vision زمان DOS میمونه. اتفاقا روند درست پیش بردن پروژه هم همه چی بهتره functional باشه.
کد مربوط به Dialog Box ها و کنترل ماوس رو خودتون نوشتید؟
Printable View
پس از محیط لینوکس شروع کردید به این کار، خوبه. Dialog Box ها رو هم خیلی خوب کار کردین. درست مثل Tubo Vision زمان DOS میمونه. اتفاقا روند درست پیش بردن پروژه هم همه چی بهتره functional باشه.
کد مربوط به Dialog Box ها و کنترل ماوس رو خودتون نوشتید؟
سلام.
یکی از دوستان ایمیل زده بود چرا دیالوگ باکس درست کردم. اصلا لزومش چی بود !؟!! من قبلا گفتم به دلیل آموزشی و آزمایشی بودم سیستم ما نیاز به دیباگ کردن اجزای مختلف سیستم در حال اجرا رو داریم. نیت من از درست کردن این Dialog ها این بود که من ثبات ها رو توی یک دیالوگ و کنسول رو توی dialog دیگه و .... کلا نیاز به دسته بندی خروجی داریم و یه طوری که بشه بعضی از پنچره ها رو بست و بعدا نمایشش داد. این فلسفه dialog بود که من پیش گرفتم(احساس نیاز شد و اصول این نوع طراحی هم احساس نیاز بود). و قرار نیست که این بستر محصوب بشه.
تمام حرف های ما توی این بحث ها این بود. سیستم عامل آراکس و کوثر تک تک توابع اون توسط توسعه دهندگان اون نوشته شده هست. این یعنی دانش و قدرت و تسلط بر سیستم عامل. مهم نیست که ایمن نوشته شده باشه یا نه. مهم اینه که خودت نوشتی و میتونی تغییرش بدی !!
سلام.
در کنار توسعه هسته سیستم عامل کوثر اعضای تیم شروع به نوشتن آموزش هایی در رابطه با توسعه سیستم عامل هستند.(۶ بخش مجزا )
همچنین یک پست در مورد عملکرد ۲ ماهه تیم ارائه دادیم: http://kosaros.blog.ir/post/%D9%85%D...AA%DB%8C%D9%85
پست های تخصصی در کنار صفحه وبلاگ در بخش طبقه بندی موضوعی موجود هست.
سلام
قضیه کامپایلر کوثر چیه؟
سلام.
کامپایلر به معنی نوشتن یک کامپایلر مجزا نیست. ما یک رابط گرافیکی برای ویرایش کد ها و ارتباط اون با فایل های سیستم عامل و کامپایل اون از طریق کامپایلر فعلی gcc هست. در واقع ما در حال طراحی یک SDK هستیم که کاربران درگیر نصب نرم افزارهای اضافی نباشند.
حالا بعد از پیشرفت هم به دنبال شناسایی توابع و Syntax ها و راهنمایی online اونها خواهیم رفت.
مسلما این ایده خالی از اشکال نیست. اما این روشی هست که برای توسعه آینده در نظر گرفتیم.
درود.
ببخشید سورسش رو منتشر نکردید؟؟؟؟
محمد.
من قبل از این اینکار رو انجام دادم منتها پیچیدگی های طراحی خیلی زیاده و باید موارد زیادی رو تجربه کنید. پیشنهاد می کنم اول با یه زبان اسکریپت شروع کنید و تحت یک سیستم عامل حاضر مثل لینوکس و ویندوز تست بگیرید و بعد برید سراغ اینکه کامپایلر برای نوشتن سیستم عامل طراحی کنید.نقل قول:
حالا بعد از پیشرفت هم به دنبال شناسایی توابع و Syntax ها و راهنمایی online اونها خواهیم رفت.
ویرایشگر c/C++ که با gcc سازگار باشه که خیلی زیاد وجود داره. به نظر من کار درستی نیست برای اینکار وقت بذارید. ویرایشگر عملا روی پروژه تاثیر خاصی نمی ذاره شما حتی با notepad هم می تونید کارها رو پیش ببریدنقل قول:
کامپایلر به معنی نوشتن یک کامپایلر مجزا نیست. ما یک رابط گرافیکی برای ویرایش کد ها و ارتباط اون با فایل های سیستم عامل و کامپایل اون از طریق کامپایلر فعلی gcc هست. در واقع ما در حال طراحی یک SDK هستیم که کاربران درگیر نصب نرم افزارهای اضافی نباشند.
سلام. مشکل جایی دیگست !
فعلا قرار به نوشتن کامپایلری مجزا نیست. کامپایلر gcc مد نظر هست. اما تا جایی که ما بررسی کردیم کمتر کسی میاد تمام ابزارهای مورد نیاز در لینوکس و ویندوز رو نصب کنه و شروع به توسعه کنه. من پیشنهادم این بود که یه IDE/SDK طراحی کنیم که به gcc متصل هست. توسعه دهنده فقط با نصب این sdk هم کامپایلر مورد نیاز رو نصب کرده و هم bochs و ... . و با اینکار فقط با کلید روی کلید run نرم افزار نوشته شده اون کامپایل شده و توسط مجازی ساز اجرا میشه.نقل قول:
. پیشنهاد می کنم اول با یه زبان اسکریپت شروع کنید و تحت یک سیستم عامل حاضر مثل لینوکس و ویندوز تست بگیرید و بعد برید سراغ اینکه کامپایلر برای نوشتن سیستم عامل طراحی کنید.
در حال حاضر تمام کدها تویط gedit لینوکس نوشته شده !! اما وجود یک sdk کاملا ضروری هست.(به دلیل اینکه اینجا ایرانه ...! )نقل قول:
ویرایشگر c/C++ که با gcc سازگار باشه که خیلی زیاد وجود داره. به نظر من کار درستی نیست برای اینکار وقت بذارید. ویرایشگر عملا روی پروژه تاثیر خاصی نمی ذاره شما حتی با notepad هم می تونید کارها رو پیش ببرید
سلام. با توجه به مشغله فراوان اما بخش اولیه( همون رفع نیاز اولیه) مربوط به Dialog حل شد.
در حال حاضر امکان استفاده از چندین دیالوگ و مدیریت آنها به همراه ارسال کلید(مدیریت کلید ها که بطور مثال یک ویرایشگر هم نوشتم که در فیلم مشخص هست) تکمیل شده هست. مرحله بعد توسعه مدیر حافظه هست که خیلی وقفه برای نوشتن اون بوجود اومد. مسلما مدیر حافظه رو بصورت پایه می نویسیم و مهم دانش اون هست و فعلا درگیر الگوریتم های پیچیده و امنیت کار نمیشیم.
با سلام. مدیر حافظه بصورت پایه نوشته شد. البته در مورد زمان الگوریتم ها بهینه خواهد شد اما برای شروع کافی هست.
لینک خبر: http://kosaros.blog.ir/post/%D8%A7%D...81%D8%B8%D9%87
شروع دنیای Multitasking :
http://kosaros.blog.ir/post/%D9%87%D...1-Multitasking
ضمیمه 121069
سلام
مطمئنی مقدایر EIP درسته؟! فکر کنم توی محاسبه اشتباه کردی.
یه مورد دیگه اینه که برای برنامه ها فقط نقطه ورودی داشته باشی کافیه لازم نیست بدونی تا کجا ادامه دارن (to)
و چرا رشد حافظه بعضی جاها منفی و بعضی جاها مثبته؟
gcc عالیه، و این که قرار هست در سیستم عاملتون اجراش کنید عالی تر!
البته من شخصا LLVM رو ترجیح میدم (در FreeBSD ازش استفاده میشه و میدونید چرا ترجیحش میدم دیگه :D ) ولی gcc بسیار خوبه.
اما یک نکته، چرا زبانهای جدید نه؟ مثلا زبان Go خیلی به C شبیه هست و شما که ماشالله انقدر واردید، فکر کنم یک صبح تا غروب وقت بزارید یادش میگیرید (http://gobyexample.com منبعی که خودم یاد گرفتم).
کامپایلر gccgo هم هست (البته مطمئن نیستم gogcc بود یا gccgo :لبخند: ) که اگر هدفتون اینه کلا gcc بیس کار کنید میتونه کمکتون کنه.
جوابی واسه انتخاب چرایی gcc ندارم. شاید به دلیل اینکه ویندوز کار(صحبت دسکتاپ هست) نیستم و از اول برای کامپایل کدهام از gcc استفاده کردم. اما به مرور متوجه قدرت gcc شدم و الان شده کامپایلر پیشفرض C من!
یادم نیست واسه چی بود ولی یادمه درگیر go هم شده بودم(فکر کنم واسه یه برنامه پایگاه داده location بود!) اما باز gcc رو ترجیح میدم(چون فعلا مقداری مسلط هستم).
من آدرس های توابع ام رو چاپ میکنم به منفی رشد می کنه ! چرا !؟نقل قول:
و چرا رشد حافظه بعضی جاها منفی و بعضی جاها مثبته؟
دوست من، من هم ویندوزی نیستم و خیلی کم از ویندوز استفاده میکنم (دیگه از بازی نمیشه گذشت :لبخند: )، ولی روی لینوکس هم سعی میکنم از gcc دوری کنم تا حد امکان (فقط برای اینکه بتونم بیشتر با BSD ارتباط برقرار کنم) ولی گفتم، gcc بسیار عالیه و کلی تجربه پشتشه، و استفاده ازش در یک سیستم عامل جدید میتونه باعث بشه سیستم عاملتون هم کلی مشتری (منظورم تجاری نیست، کلا طرفداری و استفاده منظورمه :لبخند:) جمع میکنه :)
من برای این موارد gcc رو ترجیح میدم:نقل قول:
جوابی واسه انتخاب چرایی gcc ندارم
۱. به روزترین کامپایلر دنیاست ( مثلا در مورد C++11)
۲. کراس کامپایلره
۳. تقریبا تمام استانداردها رو پشتیبانی میکنه.
۴. الحاقی های خوب. همه کامپایلرها یکسری الحاقی دارن. منتها gcc الحاقی های واقعا خوبی از جمله دسترسی بیتی درون struct ها رو داره.
۵. میشه به کمک اون و ld از ترکیبهای زبونهای مختلف مثل java استفاده کرد.
۶. میشه خیلی راحت مراحل کامپایل رو جدا کرد. و خروجی های هر کدوم رو دید.
۷. ...
کلا انعطاف پذیری خیلی زیادی داره اما MSVC کدهای خروجیش سرعتشون بیشتره منتها استاندارد رو برای اینکار رعایت نمی کنه که گاهی مشکل ساز میشه.
حل شد. مشکل در تابع چاپ بود که itoa بصورت علامت دار به عدد نگاه می کرد.نقل قول:
من آدرس های توابع ام رو چاپ میکنم به منفی رشد می کنه ! چرا !؟نقل قول:
و چرا رشد حافظه بعضی جاها منفی و بعضی جاها مثبته؟
در مورد کامپایلر هم گفتم:
نقل قول:
اما به مرور متوجه قدرت gcc شدم و الان شده کامپایلر پیشفرض C من!
پیشرفت در Multitasking :
http://kosaros.blog.ir/post/%D9%BE%D...1-MultiTasking
ضمیمه 121131
شاید خیلی مسخره بنظر بیاد ولی آدم اشک تو چشاش جمع میشه یا بهتر بگم کلی هیجان زده میشه این همه پیشرفت روی توی توسعه سیستم عامل در ایران ( مخصوصا که از این مدل الکی هاش نیست ) میبینه.شاید تنها دلیل نظر دادنم هم این بود که دیدم دو تا پروژه کاملا جدا از هم توی این زمینه دارند با همدیگه تبادل اطلاعات میکنند و به توسعه هم کمک میکنند واقعا از ته قلبم خوشحال شدم.این برای اولین بار هست توی ایران همچین صحنه ای رو میبینم.مهمترین نکته هم اینه هر دو پروژه بدون هیچگونه ادعا یا تبلیغات الکی هستند !!!!!!!!!!!
واقعا سیستم عامل آراکس تا الان خیلی کمک حال علاقه مندان به این بخش بود،من خودم با خوندن کد های آراکس یکی از مهمترین مشکلاتمو توی کرنل خیلی کوچیکم حل کردم،خدا عمرش بده.اگر شما هم فعالیتتون رو با همین سرعت ادامه بدید احتمالا با همچین همکاری هایی چند وقت دیگه توسعه سیستم عامل توی ایران خیلی پیشرفت میکنه:چشمک: امیدوارم اگر جایی شد بتونم سهم کوچکی در اندازه وقت و توانم در کمک به این پروژه ها داشته باشم.
ببخشید دیگه شبیه پیام بازرگانی این وسط نظر دادم :لبخند:
سلام
ضمن تشکر از فعالیت شما برای تهیه یک سیستم عامل ایرانی (ولو در حد آموزش و آزمایش) خواستم این نکته را یادآور شوم که در طراحی و تهیه یک نرم افزار هرچه که باشد باید از اصول ثابت شده مهندسی بهره برد در غیر اینصورت امکان موفقیت بسیار پایین و اتفاقی خواهد بود.
اگر شما سیستم عامل را بصورت متن باز می نویسید (یا قصد متن باز کردن آن را دارید) لازم است از روشهای مرسوم در این وادی بهره بگیرید. تنها استفاده از ورژن کنترل مانند SVN کفایت نمی کند. شما باید یک ساختار منظم منسجم جهت کنترل و ردیابی موردها و باگها و انتصاب آنها به خطوط برنامه هایتان داشته باشد. باید از اصول اولیه مهندسی و مدیریت پروژه استفاده کنید. وجود بخش طراحی و دیاگرام های استاندارد UML الزامی است. در غیر این صورت رفته رفته شیرازه کار از دست شما خارج خواهد شد و امکان بهره برداری از توانایی های بالقوه سایر برنامه نویسان در جهان را از دست می دهید. حال که تا اینجای کار آمده اید اکیدا توصیه می کنم از یکی از نرم افزارها یا سامانه های مدیریت و ردیابی باگ متن باز مانند Redmine استفاده کنید. شما می توانید پروژه خود را در سایتی مانند HostedRedmine.com و یا معادل ایرانی آن https://peygir.org ثبت و مورد پیگیری قرار دهید.
پیروز باشید
وب لاگ من:
http://delphiandroid.blog.ir
خسته نباشین.
یه سوال داشتم :متفکر:
روی سیستم واقعی هم تستش کردین؟
اگه تست کردین از چه طریقی؟ usb؟ چطوری این کار رو انجام دادین؟ روی چتا سیستم امتحانش کردین؟
بله تست کردیم. یک image روی هارد کپی کردیم و اجرا شد(با همان خروجی مد نظر).نقل قول:
خسته نباشین.
یه سوال داشتم :متفکر:
روی سیستم واقعی هم تستش کردین؟
اگه تست کردین از چه طریقی؟ usb؟ چطوری این کار رو انجام دادین؟ روی چتا سیستم امتحانش کردین؟
در حال حاضر مستندات آموزشی در حال تکمیل شدن هست. خیلی از دوستان در وبلاگ اصلی با پیام هاشون ما رو مورد لطف قرار دادند. انشاا.. با مستندات جبران میشه.
سلام.
با اینکه خیلی وقت هست این موضوع بسته شده و طبق قوانین انجمن می بایست یک موضوع جدید باز بشه,اما گفتم بنظرم همینجا بزارم بهتره.
امروز بعد از مدت ها نگاهی به پوشه این سیستم عامل کردم و نگاهی هم به وبلاگ انداختم . متوجه شدم که آخرین نسخه از ویرایش اول (۱.۲) رو انتشار ندادم.....
برای دانلود نسخه فراموش شده به همراه توضیحات به وبلاگ رجوع کنید.
کارتون عالیه
سلام ... خیلی خوشحالم از اینکه یک سیستم عامل طراحی کردی و داره کار می کنه ...امیدوارم روزی برسه که به تمام اون هدفی که برای ساخت این سیستم عامل داشتی برسی.
سلام. خیلی ممنون(در نظر خودم سیستم عامل بیشتر از این Firmware ما هست اما فعلا بنامیمش سیستم عامل). اهداف زیاده. آدم پای کار کم هست و متاسفانه وقتی پروژه شخصی تعریف میشه, خیلی سخت میشه به اون اهداف رسید ( مثلا موضوعات مالی و پشتیبانی کشور).
کارهای خوب دیگری مثل سیستم عامل آراکس هم قبل از این سیستم بوده و به دوستان دیگرم هم گفتم به کدهای آزاد این سیستم عامل هم سر بزنید که از نظر تجربی خیلی میتونه مفید باشه.
سورسش رو منتشر نکردی؟خریدساعت هوشمند
اگر به مبحث توسعه سیستم عامل جدید از پایه علاقه مند هستید و در عین حال می خواهید کاربرد توسعه چنین سیستمی را هم ببینید به لینک زیر مراجعه نموده و برنامه ستاپ نسخه دمو HDDC1 را دانلود نمایید. با استفاده از این برنامه می توانید یک فلش دیسک معمولی را به یک سیستم حفاظت هارد دیسک تبدیل نمایید که دارای سیستم عامل داخلی خود به همراه نرم افزار حفاظت هارد دیسک بصورت مجتمع شده می باشد. توضیحات در فایل فشرده ستاپ موجود است. پس از قرار گیری این سیستم عامل بر روی فلش دیسک همچنان آن فلش دیسک خالی به نظر می رسد و حتی می توانید آن را فرمت کنید و بر روی آن فایل های معمولی بریزید و استفاده نمایید. فقط در هنگام بوت با آن فلش دیسک است که نرم افزار امنیتی با سیستم عامل خود کامپیوتر را بوت نموده و قابلیت فعال سازی هارد دیسک ها به نمایش در می آید.
http://www.secureware.org/persian/in...page=downloads
یه اپدیتی از اخرین وضعیت این سیستم عامل میدین؟ لینک github ای یا هر جا که بشه کدهاشو یا خودشو دید. این دوستانمون تا کجا تونستن پیش برن. من یه سرچ زدم یه وبلاگ توی blog.ir داشت که ظاهرا یه زمانی یه ایمیچ virtualbox برای دانلود گذاشته بودن که اونم الان expire شده و در دسترس نیست..