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