کرنل چیست و انواع مختلف آن کدام است؟ کار آن چیست؟ در این مقاله به این پرسشها پاسخ میدهیم.
اگر CPU را هسته سختافزاری کامپیوتر در نظر بریم ، بدون شک کرنل سیستم عامل (OS Kernel) ، هسته نرمافزاری آن است.
بیشتر بخوانید: سیستم عامل چیست؟
کرنل یک برنامه کامپیوتری است که قلب و هسته یک سیستم عامل به شمار میآید. از آنجا که سیستم عامل ، دستگاه رایانه را کنترل میکند ، هسته سیستم عامل نیز همه چیز را در سیستم عامل کنترل میکند.
این مهمترین بخش یک سیستم عامل است. هر زمان که سیستم بوت میشود ، کرنل اولین برنامهای است که بعد از بوت لودر بارگذاری میشود. چرا که پیش از هر چیز ، کرنل باید تمامی منابع دستگاه را برای سیستم عامل مدیریت کند. تا هنگامی که سیستم عامل خاموش میشود ، هسته در حافظه اصلی (RAM) باقی میماند.
وظایف کرنل
کرنل وظایف سطح پایین مانند مدیریت دیسک ، مدیریت حافظه ، مدیریت وظایف (tasks) و غیره را بر عهده دارد.
کرنل ، رابط بین کاربر و اجزای سختافزاری سیستم را فراهم میکند. وقتی فرآیندی از هسته سیستم عامل درخواست میکند ، آن را فراخوانی سیستم مینامند.
فضای کرنل و فضای کاربر
کرنل دارای یک فضای محافظت شده است. این فضا ، که یک منطقه جداگانه از حافظه است ، به نحوی طراحی و تخصیص داده شده که دیگر مناطق نمیتوانند به آن دسترسی داشته باشند.
بنابراین ، کد یا کدهای اصلی هسته سیستم عامل ، در این فضای محافظت شده بارگذاری میشوند.
افزون بر آن ، حافظه مورد استفاده سایر برنامه ها را فضای کاربر مینامند. از آنجا که این دو فضای متفاوت در حافظه هستند ، بنابراین ارتباط بین آنها کمی کندتر است.
عملکرد یک هسته سیستم عامل چیست؟
در اینجا عملکردهای گوناگون یک هسته توضیح داده شده است:
دسترسی به منابع محاسباتی: یک هسته میتواند به منابع محاسباتی و رایانشی مختلف مانند پردازنده ، دستگاههای ورودی و خروجی و سایر منابع دسترسی داشته باشد. این عملکرد کرنل ، به عنوان پلی بین کاربر و منابع سیستم عمل میکند.
مدیریت منابع: از جمله مهمترین وظیفههای یک هسته این است است که منابع را بین فرآیندهای مختلف سیستم به اشتراک بگذارد تا دسترسی یکنواخت به منابع توسط هر فرآیند وجود داشته باشد.
مدیریت حافظه: هر فرآیند به فضای حافظه نیاز دارد. بنابراین ، حافظه باید برای اجرا اختصاص داده و تخصیص داده شود. تمام این مدیریت حافظه توسط یک هسته انجام میشود.
مدیریت دستگاه: دستگاههای متصل به سیستم توسط فرآیندها مورد استفاده قرار میگیرند. بنابراین ، تخصیص این دستگاه ها توسط Kernel مدیریت میشود.
حالت کرنل و حالت کاربر
برخی از دستورالعمل ها تنها باید توسط هسته اجرا شوند. بنابراین ، CPU این دستورالعملها را فقط در مود کرنل اجرا میکند. به عنوان مثال ، مدیریت حافظه باید فقط در حالت کرنل انجام شود. در حالت کاربر ، CPU فرآیندهایی را که توسط کاربر در فضای تخصیص داده شده به کاربر درخواست داده میشود ، اجرا میکند.
انواع هسته
در ادامه این بحث که کرنل چیست ، به شناسایی انواع آن میپردازیم. به طور کلی ، پنج نوع هسته وجود دارد. شامل:
۱. هسته یکپارچه (Monolithic Kernel)
هستههای یکپارچه هستههایی هستند که خدمات کاربر و خدمات هسته در یک فضای حافظه یکسان اجرا میشوند ، یعنی حافظههای مختلف برای خدمات کاربر و خدمات هسته در این مورد استفاده نمیشود.
با انجام این کار ، اندازه هسته افزایش مییابد ، که این امر به نوبه خود اندازه سیستم عامل را افزایش میدهد. از آنجا که هیچ فضای کاربر و هسته جداگانهای وجود ندارد ، این فرآیند در هستههای یکپارچه سریعتر اجرا می شود.
مزایا:
۱. این نوع هسته برنامهریزی پردازنده ، برنامهریزی حافظه و مدیریت فایل را فقط از طریق تماسهای سیستمی ارائه میدهد.
۲. این فرایند سریع اجرا میشود زیرا هیچ تخصیص فضای جداگانهای برای کاربر و هسته وجود ندارد.
معایب:
۱. اگر یک سرویس از کار بیفتد ، باعث خرابی کل سیستم میشود.
۲. در صورت نیاز به افزودن سرویسهای جدید ، کل سیستم عامل باید تغییر کند.
۲. ریزهسته (Microkernel)
ریزهسته با هسته یکپارچه متفاوت است زیرا در یک ریزهسته خدمات و خدمات کاربر در فضاهای مختلف پیاده سازی میشود ، یعنی در مورد ریزهستهها از فضای جداگانه برای کاربر و هسته استفاده میکنیم. از آنجا که ما از فضای کاربر و فضای هسته جداگانه استفاده میکنیم ، اندازه هسته و در نهایت اندازه سیستم عامل کاهش مییابد.
همانطور که از فضاهای مختلف برای خدمات کاربر و سرویس هسته استفاده میکنیم ، ارتباط بین برنامه و خدمات با استفاده از تجزیه پیام انجام میشود که به نوبه خود سرعت اجرا را کاهش میدهد.
ویژگیها:
۱. در صورت نیاز به افزودن خدمات جدید ، میتوان آنها را به راحتی اضافه کرد.
۲. از آنجا که در این نوع کرنل از فضای کاربر و فضای هسته جداگانه استفاده میشود ، ارتباطات و حجم پردازشی ایجاد شده بین آنها میتواند زمان اجرای کلی فرآیندها را کاهش دهد.
۳. هسته ترکیبی
هسته ترکیبی ، در واقع ترکیبی از هسته یکپارچه و ریزهسته است. از مزایای سرعت هسته یکپارچه و نیز قابلیت مدولار بودن و پارتیشتنبندی ریز هسته به شکل همزمان استفاده میکند.
هستههای ترکیبی ریزهستههایی هستند که حاوی کد “غیر ضروری” در فضای هسته هستند ، تا کد سریعتر از فضای کاربر اجرا شود. بنابراین برخی از سرویسها مانند شبکه و یا سیستم فایل در فضای هسته اجرا میشوند تا عملکرد سربار را کاهش دهند ، اما همچنان کدهای هسته مربوط به سرور را در فضای کاربر اجرا میکنند.
۴. نانو هسته (Nanokrnel)
در نانو هسته همانطور که از نامش پیداست ، کد هسته بسیار کوچک است ، یعنی کد اجرا شده در حالت ممتاز سختافزار بسیار کوچک است.
اصطلاح نانو هسته برای توصیف هستهای است که از قابلیت عملکرد با دقت نانو ثانیه پشتیبانی میکند.
۵. اگزوکرنل (Exokernel)
یک هسته سیستم عامل است که توسط گروه رایانش موازی MIT و گروه سیستم عاملهای توزیع شده توسعه یافته است.
در اینجا و در این نوع هسته ، دو وظیفه حفاظت از منابع و مدیریت از هم جدا شده است ، که این موضوع به نوبه خود به ما اجازه میدهد سفارشیسازی ویژه برنامه را انجام دهیم.
در Exokernel ، ایده اصلی این نیست که همه انتزاعات (Abstractions) سیستم را اجرا کنید. ایده این است که تا آنجا که ممکن است انتزاعات کمتری در هسته انجام شود ، و در انجام این کار ، انتزاع مورد نظر فقط در مواقع مورد نیاز باید استفاده شود.
بنابراین ، هیچ انتزاع نیرویی در Exokernel وجود نخواهد داشت و این مشخصهای است که آن را از هسته و ریزهسته یکپارچه متمایز میکند. اما نکته منفی این طراحی پیچیده است. طراحی Exokernel بسیار پیچیده است.
در این مقاله در مورد اینکه کرنل چیست و انواع آن مطالبی آموختیم. با تشکر.
این مقاله برای من مفید بود
1+ 4 نفر این مقاله را پسندیده