خب حالا میریم سراغ درک مفهوم یک متن . در اینجا یک متن از کتاب آموزش برنامه نویسی به زبان جاوا رو خواهیم دید و سعی می کنیم مفهومش رو فرا بگیریم . البته باید این نکته رو بگم که هدف ما در اینجا صرفا ترجمه ی یک متن نیست بلکه قصد داریم تا مفهوم اصلی یک متن رو که مرتبط با رشته ی خودمون هست فرابگیریم . به این ترتیب شما میتونید به راحتی از منابع اصلی برای یادگیری مباحث مرتبط با رشته ی کامپیوتر بهره ببرید . لذا همیشه نیاز به ترجمه ی لغت به لغت متون انگلیسی نداریم .
مفهوم متن :
در بحث جاوا ، تشخیص 3 مفهوم از یکدیگر دارای اهمیت هست که اونها عبارت هستن از زبان برنامه نویسی جاوا ، ماشین مجازی جاوا و پلتفرم جاوا . زبان برنامه نویسی جاوا ، زبانی هست که برنامه های کاربردی جاوا و سایر اجزا با اون نوشته میشن . وقتی که یک برنامه ی جاوا کامپایل میشه ، به کد های بیتی تبدیل میشه که زبان ماشین قابل حمل یک ساختار CPU هست و اصطلاحا به عنوان ماشین مجازی جاوا شناخته میشه . ماشین مجازی میتونه مستقیما در سخت افزار اجرا بشه اما معمولا در فرم یک برنامه ی نرم افزاری که کد های بیتی رو اجرا و تفسیر میکنه ، اجرا میشه .
پلتفرم جاوا هم از زبان جاوا و هم از ماشین مجازی جاوا متمایز هست . پلتفرم جاوا ، مجموعه ی از پیش تعریف شده ای از کلاس های جاواست که در هر راه اندازی و نصب جاوا به وجود دارن . این کلاس ها برای به کار رفتن توسط همه ی برنامه های جاوا در دسترس هستن . همچنین گاهی پلتفرم جاوا به عنوان محیط زمان اجرای جاوا یا رابط های برنامه نویسی کاربردی جاوا مورد مراجعه قرار میگیره . پلتفرم جاوا میتونه با بسته های انتخابی ، گسترش و بسط پیدا کنه . این رابط های برنامه نویسی کاربردی در برخی نسخه های جاوا وجود دارن اما در همه ی نصب ها ممکنه که وجود نداشته باشن .
⚡️بازم تاکید میکنم که در اینجا قصد نداشتیم که یک ترجمه ی دقیق از متن داشته باشیم بلکه میخواستیم که یک مفهوم کلی از متن داشته باشیم.
⚡️لغات مهم هم در متن انگلیسی با رنگ زرد مشخص شدن . بهتر هست که اونها رو هم در کنار لغات عمومی و تخصصی این جلسه ، مطالعه کنید .
در بحث جاوا ، تشخیص 3 مفهوم از یکدیگر دارای اهمیت هست که اونها عبارت هستن از زبان برنامه نویسی جاوا ، ماشین مجازی جاوا و پلتفرم جاوا . زبان برنامه نویسی جاوا ، زبانی هست که برنامه های کاربردی جاوا و سایر اجزا با اون نوشته میشن . وقتی که یک برنامه ی جاوا کامپایل میشه ، به کد های بیتی تبدیل میشه که زبان ماشین قابل حمل یک ساختار CPU هست و اصطلاحا به عنوان ماشین مجازی جاوا شناخته میشه . ماشین مجازی میتونه مستقیما در سخت افزار اجرا بشه اما معمولا در فرم یک برنامه ی نرم افزاری که کد های بیتی رو اجرا و تفسیر میکنه ، اجرا میشه .
پلتفرم جاوا هم از زبان جاوا و هم از ماشین مجازی جاوا متمایز هست . پلتفرم جاوا ، مجموعه ی از پیش تعریف شده ای از کلاس های جاواست که در هر راه اندازی و نصب جاوا به وجود دارن . این کلاس ها برای به کار رفتن توسط همه ی برنامه های جاوا در دسترس هستن . همچنین گاهی پلتفرم جاوا به عنوان محیط زمان اجرای جاوا یا رابط های برنامه نویسی کاربردی جاوا مورد مراجعه قرار میگیره . پلتفرم جاوا میتونه با بسته های انتخابی ، گسترش و بسط پیدا کنه . این رابط های برنامه نویسی کاربردی در برخی نسخه های جاوا وجود دارن اما در همه ی نصب ها ممکنه که وجود نداشته باشن .
⚡️بازم تاکید میکنم که در اینجا قصد نداشتیم که یک ترجمه ی دقیق از متن داشته باشیم بلکه میخواستیم که یک مفهوم کلی از متن داشته باشیم.
⚡️لغات مهم هم در متن انگلیسی با رنگ زرد مشخص شدن . بهتر هست که اونها رو هم در کنار لغات عمومی و تخصصی این جلسه ، مطالعه کنید .
به عنوان آخرین مطلب هم در قسمت "متفرقه" تصویری رو تقدیمتون میکنم که حاوی برخی از پیشوند های مهم هست :
خب دوستان عزیز برای این جلسه کافیه .. سعی کردیم طبق برنامه پیش بریم و مطالبی رو تقدیم حضورتون کنیم .. امیدوارم مفید بوده باشه ..
انشاءالله در جلسه ی بعدی هم طبق همین روند پیش خواهیم رفت ..
موضوع گرامر هفته ی بعد "وجه مجهول" هست
متن مربوط به درک مفهوم هم احتمالا درباره ی زبان برنامه نویسی #C خواهد بود .
مثل همین جلسه چندین لغت عمومی و تخصصی هم تقدیم حضورتون خواهد شد ..
با تشکر از همراهی شما
پیروز و سربلند باشید✋
انشاءالله در جلسه ی بعدی هم طبق همین روند پیش خواهیم رفت ..
موضوع گرامر هفته ی بعد "وجه مجهول" هست
متن مربوط به درک مفهوم هم احتمالا درباره ی زبان برنامه نویسی #C خواهد بود .
مثل همین جلسه چندین لغت عمومی و تخصصی هم تقدیم حضورتون خواهد شد ..
با تشکر از همراهی شما
پیروز و سربلند باشید✋
باسلام خدمت دوستان عزیز، وکیلی هستم با سری آموزشای سیستم عامل در خدمتتون هستم.
جلسه قبل در مورد سیستم عامل و نحوه مدیریت سخت افزار توسط سیستم عامل باهم بحث کردیم
در این جلسه مفاهیم پایه و تاریخچه پیشرفت سیستم عامل را خدمتتون ارائه می کنم.
در ابتدا یکی از مهمترین مفاهیم پایه سیستم عامل را بررسی می کنیم:
جلسه قبل در مورد سیستم عامل و نحوه مدیریت سخت افزار توسط سیستم عامل باهم بحث کردیم
در این جلسه مفاهیم پایه و تاریخچه پیشرفت سیستم عامل را خدمتتون ارائه می کنم.
در ابتدا یکی از مهمترین مفاهیم پایه سیستم عامل را بررسی می کنیم:
وقفه
گاهی رویدادی در خارج یا درون پردازنده رخ می دهد که لازم است پردازنده روند عادی اجرای دستورالعمل های برنامه جاری را موقتا قطع کرده و به رویداد اتفاق افتاده پاسخ دهد.
پس از پاسخ به رویداد به اجرای برنامه قطع شده برگشته و به ادامه روند آن می پردازد.
به این رویداد وقفه گفته می شود.
پاسخ به وقفه به معنی اجرای رویه اداره کننده وقفه (interrupt handler) یا روال سرویس وقفه ISR می باشد.هر وقفه یک isr مخصوص در سیستم عامل دارد.
گاهی رویدادی در خارج یا درون پردازنده رخ می دهد که لازم است پردازنده روند عادی اجرای دستورالعمل های برنامه جاری را موقتا قطع کرده و به رویداد اتفاق افتاده پاسخ دهد.
پس از پاسخ به رویداد به اجرای برنامه قطع شده برگشته و به ادامه روند آن می پردازد.
به این رویداد وقفه گفته می شود.
پاسخ به وقفه به معنی اجرای رویه اداره کننده وقفه (interrupt handler) یا روال سرویس وقفه ISR می باشد.هر وقفه یک isr مخصوص در سیستم عامل دارد.
به طور کلی وقفه ها دو نوع هستند:
وقفه های سخت ازاری (یا خارجی) که از سوی یک سخت افزار خارجی ازCPU به صورت یک سیگنال ناهمگام (آسنکرون: در یک لحظه تصادفی که از قبل مشخص نیست در کجای برنامه جاری به وقوع می پیوندد) به پردازنده ارسال می شود. این وقفه ها به چند دسته تقسیم می شود:
1. وقفه های I/O
2. خطای ماشین (machin chek) یا نقص سخت افزار(hardware fault )
3. وقفه ساعت (clock) زمان سنج(timer)
4. وقفه restat
5. سایر وقفه های خارجی(external )
وقفه های نرم افزاری(یا داخلی) که به صورت همگام (سنکرون) در اثر اجرای دستورالعمل خاصی از برنامه جاری، خواسته یا ناخواسته،به وقوع می پیوندد. این وقفه ها به چند دسته تقسیم می شوند:
وقفه های سخت ازاری (یا خارجی) که از سوی یک سخت افزار خارجی ازCPU به صورت یک سیگنال ناهمگام (آسنکرون: در یک لحظه تصادفی که از قبل مشخص نیست در کجای برنامه جاری به وقوع می پیوندد) به پردازنده ارسال می شود. این وقفه ها به چند دسته تقسیم می شود:
1. وقفه های I/O
2. خطای ماشین (machin chek) یا نقص سخت افزار(hardware fault )
3. وقفه ساعت (clock) زمان سنج(timer)
4. وقفه restat
5. سایر وقفه های خارجی(external )
وقفه های نرم افزاری(یا داخلی) که به صورت همگام (سنکرون) در اثر اجرای دستورالعمل خاصی از برنامه جاری، خواسته یا ناخواسته،به وقوع می پیوندد. این وقفه ها به چند دسته تقسیم می شوند:
1. فراخوانی های سیستمی(system call): این وقفه ها که فراخوان راهبردی یا سرپرستی ، فراخوان ناظر یا فراخوان هسته نیز نامیده می شود عموما وقتی رخ می دهد که برنامه سطح کاربر نیاز به استفاده از سرویس های سطح هسته سیستم عامل داشته باشد.
2. خطای برنامه (program check) یا استثا (exeption): این وقفه وقتی رخ می دهد که دستورالعمل جاری برنامه بخواهد عملی را انجام دهد که اصولا غیر مجاز است مانند خطای سرریز یا تقسیم بر صفر، یا اینکه دستورالعمل جاری برنامه سطح کاربر بخواهد عمدا یا سهوا عملی انجام دهد که در مد کاربر غیر مجاز است مانند نقص حفاظتی از قبیل مراجعه به یک آدرس نادرست یا غیر مجاز.
3. سیگنال (signal): یک وقفه نرم افزاری است که توسط یک فرآیند یا سیستم عامل یا کاربر به یک یا چند فرآیند ارسال می شود.
2. خطای برنامه (program check) یا استثا (exeption): این وقفه وقتی رخ می دهد که دستورالعمل جاری برنامه بخواهد عملی را انجام دهد که اصولا غیر مجاز است مانند خطای سرریز یا تقسیم بر صفر، یا اینکه دستورالعمل جاری برنامه سطح کاربر بخواهد عمدا یا سهوا عملی انجام دهد که در مد کاربر غیر مجاز است مانند نقص حفاظتی از قبیل مراجعه به یک آدرس نادرست یا غیر مجاز.
3. سیگنال (signal): یک وقفه نرم افزاری است که توسط یک فرآیند یا سیستم عامل یا کاربر به یک یا چند فرآیند ارسال می شود.
نکته: سیستم عامل های مدرن، مبتنی بروقفه( interrupt driven) هستند. یعنی از راه اندازی کامپیوتر توسط سیستم عامل وسپردن CPU به برنامه کاربر، سیستم عامل بارها به علت وقوع وقفه ها ی گوناگون سخت افزاری یا نرم افزاری در لابه لای اجرای فرایندهای سطح کاربر ظاهر می شود وبه وظایف خویش می پردازد.
نکته: حتی اگر کاری برای اجرا وجود نداشته باشد پردازنده یک برنامه ساده حاوی یک حلقه انتظار مشغول را اجرا خواهد کرد.
نکته: پردازنده های امروزی امکانات خاصی را در اختیار طراحان سیستم عامل می گذارد تا برای حفاظت از سیستم عامل و نیز حفاظت برنامه ها در برابر یکدیگر مورد استفاده قرار دهند.
نکته: حتی اگر کاری برای اجرا وجود نداشته باشد پردازنده یک برنامه ساده حاوی یک حلقه انتظار مشغول را اجرا خواهد کرد.
نکته: پردازنده های امروزی امکانات خاصی را در اختیار طراحان سیستم عامل می گذارد تا برای حفاظت از سیستم عامل و نیز حفاظت برنامه ها در برابر یکدیگر مورد استفاده قرار دهند.
مختصری در مورد تاریخچه سیستم عامل:
1)در نسل اول کامپیوترها (1945-1955) که از لامپ خلا برای ساخت آن ها استفاده می شد ، زبان های برنامه نویسی ابداع نشده بودند و سیستم عامل نیز اصلا وجود نداشت و برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوترهای بزرگ و گران قیمت را داشتند.
2)نسل دوم سیستم عامل از ترانزیستور ساخته شدند. نحوه کار به این صورت است که کاربر برنامه را نوشته تحویل کامپیوتر میدهد کامپیوتر اجرا کرده و نتیجه را به کاربر تحویل میدهد، از این گروه می توان سیستم های offline spooling و online spooling, سیستم های دسته ای چند برنامگی، سیستم های اشتراک زمانی... نام برد.
1)در نسل اول کامپیوترها (1945-1955) که از لامپ خلا برای ساخت آن ها استفاده می شد ، زبان های برنامه نویسی ابداع نشده بودند و سیستم عامل نیز اصلا وجود نداشت و برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوترهای بزرگ و گران قیمت را داشتند.
2)نسل دوم سیستم عامل از ترانزیستور ساخته شدند. نحوه کار به این صورت است که کاربر برنامه را نوشته تحویل کامپیوتر میدهد کامپیوتر اجرا کرده و نتیجه را به کاربر تحویل میدهد، از این گروه می توان سیستم های offline spooling و online spooling, سیستم های دسته ای چند برنامگی، سیستم های اشتراک زمانی... نام برد.
آموزش این هفته به پایان رسد در جلسه بعدی وارد مفاهیم اصلی سیستم عامل شده و نکات مهم و اصلی سیستم عامل را بیان میکنیم.
با تشکر از توجه شما.
با تشکر از توجه شما.
سلام خدمت دوستان عزیزم.
خوب هستید؟ سلامتید؟ ایام به کامتونه؟ اگه بله که خدا رو شکر.
درخشانی بوده و با قسمت سوم از سری آموزشهای کیوت در خدمتتون هستم!! لازم بذکر است که این قسمت از آموزش شامل فایل ویدئویی نیز میباشد که به زودی در سایت ilikephp.ir قرار خواهد گرفت.
لذا هرجا با عبارت Next-Next روبرو شدید بدانید و آگاه باشید که به تفصیل در فیلم آموزشی به آن خواهیم پرداخت.
اگر یادتان باشد(که فکر نکنم باشه) جلسه اول به طرح سوال و معرفی کیوت و جلسه دوم به تشریح کالبد و دل و رودهی فریمورک کیوت پرداختیم!
قرار بود از این جلسه عملیتر کار کنیم و یه سمپل عملی رو بدیم به کیوت و ببنیم وقتی میخوایم یه برنامهرو بالا بیاریم توی کیوت چه اتفاقی میافته. در این جلسه به قسمت اول این مهم می پردازیم و در جلسه آینده بخش دوم را ارائه خواهم داد.
آمادهاید؟!
خوب هستید؟ سلامتید؟ ایام به کامتونه؟ اگه بله که خدا رو شکر.
درخشانی بوده و با قسمت سوم از سری آموزشهای کیوت در خدمتتون هستم!! لازم بذکر است که این قسمت از آموزش شامل فایل ویدئویی نیز میباشد که به زودی در سایت ilikephp.ir قرار خواهد گرفت.
لذا هرجا با عبارت Next-Next روبرو شدید بدانید و آگاه باشید که به تفصیل در فیلم آموزشی به آن خواهیم پرداخت.
اگر یادتان باشد(که فکر نکنم باشه) جلسه اول به طرح سوال و معرفی کیوت و جلسه دوم به تشریح کالبد و دل و رودهی فریمورک کیوت پرداختیم!
قرار بود از این جلسه عملیتر کار کنیم و یه سمپل عملی رو بدیم به کیوت و ببنیم وقتی میخوایم یه برنامهرو بالا بیاریم توی کیوت چه اتفاقی میافته. در این جلسه به قسمت اول این مهم می پردازیم و در جلسه آینده بخش دوم را ارائه خواهم داد.
آمادهاید؟!
فصل سوم: ساختار IDE کیوت یا QtCreator
دانلود و نصب:
بعد از دانلود کیوت از سایت qt.io یا از آدرس:
https://download.qt.io/archive/qt/
آخرین نسخه یعنی 5.5 و سپس نسخهی 5.5.1 را انتخاب کنید. سپس مطابق تصویر۱ نسخهی مورد نظرتان را انتخاب و دانلود کنید.(پیشنهاد ما: نسخهی ویندوز –> برای برنامهنویسی اندروید)
فایل نصب را نصب کنید! این کار 10 مرحله بوده و بسیار راحت است.
تنها نکتهای که در هنگام نصب باید در نظر داشته باشید این است که در دومین مرحله از نصب(تصویر ۲) باید در کیوت ثبت نام کنید. اگر قبلا در سایت qt.io حساب کاربری ندارید، در همان پنجرهی نصب در قسمت SignUp ثبت نام کنید. بقیهی مراحل هم که Next – Next است.
بعد از نصب کیوت در منوی استارت روی آیکون Qt Creator(Community) کلیک کنید تا باز شود. تصویر ۳ معرفی محیط Qt Creator را انجام داده است. واو! چقدر ساده! بله همانطور که میبینید این محیط در نهایت سادگی است و توسعهدهندگان این IDE کلی عمر و فسفر مصرف کردن تا پیچیدگی را به حداقل برسانند و این خدمت بسیار بزرگی به سادگی کار و تمرکز روی اهداف اصلی پروژه میکند. دقت کنید که پروژههایی مثل Wireshark و MagiX از دل همین سادگی بیرون آمدهاند!
نکته۱: Qt Creator صرفا یک IDE است که کار تولید برنامهها با فریمورک کیوت را راحتتر میکند. میتوان از فریمورک کیوت در محیط های غیر از Qt Creator هم استفاده کرد. مثل Visual Studio و CodeBlocks و ...
نکته۲: خود محیط Qt Creator با این همه عظمتش(که در آینده میبینیم) توسط فریمورک Qt نوشته شده!
دانلود و نصب:
بعد از دانلود کیوت از سایت qt.io یا از آدرس:
https://download.qt.io/archive/qt/
آخرین نسخه یعنی 5.5 و سپس نسخهی 5.5.1 را انتخاب کنید. سپس مطابق تصویر۱ نسخهی مورد نظرتان را انتخاب و دانلود کنید.(پیشنهاد ما: نسخهی ویندوز –> برای برنامهنویسی اندروید)
فایل نصب را نصب کنید! این کار 10 مرحله بوده و بسیار راحت است.
تنها نکتهای که در هنگام نصب باید در نظر داشته باشید این است که در دومین مرحله از نصب(تصویر ۲) باید در کیوت ثبت نام کنید. اگر قبلا در سایت qt.io حساب کاربری ندارید، در همان پنجرهی نصب در قسمت SignUp ثبت نام کنید. بقیهی مراحل هم که Next – Next است.
بعد از نصب کیوت در منوی استارت روی آیکون Qt Creator(Community) کلیک کنید تا باز شود. تصویر ۳ معرفی محیط Qt Creator را انجام داده است. واو! چقدر ساده! بله همانطور که میبینید این محیط در نهایت سادگی است و توسعهدهندگان این IDE کلی عمر و فسفر مصرف کردن تا پیچیدگی را به حداقل برسانند و این خدمت بسیار بزرگی به سادگی کار و تمرکز روی اهداف اصلی پروژه میکند. دقت کنید که پروژههایی مثل Wireshark و MagiX از دل همین سادگی بیرون آمدهاند!
نکته۱: Qt Creator صرفا یک IDE است که کار تولید برنامهها با فریمورک کیوت را راحتتر میکند. میتوان از فریمورک کیوت در محیط های غیر از Qt Creator هم استفاده کرد. مثل Visual Studio و CodeBlocks و ...
نکته۲: خود محیط Qt Creator با این همه عظمتش(که در آینده میبینیم) توسط فریمورک Qt نوشته شده!
ایجاد پروژهی جدید:
خب حالا که مختصرا با محیط QtCreator آشنا شدید وقتش است که با کلیک بر روی دکمهی New Project پروژهی جدیدی را استارت بزنیم؛ اولین پروژهی کیوتمان! تصویر ۴ پنجرهی New Project را معرفی میکند.
از پنجرهی ظاهر شده فعلا در قسمتApplication گزینه ی Qt Widgets Application رو کلیک کنید.
در پنجره جدید در کادر Name نام پروژهی خود را وارد کنید(من MyFirstTestProjectInQt را نوشتهام) و سپس Next-Next را طبق معمول بزنید و در نهایت Finish .
میبینید که در پنل سمت چپ نام پروژهی شما با چندین پوشه و فایل درون خودش ساخته شده. تصویر ۵ ساختار پروژههای کیوت رو معرفی میکنه.
فعلا کاری نکنید: تنها و تنها در قسمت سمت چپ پایین QtCreator دکمهی سبز رنگ Run رو بزنید.
پنجرهای باز می شود. تبرییییییییییییک!! شما با موفقیت اولین برنامهی کیوت خود را اجرا کردید! ذوق نکردید؟ خوبه بدونید برنامه نویسا در سالهای 70-80 برای نمایش همین صفحهی سفیدی که میبینید هزاران خط کد باید مینوشتیم!
خب حالا که مختصرا با محیط QtCreator آشنا شدید وقتش است که با کلیک بر روی دکمهی New Project پروژهی جدیدی را استارت بزنیم؛ اولین پروژهی کیوتمان! تصویر ۴ پنجرهی New Project را معرفی میکند.
از پنجرهی ظاهر شده فعلا در قسمتApplication گزینه ی Qt Widgets Application رو کلیک کنید.
در پنجره جدید در کادر Name نام پروژهی خود را وارد کنید(من MyFirstTestProjectInQt را نوشتهام) و سپس Next-Next را طبق معمول بزنید و در نهایت Finish .
میبینید که در پنل سمت چپ نام پروژهی شما با چندین پوشه و فایل درون خودش ساخته شده. تصویر ۵ ساختار پروژههای کیوت رو معرفی میکنه.
فعلا کاری نکنید: تنها و تنها در قسمت سمت چپ پایین QtCreator دکمهی سبز رنگ Run رو بزنید.
پنجرهای باز می شود. تبرییییییییییییک!! شما با موفقیت اولین برنامهی کیوت خود را اجرا کردید! ذوق نکردید؟ خوبه بدونید برنامه نویسا در سالهای 70-80 برای نمایش همین صفحهی سفیدی که میبینید هزاران خط کد باید مینوشتیم!
خب دیگه بسه. برید استراحت کنید. تا جلسه آینده تعارف نکنید خودتون یه کم با این جناب کیوت ور برید و باهاش بازی کنید. راستی حتما حتما و حتما تصاویری که برایتان فرستادم مطالعه کنید. در راحتی کارکردنتان با کیوت تاثیر بسزایی خواهد داشت.
خدانگهدار!😊🌺🌺
خدانگهدار!😊🌺🌺