آموزشآموزش لینوکس

هسته یا کرنل (Kernel) لینوکس چیست ؟ انواع هسته های لینوکس

هر سیستم عامل لینوکسی از دو بحش کلی : هسته یا Kernel و پوسته یا Shell تشکیل شده است ، اما در این مقاله قصد داریم تا بر روی هسته لینوکس یا Kernel که به عنوان مغز متفکر سیستم عامل لینو کس عمل می کند ، تمرکز بیشتری داشته باشیم و از زوایای مختلف هم بررسی کنیم از جمله : وظایف هسته لینوکس ، مزایای هسته لینوکس ، انواع هسته لینوکس ، روش نام گذاری کرنل لینوکس ، کامپایل کرنل لینوکس ، مدیریت کامپونننت ها و ماژول های کرنل و … بپردازیم .

کرنل یا هسته لینوکس (Linux Kernel)

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

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

هسته لینوکس از هسته شبیه یونیکس می باشد که بر استفاده ترین و یکی از محبوب ترین هسته ها و سیستم عامل است . هسته لینوکس هم بر روی کامپیوترهای سنتی و معمولی استفاده می شود که توضیع های مختلف لینوکس وجود دارد و هم بر روی دستگاهای تعبیه شده و جانبی نصب می شود مثل (Router ها ، MP3 ها و… ) . هسته لینوکس در سال ۱۹۹۱ توسط دانشجویان علوم کامپیوتر فنلاندی لینوس توروالدز خلق شد و از آن سال به بعد کسانی که علاقه و مهارت داشتن در حال توسعه هسته لینوکس هستند .

جهت دریافت آخرین نسخه پایدار هسته لینوکس می توانید از طریق سایت زیر اقدام به دریافت کنید :

همچنین بخوانید  چگونه مخاطبین حذف شده در اکانت گوگل را بازیابی کنیم؟

www.kernel.org

کرنل یا هسته لینوکس (Linux Kernel)

وظایف هسته لینوکس

مدیریت قطعات

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

2- مدیریت حافظه

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

۳- مدیریت پردازنده

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

۴- ارتباط بین کاربر و سخت‌افزار

در نهایت کرنل لینوکس وظیفه دارد بستری را برای دسترسی اطلاعات مختلف سخت افزاری ، منابع سیستم و … در اختیار برنامه نویسان و کاربران محیا نماید . برنامه نویسان می توانند با استفاده از درخواست های سیستمی به این اطلاعات دسترسی پیدا کرده و در صورت نیاز تغییری در وضعیت سیستم خود بوجود آورند .

بیشتر بدانید :

تفاوت عملکرد ویندوز ۱۰ در مقابل لینوکس با AMD Ryzen 3970X

فراخوان سیستمی با System Call

هر گاه یک نرم‌افزار سطح کاربر نیاز به دسترسی به منابع سیستم و سخت‌افزار را داشته باشد . یکی از توابع درون سیستم عامل را فراخوانی ( Call ) می کند . که به این عمل فراخوان سیستمی ، Systern Call یا Syscall می گویند . فراخوان سیستمی را گاه فراخوان هسته ای نیز می نامند چرا که در اکثر پردازنده های مدرن (مثلا معماری x86) ، برای انجام فراخوان سیستمی پردازنده باید در حالت مد هسته باشد . به زبانی دیگر هیچ برنامه ای حق دسترسی مستقیم به سخت‌افزار را ندارد و باید توسط واسعله ای که سیستم عامل در اختیارش قرار می دهد و نامش فراخوان سیستمی است به سخت‌افزار سیستم دسترسی پیدا نماید .

همچنین بخوانید  چگونه زیرنویس را در KMPlayer تنظیم کنیم؟ تنظیم زیرنویس در KMPlayer

انواع هسته های لینوکس

 انواع هسته های لینوکس

