در یک تعریف کلی و ساده میتوان گفت که کرنل مغز یک سیستم عامل میباشد.
این مغز با سخت افزارهای موجود برروی سیستم در ارتباط بوده و امکان استفاده از این سخت افزارها را برآورده میکند.
در یک نگاه بسیار کلی جایگاه کرنل در یک سیستم عامل را به صورت زیر میتوان در نظر گرفت:
مطابق شکل، کرنل یک راه ارتباطی میان برنامههایی که شما در اختیار دارید (مثل Chrome، Excel، Photoshop و ...) و سخت افزار شما میباشد.
ارتباط با سخت افزار به چه صورت است؟
فرض کنید به بازار کامپیوتر میروید و یک کامپیوتر میخرید.
درون آن یک سری سخت افزار همانند پردازنده و کارت گرافیک و حافظه و ... وجود دارد.
طبیعتا شما نمیتوانید مستقیما از آنها استفاده کنید.
یعنی شما نمیتوانید به پردازنده خود بگویید که برای من یک عمل ضرب انجام بده!
مگر اینکه یک سیستم عامل مثل ویندوز برروی کامپیوتر خود نصب کنید و سپس به ویندوز بگویید که عملیات ضرب را برای شما انجام دهد.
در این صورت ویندوز درخواست شما را به دست پردازنده میرساند و نتیجه را برای شما برمیگرداند.
پس کرنل را میتوان به عنوان عنصری در نظر گرفت که ارتباط مستقیم با سخت افزار شما دارد و میتواند با آنها حرف بزند.
پس کرنل درخواستهای کاربر را به اطلاع سخت افزارهای مختلف میرساند و نتیجه عملیات را به کاربر برمیگرداند.
اجزای کلی سیستمعامل
حال، خود سیستم عامل نیز از دو قسمت کلی تشکیل شده است:
- کرنل (Kernel)
- پوسته (Shell)
این دو جز باهم ارتباط مستقیم دارند.
شما برای ارتباط با کرنل و اعلام درخواستهای خود به آن، نیاز دارید که از یک پوسته استفاده کنید.
چرا که اگر قرار باشد مستقیما با کرنل ارتباط برقرار کنیم، کار کردن با کامپیوتر برای بسیاری از افراد یک عملیات دشوار و پیچیده میشود.
انواع پوسته
در اکثر سیستم عاملها دو نوع پوسته وجود دارد.
یک پوسته گرافیکی (GUI) همانند تصویر زیر که پوسته گرافیکی ویندوز است:
و یک پوسته خط فرمان (CLI) همانند تصویر زیر که پوسته خط فرمان ویندوز است:
که هر دوی این پوستهها با کرنل ویندوز ارتباط دارند و از طریق هر دوی آنها میتوانید با کرنل خود ارتباط برقرار کنید.
همه این عملیات، یعنی قراردادن پوسته برروی کرنل و بوجود آمدن چندین پوسته برای استفاده راحتتر از کامپیوتر و سیستمعامل میباشد.
هر کاربری مطابق با سلیقه و نیاز خود برای ارتباط با کرنل از پوسته مدنظر خود استفاده میکند.
همچنین باید توجه کرد که هر یک از این پوستهها مزیت خود را دارند.
محیط گرافیکی برای عملیاتی همانند مرورگری وب، ویرایش عکس و ... کاربرد دارد.
در حالی که محیط خط فرمان عموما برای کنترل و مدیریت سیستم مورد استفاده قرار میگیرد.