چند سوال راجع برنامه نویسی سیستیمی و کاربردی لطفا اگه بلدید جواب بدین

سلام چند تا سوال ذخنم رو مشغول کرده گفتم تو یک تاپیک بتون بگم

اول : سیستم عاملی مثل ویندوز چجور رو یک کامپیتور نصب میشه در صورتی اون کامپیوتر اصلا سیستم عامل نداره؟

دوم : چطور یک نرم افزار درست کنیم و بندازیم رو CD بعد بزاریم تو یک کامپیوتری که سیتسم عامل ندار ولی بازم نرم افزار اجرا بشه؟

سوم : وقفه چیه؟ مثلا میگن جدول بردار وقفه منظورشون چیه؟

چهارم : میدونیم که زبان برنامه نویسی C# روش برنامه نویسی WPF رو داره، زبان C++ و Java همچین چیزی دارن که مثلا باهاش برنامه های گرافیکی جالب با فرم شیشه ای طراحی کرد؟

ممنونم که خوندید

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

سلام بر شما

اول: نصب شدن سیستم عامل از گذشته تا الان روش های مختلفی داشته. ما توی کامپیوتر های با معماری IBM دو مدل بوت داریم. یکی BIOS و یکی هم UEFI.

توی بوت کردن به روش BIOS که روش قدیمی تری هم هست به این صورته که ما یک چیزی داریم به اسم MBR یا Master Boot Record که اولین سکتور از هارد رو میخونه و هر چیزی که داخل اون بود اجرا میشه. قبلا سیستم عامل ها خیلی کوچیک بودن و سیستم عامل رو مستقیم توی همون قرار میدادن ولی الان کرنل ها خیلی بزرگ شدن و برای حل این مشکل اومدن یه برنامه BootLoader نوشتن و اون رو توی MBR قراردان که توی اون بیان سیستم عامل هارو پیدا کنن و نشون بدن و هر کدوم رو که انتخاب کنید اون کرنل لود بشه. توی لینوکس ها معروف ترین بوت لودر اسمش Grub2 هستش.

روش دیگه هم UEFI هست که اجازه میده که مخالف BIOS (که فقط از یک جا سیستم رو بوت میکرد) از هر جای هارد به هر سایزی سیستم رو بوت کنیم و یا این که یه بوت لودر رو اون تو قرار بدیم که ویندوز این روش رو دوست داره ولی لینوکس بیشتر ترجیح میده که روی این هم بوت لودر بریزه تا بتونیم همزمان چندتا لینوکس یا چندتا ویندوز داشته باشیم و خودمون انتخاب کنیم که کدوم بوت بشه و اگر یکی از سیستم ها دچار مشکل بشه بقیه به خوبی کار کنن.

یک سری مشکلات هم با Secureboot در UEFI وجود داشت که فقط سیستم های verify شده میتونستن نصب بشن و ... که توصیه میکنم سرچ کنید و اطلاعات کامل تر رو پیدا کنید.

سوال دوم: توی مراحل بوت شدن سیستم ما اول firmware رو داریم که POST رو اجرا میکنه (مباحث مربوط به سیستم عامل) و بعد از اون کرنل لود میشه و بعد از اون هم کرنل برنامه ها و سرویس های دیگرو اجرا میکنه.

پس سیستم ما یه firmware داره که برنامه نوشته شدمون رو باید بوتیبل کنیم و بدیم بهش تا موقع بوت اجرا بشه.

سوال سوم: وقفه ها مربوط به الگوریتم های زمان بندی CPU هستند که به دو تا دسته وقفه های نرم افزاری و سخت افزاری تقسیم میشه  هر کدوم از این ها هم انواع مختلفی مثل وقفه های IO و وقفه های نقص سخت افزار و ... دارن.

به طور کلی سیستم عامل برای تقسیم بندی وظایف و این که CPU بتونه برنامه هارو به شکل همزمان اجرا کنه به هر process یک زمانی رو اختصاص میده و میان هر کدوم یه وقفه ای ایجاد میکنه. الگوریتم های خیلی زیادی هست که توی سیستم عامل ها پیاده میشه و اگر بخواید به طور کامل الگوریتم هارو بخونید باید کتاب یا داکیومنت های مربوط به این موضوع رو دنبال کنید.

سوال چهارم: بله هر کدوم از این زبان ها که نام بردید فریم ورک ها و widget toolkit های مختلفی برای این کار دارن. مثلا توی C++ فریم ورک  Qt وجود داره.

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

موفق باشید.

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

ممنونم ولی بوتیبل چیه؟☺

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

به مراحلی که سیستم روشن میشه در واقع boot شدن سیستم هم میگن،

bootable کردن؛ یعنی بشه اون نرم افزاری که داری رو هنگام روشن شدن کامپیوتر اجرا کرد، ویندوز bootable هست که میشه هنگام روشن شدن اونو اجرا کرد همچنین لینوکس

فرقی نداره نرم افزارت روی چه رسانه ذخیره سازی باشه میتونه فلش مموری باشه یا CD/DVD... به حافظه RAM میره و اجرا میشه

 

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

ج اول: به صورت خیلی خلاصه، روی مادربرد های کامپیوترها درشرکت سازنده روالی تعریف شده که بعد از چک کردن قطعات سخت افزاری به سراغ حافظه جانبی(هارد،فلش،CD/DVD,...) بره و اگه نرم افزاری بود اجرا کنه(ممکنه این نرم افزار همین سیستم عامل لینوکس یا ویندوز باشه)
 اگه دوست داری اطلاعات دقیق تری داشته باشی با جزئیات‌ پیشنهادم مطالعه دو لینک زیر هستش.

http://yon.ir/XenfD

http://yon.ir/nVAKl
موفق باشی.
 

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

سلام

ج چهارم: برای++c فریمورکی مثل qt و برای جاوا javafx مشابه wpf هست

online-support-icon