لینوکس فقط نام هسته سیستم عامل GNU / Linux است . واژه « هسته » ، به سامانه نرم افزاری سطح پایینی (به معنی نزدیک تر به سخت‌افزار در رده بندی معماری سیستم عامل ) اشاره می کند که لایه ای در معماری سیستم عامل به نام لایه انتزاع سخت‌افزار را تأمین می کند و دیسک ها و سامانه پرونده گردانی را بررسی می نماید و تراز کردن ذخیره‌سازی داده ها و شبکه بندی و برقراری امنیت را بر عهده دارد دسته های متنوعی برای سیستم های عامل وجود دارد که از این بین می توان به مهمترین آنها اشاره کرد:

۱- هسته یکپارچه یا هسته Monolithic :

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

تفاوت اصلی این معماری با مثلا Microkernel در همین مورد بالا است . به عنوان مثال می توان از نمونه های معماری یکپارچه به موارد زیر اشاره نمود :

1- هسته های یونیکس :

  • BSD ها از جمله OpenBSD ، NetBSD ، FreeBSD و solaris
  • IBM AIX
  • HP – UX
  • Mini

2- هسته های شبه یونیکس :

  • لینوکس

2- ریز هسته (MicroKernel) :

ریز هسته یا Microkernel یک هسته کامپیوتری است که سازو کارهای لازم پیاده‌سازی سیستم عامل را فراهم می کنند ، حیزهایی مانند مدیریت فضای آدرس سطح پایین ، مدیریت نخ ها و ارتباطات میان پردازنده ای . اگر سخت‌افزار چندین سطح دسترسی داشته باشد ، آنگاه ریز هسته تنها بخشی از نرم اقرار است که بالاترین سطح دسترسی را داراست که معمولا به آن وضعیت هسته می گویند . در ساختار ریز هسته ای سرویس های واقعی سیستم عامل مانند : راه انداز قطعات و پشته های پروتکل ، سیستم فایل ها و دستورهای رابط کاربری در فضای کاربر نگهداری می شود .

3- هسته ترکیبی (Hybrid Kernel) :

ساختاری برای هسته سیستم عامل است که هم ویژگی های ریزهسته و هم ویژگی های هسته یکپارچه را با هم دارد . مدل های سنتی مورد استفاده در هسته سیستم عامل ها ، مدل های هسته یکپارچه و ریز هسته بوده اند ( Exo-Kernel , Nano-Kernel حالات کوچکتری از ریز هسته هستند ) . هسته های ترکیبی یا Hybrid Kernel به خاطر شباهتش به مدل یکپارچه ، بحث برانگیز بوده است . ایده اصی پشت این ساختار این بوده که هسته از ساختاری مشابه ریزهسته برخوردار باشد ، اما بصورت یک هسته یکپارچه پیاده‌سازی شود .

همچنین بخوانید  رفع مشکل عدم نمایش استوری دیگران در اینستاگرام (بروز شده)

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

سیستم عامل های شرکت مایکروسافت از جمله : NT 4.0 و NT 3.51 و NT 3.5 و NT 3.1 و ۲۰۰۰ و Vista و XP و ۸ و ۷ و ۸.۱ و ۱۰ و همچنین سیستم عامل شرکت اپل یعنی Mac OS X نیز همگی دارای هسته های ترکیبی هستند .

۴- Nano Kernel :

یک NanoKernel نماینده همه سرویس های مجازی از جمله حتی آنهایی که اساسی ترین شباهت را به کنترولرهای وقفه با timer دارند . جهت درایورهای دستگاه به منظور ایجاد حافظه مورد نیاز کرنل می باشد و حتی بسیار کوچکتر از یک Microkernel سنتی است .

5- ابرون هسته (ExoKernel) :

این نوع هسته ها هنوز هم یک روش تجربی جهت طراحی سیستم عامل هستند . این کرنل ها متفاوت از دیگر انواع کرنل ها در عملکردشان هستند که محدود به محافظت و تسهیم سخت‌افزار خام و ارائه هیچ انتزاع سخت افزاری در بالای application های کاربردی می باشند .

امین نوری

امیدوارم از مطالب سایت استفاده کنید و لذت ببرید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا