kernel سیستم عامل چیست

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

هر برنامه ای در سیستم عامل به هنگام اجرا نیاز به منابع سخت افزاری دارد. به هنگام اجرای یک برنامه درخواست منابع مورد نیاز به کرنل ارسال میگردد که البته این درخواست بصورت مستقیم توسط خود برنامه ارسال نمیگردد و از طریق واسط سیستم عامل به کرنل ارسال میگردد. پس از تخصیص منابع توسط سیستم عامل و کرنل، برنامه در سرور مجازی یا سرور اختصاصی اجرا میگردد. در عمل این درخواست System Call نامیده میشود.

دسترسی به منابع سخت افزاری بصورت مستقیم فقط توسط کرنل امکان پذیر میباشد. بنابراین برخی از دسترسی های کرنل را میتوان اجرای درخواست پردازش و صف دستورات اجرایی CPU و یا ایجاد دسترسی تصادفی و آدرسی دهی  به برنامه های اجرا شده در RAM، یا ذخیره سازی اطلاعات در دیسک نام برد.

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

همچنین زمانی که اطلاعاتی توسط ورودی های سخت افزاری، قصد انتقال به سیستم عامل را دارند؛ ابتدا به کرنل ارسال و سپس توسط کرنل به برنامه مد نظر تحویل میگردد.

بطور کل میتوان اینطور هسته سیستم عامل را مطرح نمود که کرنل، واسط کامل میان سخت افزار و سیستم عامل میباشد که تمامی مدیریت ها، کنترل ها و … توسط هسته انجام میگیرد.

بخواهیم بصورت ریزتر با ذکر عنوان مثالی عملکرد هسته در کیبورد را تشریح دهیم بدین صورت میباشد:

شما هنگامی که به عنوان مثال نرم افزار Microsoft Word را اجرا کرده اید، برنامه Word منابع سخت افزاری از جمله کیبورد را جهت دریافت اطلاعات از سیستم عامل به کرنل ارسال میکند. کرنل بعد از آماده سازی منابع درخواستی مورد نیاز، منابع را در اختیار سیستم عامل و برنامه Microsoft Word قرار میدهد. به هنگام فشار دادن هر دکمه از کیبورد ورودی سخت افزار به کرنل منتقل و سپس در اختیار برنامه درخواست دهنده فعال که Microsoft Word میباشد قرار میگیرد. Word با دریافت کدهای اسکی کلید های کیبورد، مطالب تایپ شده شما را در صفحه خود وارد میکند تا بتوانید آنرا ذخیره کنید.

عملکرد کرنل در ذخیره سازی تصادفی در RAM

در مثال قبلی اجرای برنامه Word  این نکته که منابع لازم از جمله رم به چه صورتی میباشد؟ هنگام اجرای نرم افزار منابع مورد نیاز برنامه از جمله Ram توسط کرنل تخصیص داده میشود و برای هر برنامه بصورت تصادفی یک آدرس در محل ذخیره سازی اطلاعات Ram در نظر گرفته میشود که هنگام اجرای نرم افزار Word با استفاده از آدرس های موجود در کرنل میتوان به اطلاعات مدنظر دسترسی پیدا کرد.

تمام عملیات قابل انجام توسط کرنل علاوه بر 2 مورد بالا شامل موارد زیر نیز میباشد:

CPU : این کرنل است که لیست برنامه ها و پردازش های مورد نیاز را در اختیار سی پی یو قرار میدهد تا آنها را پردازش کند.

I/O: کنترل تمامی ورودی و خروجی های سخت افزار یک سیستم کامپیوتری توسط کرنل انجام میگیرد به عنوان مثال دستگاه خروجی پرینتر توسط کرنل شناسایی میگردد، یا اسکنر و یا ماوس و …

HDD: ذخیره سازی اطلاعات روی دیسک ها بصورت کامل توسط کرنل مدیریت و انجام میگیرد، همچنین دسترسی به این اطلاعات ذخیره شده در دیسک نیز توسط کرنل مدیریت میگردد.

کرنل چرا مهم هست؟

هسته اصلی سیستم عامل و مغر و قلب سیستم عامل کرنل میباشد. بنابراین مهمترین قسمت یه سیستم کامپیوتری در کنار سخت افزار و سیستم عامل میباشد.

آسیب پذیری های کرنل سیستم عامل ها مخصوص در سرور یکی از مشکلات بزرگی هست که مدیران سرور ها همیشه درگیر آن هستند. به عنوان مثال هکری که قصد خرابکاری دارد با آلوده کردن کرنل اصلی سیستم عامل شما را از رفع مشکلات ناشی از هک ناامید میکند تا مجبورا سیستم عامل سرور و کلا اطلاعات آن را انتقال دهید. البته در سیستم عامل های لینوکس (که هاست لینوکس بر روی این سیستم عامل میزبانی می‌شود) جهت رفع این مشکل سیستم های با نام Kernel Care وجود دارد که تا حدود بسیار زیادی خیال شما را از این مشکلات راحت خواهند نمود.

انتخاب آسان هاست و سرور مجازی