Kernel یا هسته سیستم عامل ماژول مرکزی یک سیستم عامل است، بخشی که ابتدا عمل بارگذاری را انجام میدهد و پس از آن در حافظه اصلی (رم) باقی می ماند. اگر سیستمعاملها وجود نداشتند، روشی که ما از فناوری استفاده میکنیم بسیار متفاوت بود، زیرا بدون آنها کامپیوترها و دستگاههای تلفن همراه به درستی کار نمیکردند.
وقتی از سیستم عامل حرف میزنیم نامهایی مانند ویندوز، اندروید، آی او اس یا لینوکس به ذهن میآید، اما آیا تا به حال فکر کردهاید که عملکرد درونی یک سیستم عامل چگونه است؟
با توجه به تعداد زیادی از اقدامات و وظایفی که می توانیم توسعه دهیم، شکی نیست که تعداد فرآیندهای داخلی که در هر ثانیه در حال توسعه هستند بسیار زیاد است بنابراین، چه در مورد موضوع کنجکاو باشید، چه اگر تازه وارد حوزه برنامه نویسی شدهاید، باید در مورد قسمتهای داخلی یک سیستم عامل اطلاعات داشته باشید و کرنل یکی از آنهاست.
kernel چکونه کار میکند ؟
کد بحرانی هسته معمولاً در یک ناحیه مجزا از حافظه بارگذاری میشود که توسط نرمافزار کاربردی یا سایر بخشهای کمتر حیاتی سیستم عامل از دسترسی محافظت میشود. هسته وظایف خود مانند اجرای فرآیندها، مدیریت دستگاه های سخت افزاری مانند هارد دیسک و مدیریت وقفه ها را در این فضای هسته محافظت شده انجام می دهد. در مقابل، برنامههای کاربردی مانند مرورگرها، واژهپردازها یا پخشکنندههای صوتی یا تصویری از فضای جداگانهای از حافظه، فضای کاربر استفاده میکنند. این جداسازی از تداخل دادههای کاربر و دادههای هسته با یکدیگر و ایجاد بیثباتی و کندی جلوگیری میکند، و همچنین از تأثیر سوء عملکرد برنامههای کاربردی بر روی سایر برنامهها یا از کار افتادن کل سیستم عامل جلوگیری میکند. حتی در سیستم هایی که هسته در فضاهای آدرس برنامه گنجانده شده است، حفاظت از حافظه برای جلوگیری از تغییر هسته توسط برنامه های غیرمجاز استفاده می شود.
رابط هسته یک لایه انتزاعی سطح پایین است. هنگامی که یک پردازش از هسته درخواست سرویس می کند، باید یک فراخوانی سیستم را فراخوانی کند، معمولاً از طریق یک تابع wrapper.
طرح های معماری هسته متفاوتی وجود دارد. هسته های یکپارچه به طور کامل در یک فضای آدرس واحد اجرا می شوند و CPU در حالت سرپرست اجرا می شود، عمدتا برای سرعت. میکروکرنلها بیشتر و نه همه خدمات خود را در فضای کاربر اجرا میکنند، مانند فرآیندهای کاربر، عمدتاً برای انعطافپذیری و مدولار بودن.MINIX 3 نمونه قابل توجهی از طراحی میکروکرنل است. در عوض، هسته لینوکس یکپارچه است، اگرچه ماژولار نیز می باشد، زیرا می تواند ماژول های هسته قابل بارگیری را در زمان اجرا وارد و حذف کند.
این جزء مرکزی یک سیستم کامپیوتری مسئول اجرای برنامه ها است. هسته مسئولیت تصمیم گیری در هر زمان را بر عهده می گیرد که کدام یک از برنامه های در حال اجرا باید به پردازنده یا پردازنده ها اختصاص داده شود.
کارهایی که توسط کرنل سیستم عامل انجام می شود:
Access Computer resource: هسته سیستم عامل می تواند به منابع سخت افزاری مختلفی از جمله مانند CPU، سخت افزارهای I/O، و سایر منابع دسترسی داشته باشد. در واقع پل ارتباطی بین کاربر و منابع سیستم است(همانطور که در تصویر فوق نشان داده شده است).
Resource Management: وظیفه کرنل است که منابع را بین فرایندها و پردازش های مختلف به گونه ای تقسیم کند که در هر یک دسترسی متناسبی به منابع موجود داشته باشند.
Memory Management: هر فرآیند به مقداری فضای حافظه نیاز دارد. بنابراین، حافظه باید برای اجرای آن اختصاص شود. پس مدیریت حافظه هم توسط کرنل سیستم عامل صورت می گیرد.
Device Management: دستگاه های جانبی متصل به سیستم توسط پردازش ها مورد استفاده قرار می گیرند. بنابراین ، تخصیص این دستگاه ها توسط Kernel سیستم عامل مدیریت می شود.

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

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