به نام حضرت دوست که هرچه هست از اوست

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

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

خوب شروع میکنیم به امید خدا...!

» سیــــــستم عـــامل

سیستم عامل (Operating System) یا به اختصار OS وظیفه هماهنگ سازی و ارتباط بین نرم افزار و سخت افزار را دارد. از همین جا میفهمیم که هرکس بخواهد سیستم عامل طراحی و پیاده سازی کنه باید با سخت افزار آشنایی داشته باشه!

برای فهم بیتشر میتونید به عکس زیر نگاه کنید!

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

انواع سیستم عامل رو میتونید توی تصویر زیر مشاهده کنید!

 

 

» بــرنامه نویسی ســستم عـــامل

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

پایین ترین سطح زبان، زبان ماشین هاست که با اعداد 0 و 1 برنامه نویسی میشن! به طور مثال به صورت زیر 

10110000 01100001

که درکش برای هر انسانی سخته حتی اگه بتونید درکش کنید که نمیتونید یک سیستم عامل به این بزرگی رو با 2 عدد 0 و 1 بنویسید :)

بنابراین سراغ یه زبون سطح بالا تر میریم! زبان خیلی دوست داشتنی و جالب! حداقل برای کسایی که از سخت افزار سر در میارن خیلی جالب و سرگرم کنندست چون میتونن با قطعه سخت افزارمورد نظرشون ارتباط برقرار کنند! خوب حالا اسم این زبان برنامه نویسی چی هست؟!

معرفی میکنم : زبــان اســمبلـی ! ... این زیباترین زبانیه که تا حالا باهاش حرف زدم! :)

در این زبان ما میتونیم خیلی خوب و راحت با سخت افزار ارتباط برقرار کنیم! تکه کد زیر مربوط به اسمبلی هست! امیدوارم بپسندید undecided

MOV AL, 1h        ; Load AL with immediate value 1
MOV CL, 2h        ; Load CL with immediate value 2
MOV DL, 3h        ; Load DL with immediate value 3

خوب شاید با خودتون بگید این چه وضعشه..! ماکه نمیتونیم یه سیستم عامل به این بزرگی رو با 4 خط اسمبلی بنویسیم! باید بگم: بله حق باشماست! ما فقط برای ارتباط با سخت افزار از این زبان برنامه نویسی استفاده مکینیم و برای کار های بزرگتر از زبان دیگه ای که احتمالا میشناسیدش استفاده میکنیم! منظورم زبان برنامه نویسی C هست!

زبان برنامه نویسی C زبان سطح پایین و تقزیبا میشه گفت سطح متوسط هست! چون نه مثل زبان جاوا خیلی سطحش بالاست و دستش به سخت افزار نمیرسه و نه مثل اسمبلی انقدر سطحش پایینه که به زبان انسان نزدیک نیست! بلکه یه چیز بین این دو که هم به زبان انسان نزدیکه و هم میتونه به خوبی با سخت افزار ارتباط برقرار کنی به طوری که ما قادریم در زبان C از کد های اسمبلی استفاده کنیم!

در اینجا فهمیدیم که ما برای برنامه نویسی به دو زبان اسمبلی و C نیازمندیم!

اگر میخواهید به برنامه نویسی سیستم عامل مسلط شوید سعی کنید دو زبان بالا رو به خوبی فرا بگیرید! ( میتونید توی سایت الفبا دنبال آموزش این دو زبان بگردید)

 

» وظایـــف سیــــستم عـــامل

سیستم عامل وظایفی داره که ما میتونیم به اصلی ترین آنها به صورت زیر نگاه کنیم!

1- استفاده بهینه‌تر از منابع و جلوگیری از به هدر رفتن آنها
2- تخصیص و آزاد سازی منابع
3- اداره صف‌ها و زمان‌بندی استفاده از منابع
4- حسابداری میزان استفاده از منابع
5- ایجاد امنیت
6- ایجاد، حذف و اداره فرایندها
7- ایجاد مکانیسم‌های ارتباط بین فرایندها و همگام‌سازی آن‌ها
8- مدیریت فایل‌ها و پوشه‌ها
9- مدیریت حافظه‌های اصلی و جانبی
10- برقراری امکان دسترسی چندتایی و اجرای هم روند فرایندها
11- به اشتراک گذاری منابع
12- تعیین راهکارهایی برای اداره بن‌بست
13- جلوگیری از وضعیت رقابتی و تداخل یا در هم قفل شدن فرایندها
14- جلوگیری از گرسنگی

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

برای رفتن به صفحه مورد نظر کلیک کنید

 

امیدوارم بتونیم به کمک هم توی این راه موفق باشیم و بتونیم یه افتخاری برای کشور عزیزمون ایران بیافرینیم!

از هر کسی که مایل به همکاری در ادامه این آموزش هست با کمال میل استقبال میکنم تا با هم بتونیم این آموزش رو کامل کنیم!

اگه سوالی داشتید بپرسید و اگه من بلد بودم ( که بلد نیستم) جوابتون رو میدم!

امیدوارم بدردتون خورده باشه!

فعلا یا علـــــی مدد...!

 

قسمت بعد: جلسه دوم