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







مگه توی آزمایشگاه سیستم عامل یه سیستم عامل خاص رو آموزش میدن؟ تا جایی که من یادمه توی درس سیستم عامل یه سری مفاهیم و تکنیکهای طراحی سیستم عامل تدریس میشن (مثل job scheduling یا semaphore یا …) و توی آزمایشگاهش هم قاعدتا باید پیاده کردن همون مفاهیم و تکنیکها رو تمرین کنن. این دوستتون سیلابس خاصی برای آزمایشگاهش نداره؟
آره تو آز سیستم عامل، قاعدتا باید برنامه نویسی سطح پایین برای کرنل رو درس بدن. البته سال پیش که من این درس رو دادشتم میشه گفت به ما تقریبا برنامه نویسی موازی و سمافور و از این چیزا رو با زبون سی تو لینوکس گفتن.
تنها کار جالبی که اون شخص مدرس کرد این بود که گفت استفاده از ایمکس برای نوشتن کد تو لینوکس اجباریه! خیلی اینش حال داد! خصوصا برای من که عاشق ایمکس بودم…
فکر کنم برای ازمایشگاه این درس اموزش نصب و راه اندازی لینوکس مناسب باشه و معرفی نوع
پارتیشن های لینوکس
توی آزمایشگاه سیستم عامل خود لینوکس را درس نمی دن!
آموزش لینوکس و اینها مال درس آزمایشگاه کامپیوتر ترم ۱ است.توی دانشگاه اصفهان سر درس آزمایشگاه سیستم عامل ۵ فصل از این کتاب تدریس شد:
http://books.google.com/books?id=DPpUcItkuEYC&dq=Advanced+Linux+Programming+%2BMark+Mitchell&printsec=frontcover&source=bn&hl=en&ei=V73yStf4LNirjAfArIylDg&sa=X&oi=book_result&ct=result&resnum=4&ved=0CBIQ6AEwAw#v=onepage&q=&f=false
شامل برنامه نویسی پروسه و Thread و سمافور و ….تحت لینوکس البته.
به یک سری دانشجو که از لینوکس اطلاعی ندارن!
اممم… به نظر من با پارسیکس شروع کنید. یعنی معرفی با پارسیکس باشه، اما سرانجام به اوبونتو برسید. یعنی به اصطلاح داروی choice و اصلی اوبنتو باشه و داروی alternative پارسیکس.
توی ۱۰ جلسه که نمیشه لینوکس رو یاد داد به کسی. فقط میشه راه و چاه رو نشون داد.
من اگه جای ایشون بودم سعی میکردم لینوکس رو برای دیگران جوری یاد بدم که به این نتیجه برسن میتونن نیازهاشون رو با لینوکس مرتفع کنن و حتما نیازی به یه سیستم عاملی مثل ویندوز ندارن.
یه چیزی باشه که لابهلاش بشه کارکردن عمومی با لینوکس رو هم سریع یاد گرفت.
در مورد سیستم عامل، اوبونتو فکر میکنم طرفدار بیشتری داشته باشه
همونطوری که بچهها گفتن و اونطوری که ما پاس کردیم این درس رو (و به نظرم سرفصلهاش مناسب بود) توی آزمایشگاه سیستم عامل سیستم عامل خاصی رو درس نمیدن. آزمایش سناریوهای مختلف چند نخی، این که مشکلات عملی رو (بن بست، گرسنگی و …) توی این سناریوها ببینن و با استفاده از زبانهای برنامهنویسی واقعی یا نرمافزارهای شبیهسازی (BACI یادمه داشتیم که یک مفسر خاص برای همین کار بود) راهحلهاشون رو با استفاده از سمافورها و … پیادهسازی کنن میتونه خوب باشه.
آموزش خط فرمان لینوکس که ممکنه برای اجرای برنامه لازم بشه میتونه در حد یه چیتشیت یا جزوهی کوچیک ارائه بشه و جای بحث مفصل ااون توی درس 1 برنامهنویسی یا مبانی هستش نه آزمایشگاه سیستم عامل.
من هم با دو کامنت اول موافقم.
بهتره یه سری به سایت داتشگاه های داخلی و خارجی بزنید ببینید اونا چی درس میدن.
ولی فکر می کنم پلی تکنیک الان هم تو درس سیستم عامل، هود سیستم عامل رو آموزش نمی ده.
در دانشگاهی که من درس میخونم در درس آزمایشگاه سیستم عامل مفاهیم اولیه گنو/لینوکس میگن بعد استفاده پوسته فرمان، آموزش فایل سیستم گنو/لینوکس، مفاهیم اولیه در مورد مجوزهای دسترسی و تقریبا میشه گفت 60 درصد دستورات خط فرمان رو میگن. منم به عنوان داوطلب در ۳ جلسه متوالی و به مدت 10 دقیقه اول کلاس در تمام کلاس های آزمایشگاه سیستم عامل در مورد نرم افزار آزاد صحبت میکنم. در ضمن در کلاس آزمایشگاه سیستم عامل فرقی نمیکنه از چه توزیعی استفاده کنیم چون تمام کارها با پوسته فرمان و معمولا از مفسر bash استفاده می شود
معمولا توی آزمایشگاه ها از فدورا استفاده میکنن
موارد تدریس هم بستگی داره که چه مدل دانشگاهی باشه، اگر دانشگاه آزاده همین که بتونه لاگین کردن توی محیط گرافیکی رو آموزش بده خودش کلی حرفه
وقت هم روی آموزش نصب و اینجور چیزها نذارن و در عوض توزیع هایی که نصاب های اتوماتیک دارن و یا دیسک های زنده رو معرفی کنند که هر کسی با اونها تمرین کنه. مثلا اوبونتو بخاطر نصب راحتش گزینه خوبیه واسه معرفی شدن.
در مورد فایل سیستم لینوکس و همچنین فرمت هایی مثل ext حتما صحبت کنن مثلا این نکته که تو لینوکس وبا استفاده از فایل سیستم های جورنالی نیازی به defragment نیست. هسته معرفی بشه و در مورد یکپارچگیش و ماژول هایی که می پذیره صحب بشه و اینکه این هسته داره در توزیع های بی شماری استفاده می شه.deamon ها معرفی بشن و استفاده از فایل های واقعی و مجازی برای ارتباط بین اجزا سیستم و برنامه ها بیان بشه.
قدرتمند بودن سیستم عامل لینوکس هم به بچه ها منتقل بشه.
اون «لگو» بودن سیستم عامل گنو/لینوکس که خودت می گفتی هم معرفی بشه.
سلام علی جان
این کلاس درس دانشگاه آزاد هست، از اونجایی که سرفصل برای تدریس آزمایشگاه معین نکرده اند من بهتر دیدم بجای اینکه مباحث تئوری رو یاد بدم، کاربری پیشرفته ویندوز و کاربری ابتدایی لینوکس رو بهشون یاد بدم.
فعلا که دستم بازه
ممنون
همون Pedy تکنوتاکسم.
هرکاری کرد، فقط سر جدت بگو پارسیکسو بره این کار انتخاب نکنه!
خودم باهاش کار میکنم و واقعا آرزو دارم که یه روزی بشه یه گزینهی محلی شدهی خوب برای مهاجرین ایرانی به لینوکس. اما الان اوضاع communityش دشت غمه!
خودم تمام قد قربون آلن برم! اما اوضاع قاراشمیشه! دیگه تکنوتاکس رو که خودت هستی و میدونی. پارسیکس که…
تو انجمن خودش، دو نفر سعی میکنن بالبال بزنن. توی فارسی، کَشاف؛ توی انگلیسیش هم یه بنده خدای انگلیسی به اسم mandog.
من که از وقتی 3.0 رو نصب کردم به انواع موارد عجق وجق برخوردم! پس اگه دوستت بخواد از لینوکس تعریف کنه و به دانشجوهاش پارسیکس۳ رو نشون بده، باید زاویهی گردنش رو با بدنش، کم کنه!
پیشنهاد اول اینکه هر توزیعی رو انتخاب کرد، بره سراغ ورژنی که خودش چند وقت باهاش (با اون ورژن خاص) کار کرده. یعنی مثلا اگه اوبونتو رو انتخاب میکنه و آخرین ورژنش رو هنوز تست نکرده، برای ارائه انتخابش نکنه.
خیلی زاقارته که مثلا بگی لینوکس فلان امکان رو داره و بعد بخوای اجراش کنی و چیز بشی!
مثلا تو پارسیکس بخوای منوی تنظیمات Sound رو بیاری، بعد ببینی اصلا نیست! تو Menu Editor هم نمیشه آوردش!
…
خلاصه دست رو دلم نذار!
دوم اینکه یه دستهبندیای از زمینههای مختلف انجام بده و با توجه به اهمیتشون و میزان صحبتی که دربارشون هست، زمان متناسب رو بهشون اختصاص بده.
مثلا زمینهها:
-مفهوم نرمافزار آزاد، تاریخچه مختصر پروژه GNU و هستهی لینوکس و … (خیلی فلسفیش نکنه که یه سریشون عق بزنن!)
-محیط گرافیکی به طور کلی (اینکه بفهمن اگه تو ویندوز با موس کار میکنن، اینجا قرار نیست با بیل و کلنگ کار کنن و قصه همونه!)
-معرفی یه سری از نرمافزارهای کاربردی (یه دید معادلی با برنامههای ویندوزی بده؛ GIMP و OpenOffice و Inkscape و gThumb و Pidgin و …)
- بحث «نصب برنامه» (کامل توضیح داده بشه؛ اما نه اونقدر بره تو شیکمش که دید کلی از دست بره؛ نمای کلی رو توی ذهنشون داشته باشن. دربارهی dependencyها هم بدونن. روشهای مختلف، مثل بستههای deb یا RPM و سورس و Synaptic و دیویدیهای مخازن و …)
- مسائل امنیتی (همون کمتر نوشته شدن ویروس و باز بودن سورس و امکان تصحیح سریع و …؛ دربارهی استفادهی سروری و غیر Desktop هم فکر کنم یه توضیح کلی همینجا داده بشه، برای این مورد کفایت میکنه)
- خط فرمان و قابلیتهاش
- در ادامه، اشاره به اسکریپتها و
تنظیمات متنی و نوشتاری درفایلهای config
- دنیای برنامهنویسی (اینو دیگه نمیدونم از کجاش باید رفت تو!)
- ذکر خلأهای موجود در زمینهی برنامههای حرفهای در بعضی زمینهها (مثلا «معادل آزاد» Matlab، نرمافزارهای تخصصی برق، و موارد دیگه)
کلا جمعبندی مواردی که باعث میشه بعضیها گله و شکایت کنن و غر بزنن.
و بیان اینکه قرار نیست -حداقل فعلا- همه چی «هلو برو تو گلو» باشه؛ پس مورد بعدی که باید بیان بشه:
- جامعهی کاربران (community) و ارتباطها و روند بررسی مشکلات. اینکه آیا اصلا کسی «وظیفه»ای داره یا نه؟
دربارهی اینکه پشت هر نرمافزار کاربردیای، غالبا یه عده کاربر داوطلب هستن و … .
(پرداختن به این موارد، نسبت به شکافتن دل و رودهی فلسفهی نرمافزار آزاد و عقایل استالمن و …، اولویت داره؛ البته از نظر من و برای این محیط)
دربارهی بحث کلی کسب درآمد در این عرصه هم یه دیدی داده بشه.
اینا موارد کلی بود؛ ممکنه بعضیهاش با هم ادغام بشه، یا بعضیهاش به چند بخش تقسیم بشه.
چیزایی بود که خیلی خوشحال میشدم همون اول، باهم و یهجا بهم بگن.
میمونه تقسیمبندی زمان؛ که دیگه وظیفهی خطیر مدرسه
حتی اگه مباحث به نظرش زیاد میاد، شده از هر کدوم، کم بگه؛ ولی بگه.
انگولک کردن هیجاناتشون هم در مورد برنامهنویسی و دنیای هکری یا دربارهی فاز گرفتن با خط فرمان (مثل اون چند تا مطلب وبلاگ خودت دربارهی اینکه چرا از لینوکس استفاده میکنی) و …، مجازه
البته آب و تابش زیادی نباشه
موفق باشن، باشید، باشیم
از نظر من اگه قرار باشه به صورت اکادمیک یه دیسترو توی یه جایی مثل دانشگاه تدریس بشه پیشنهاد من اینه که یه دیسترو پایه ای مثل دبیان یا ردهت یا جنتو باشه ! حالا هرچی همه بگن تدریس یه همچین دیسترو هایی برای دانشجوی صفر کیلومتر سنگینه !
چون نظر من اینه که دانشجوی رشته نرم افزار رو باید کشت تا به تب راضی بشه ! باید با یه همچین دیستروهایی بهش تعلیم داده بشه تا بتونه با یه چیزی مثل اوبونتو یا فدورا یا سابایپن بتونه کار کنه…
درس سیستم عامل که در مهندسی نرم افزار تدریس میشه، چیزی به مراتب فراتر از آموزش یک سیستم عامل خاص هست. همونطور که بقیه دوستان گفتن در مورد کرنل، چند رشته ای، dead lock ها و … صحبت میشه که برای این درس اگر بخوایم بازمتنی هم به قضیه نگاه کنیم، من واقعا کتاب سیستم عاملهای آقای تنن بام را دوست دارم که به صورت عملی و با مینیکس میره جلو و تک تک مشکلات موجود را با راه حلهای اونها که در مینیکس کد شده نمایش میده و این همون کتابی هست که لینوس توروالدز هم از اون ایده گرفت برای ساخت لینوکس.
اینهم لینک: http://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation
منتها وقتی حرف آزمایشگاه سیستم عامل هست، اونهم فقط با 10 جلسه، دیگه اونقدر نمیشه مته به خشخاش گذاشت. خیلی بستگی داره معلم قبلی که خود درس سیستم عامل را گفته چیکار کرده. اگر من بودم قطعا یک قسمتهایی از مینیکس را می گفتم و راه حلهای عملی برای مشکلاتی که در درس سیستم عامل بحث میشه را نمایش میدادم در پیاده سازی مینیکس. اون وقت در باره لینوکس بحث می کردم، چرا به وجود اومد، فرقش با مینیکس چی هست و اینکه روح باز متن و کلا این مسائل یعنی چی! در واقع یک بحث فنی، روحانی را پیاده می کردم که در 10 جلسه حداقل تحریک کننده باشه.
بابت سرفصل آموزش لینوکس هم من سرفصل خود مارک شاتلورث را می پسندم:
http://learnlinux.tsf.org.za/courses/build/fundamentals/index.html
اصولاً به تعبیر فنی چیزی به نام «کرنل سیستمعامل» نداریم. اون چیزی که بش میگن کرنل، خود سیستمعامله. پس باید رفت سراغ همون. آموزش چیزایی مثل کاربرد multithreading هم دردی دوا نمیکنه. باید برین سراغ پیادهسازی multithreading، همون طور که توی خود درس سیستمعامل هم هست.
برای این کار البته نمیشه مثل درس سیستمعامل جلو رفت، اینجا آزمایشگاهه و باید کار عملی کرد که یعنی باید برین سراغ یه سیستمعامل واقعی. من فکر میکنم minix برای این کار بهتره، چون خیلی کوچیکه. ولی خوب البته لینوکس به واقعیت نزدیکتر میشه، اگه کلاس ظرفیتشو داشته باشه.
اما اگه بخواین استفاده از لینوکس و نصب و این جور چیزا رو یاد بدین، خوب وارد سیلابس درس آز کامپیوتر شدین و هیچ ربطی به سیستمعامل نداره.
اگه آزمایشگاه سیستم عامل هست که باید در مورد کرنل و سیستم فایل و … یعنی باید مباحثی رو که توی درس سیستم عامل گفته شده بایکی از توزیع های لینوکس یا یونیکس یا سولاریس نشون بده، حالا مسائلی مثل بن بست و گرسنگی معادل عملی پیدا کردن براش مشکله ولی فرآیند ها نحوه تعاملشون با هم با فرآیند های فرزند و والد و ویژگی هایی مثل خط لوله مابین فرآیند ها و …. فرآیند های پس زمینه و…. مشخصات سیستم فایل یونیکس یا سولاریس یا لینوکس ( مهم نیست چه توزیعی ) مواردی هستند که دم دستند.برای یاد گیری کار با لینوکس به طور عملی مثلا خط فرمان یا کی دی ای یا گنوم ( اینکه چی کجا قرار داره و برای فلان کار باید به کجا رفت و یا چه فرمانی تایپ کرد) مبحث دانشگاهی نیست. مثلا درس برنامه نویسی در این درس مهم نیست که شما از ویژوال سی استفاده کنی یا از gcc یا از توربو سی یا ….مهم اینه که بفهمی کامپایلر سی چطوری به دستورات شما نگاه می کنه.یا کسی هدف کلاس برنامه نویسی رو روی اینکه منوی های ویژوال سی چه کار می کنند وبرای کامپایل باید کجا رفت ویا توی gcc چه فرمانی رو تایپ کرد، قرار نمی ده فقط در حد اشاره نیم ساعته.
از همه ایده ها ایده بیژن به نظر من بهتره چون مینیکس کد ساده ای داره همه مباحث رو در بر می گیره دید خوبی نسبت به سیستم عامل ها مشابه خودش مثل یونیکس و لینوکس می ده و شما را زیاد در گیر پیچیدگی نمی کنه. البته تدریس مینیکس کسی رو لازم داره که خودش قبلا با مینیکس کار کرده باشه ولی بهترین گزینه همونه.
البته بگم به خود ما توی درس آزمایشگاه سیستم عامل مینیکس نگفتن و این حالت ایده آلشه، همون که همه جا درس میدن انتخاب یکی از توزیع های لینوکس و نشون دادن مباحث تئوریک سیستم عامل روی اونه.
سلام به همه دوستان
۱-به نظر من اول از مهمتر از همه اول اینکه تاریخچه گنو لینوکس و کلا دنیایی اپن سورس و نرم افزار آزاد را توضیح بدی.
۲-مقایسه گنو لینوکس با سیستم عامل های مختلف دیگر.
۳-علت مهاجرت به دنیایی اپن سورس.
۴-من اگه باشم بیس رو یاد میدم.
۵-کتاب آقای باغومیان خوبه.
۶-حتما ذکر کنید که توی سایتهای گنو لینوکسی عضو شوند.
و من هم هنوز این درس رو پاس نکردم!!
.
.
.
.
.
جادی جان ….
این وب سایت درس سیستم عامل دانشگاه ماست :
http://www.it.uu.se/edu/course/homepage/os/distvt09
البته کورس واسه ژانویه ۲۰۰۹ هست .
من شخصا این درسو نداشتم چون فقط به لیسانس تدریس میشه (منم لیسانس برق بودم نه کامپیوتر) …. اما همونطور که میتونی ببینی تمام lecture ها و خود lab ها رو بصورت PDF گذاشتن تو سایت تا هر کی از هر جای دنیا خواست دانلود و استفاده کنه ….
کلا اینجا در طراحی سیستم آموزشی بسیار بسیار هوشمندانه عمل میکنن … با یه نگاه به مطالب میتونی تفاوت سیستم تدریس اینجا با ایران رو متوجه بشی …
قاعدتا تو آزمایشگاه سیستم عامل باید مباحث مطرح شده تو درس سیستم عامل به صورت عملی یاد داده بشه و ربطی به یاد دادن لینوکس و ویندوز و این قضایا نداره. مثلا دانشجوها یه الگوریتم زمان بندی رو پیاده سازی کنن و بنچ مارکش کنن.
این درس و مطالبی که در اون آموزش داده می شه معمولا به عهده استاد درس هستش
ولی به نظرم مطالب زیر میتونه مفید باشه
1- نصب لینوکس و پارتیشن بندی
2- مفهوم سطح کاربر و هسته (معماری لایه ای)
3- مقایسه ویندوز و لینوکس
4- معرفی شل و دستورات کاربردی
bash در لینوکس
5- طریقه نصب و استفاده و پیکربندی برنامه های جانبی
6- مرور مفاهیم اساسی سیستم عامل و آشنایی با برنامه نویسی سطح کرنل
7- ارائه تمرین یا پروژه مرتبط با مفاهیم سیستم عامل
استاد ما برای این درس کلاس نمی داد. جلسه اول پروژه هرکسی رو مشخص کرده بود و هر هفته هم ساعات کلاس رو تو اتاقش بود که هرکی مشکلی داشت بره پیشش. موضوعاتش دو دسته بود؛ یکی پیاده سازی مسئله های کلاسیک سیستم عامل و اون یکی هم نصب و انجام کارهای مختلف تو لینوکس و فری بی اس دی. از اونجایی که خیلیا از برنامه نویسی فراری بودن، میومدن سراغ لینوکس و پروژه ها هم طوری بود که هر کسی یه کار خاصی انجام می داد و در نهایت همه اینا یه مجموعه خوب می شدن. اون موقع ایده خوبی بود برای شناسوندن لینوکس به دانشجوها!
به نظر من موضوعات هرچی جامع تر و کلی تر باشن، بهتره؛ چون 10 جلسه چیزی نیست که بشه توش مسایل تخصصی لینوکس رو گنجوند و ضمناً سطح دانشجوها رو هم باید در نظر داشت.
راستی! در مورد منبع و همینطور توزیع، به نظر من خوبه که محدود نشه به یه منبع و یه توزیع. چند تا از توزیع های معروف مثل دبیان، سوسه، و … معرفی بشه و همینطور میز کارهای مختلف! بچه ها برن خودشون انتخاب و نصب بکنن.
موضوعات کلی که گفتم، منظورم انجام کارای روزمره و عمومی بود تو لینوکس و برنامه های لینوکسی جایگزین نسخه های مایکروسافتی.
به نظر من اوبونتو از همه بهتره، چون اکثر بچه ها آشنا نیستن و باید یه چیزی باشه که در موردش تو اینترنت بشه مطلب راحت پیدا کرد.
ما با اوبونتو کار کردیم و اول برنامه نویسی با سی رو شروع کردیم و بعد هم یه سری از الگوریتم هایی که برای اشتراک گذاری بودن و یه سری الگوریتم دیگه رو پیاده سازی کردیم
به ما تو درس آز سیستم عامل دستورات پرکاربرد شل لینوکس رو می گفتن. برای طرف فرقی هم نمی کرد کدوم توزیع. اما خب متاسفانه علاوه بر اینکه بچه ها رغبتی برای لینوکس نداشتن و در واقع هیچ آشنایی باهاش نداشتن، خود استاد هم از لینوکس متنفر بود! اما خب درس می داد چون چاره ای نداشت. خودشم همچین از لینوکس بارش نبود همین حد که همون دستورا رو بگه. مثلا یادمه گیر داده بود فدورا بر پایهی دبیان هست!
فقط مینیکس.بررسی و تحلیل کدها و در سطوح بالاتر اصلاح کدهای مینیکس
ازمایشگاه سیستم عامل بیشتر موضوعش روی مطالبی هست که توی درس سیتم عامل خوندیم مثل ترید ها و سمافور و … . اما اونقدر وقت اضافه میتونه داشته باشه که به بچه ها در باره لینوکس چیز هایی یاد بدن . البته اون موضوع هم میتونه بهانه ای بشه که کمپایل و برنامه نویسی رو تو لینوکس ببینند .
اگر در باره شاخه proc/ هم یه چیزایی بگن جالب میشه .
توزیع هم که احتمالا ابونتو ! پارسیکس !
من در دانشگاه علمی کاربردی برای کاردانی های فناوری اطلاعات تدریس می کنم. متاسفانه سطح خیلی پایین است و هیچ زبان برنامه نویسی بلد نیستند و …… برای آزمایشگاه سیستم عامل چی درس بدم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