کرنل لینوکس چیست؟ آشنایی با انواع هسته لینوکس
کرنل لینوکس چیست؟
کرنل یا هسته لینوکس جزو اصلی سیستم عامل لینوکس (OS) و رابط اصلی بین سخت افزار کامپیوتر و فرآیندهای آن است و منابع را تا حد امکان کارآمد مدیریت می کند. در این مقاله با کاربرد، وظایف و انواع کرنل لینوکس آشنا میشوید.
این هسته به این دلیل نامگذاری شده است که مانند دانه در یک پوسته سخت در سیستم عامل وجود دارد و تمام عملکردهای اصلی سخت افزار را کنترل می کند، خواه تلفن، لپ تاپ، سرور یا هر نوع رایانه دیگری باشد.
در واقع هر سیستم عاملی اعم از کامپیوترها، گوشیها، تبلتها و … بدون هسته یا کرنل کاربرد ندارند و کرنل در یک سیستم مانند مغز میباشد که بدون آن کارایی وجود ندارد. کرنل کارهای پایهای را در یک سیستم انجام میدهد و دلیل ارتباط سخت-افزار و نرمافزار میباشد.
کرنل برای ایجاد این ارتباط از درایورها استفاده میکند، درایورها میتوانند بخشی از خود هسته یا کرنل باشند یا میتواند به صورت جداگانه نصب شوند.
کاربرد و وظایف کرنل لینوکس
کرنل لینوکس پراستفادهترین سورسکد اپنسورس نرمافزاری در تاریخ نرمافزارهای کامپیوتری است و در همه جا حضور دارد از گوشیها موبایل تا ایستگاههای فضایی.
هسته لینوکس کاربردهای زیادی دارد از کاربردهای رایج و سادهی آن میتوان به سیستم عامل گوشیهای اندروید اشاره کرد. حتی نسخههای دیگر اندروید که در ساعتهای هشمند به کار میروند نیز وابیته به کرنل لینوکس عمل میکنند.
برای کاربرد پیچیدهی کرنل لینوکس میتوانیم ابرکامپیوترها و سرورهای موجود در اینترنت را مثال بزنیم که بر پایهی آن کار میکنند.
مهمترین وظایف کرنل لینوکس
1) مدیریت سختافزارها و نرمافزارها به کمک درایورها
در یک کامپیوتر قطعات بیشماری مانند هارد، کارت گرافیک، کارت صدا، رم و … وجود دارد که مدیریت و هماهنگی آنها با هم بر عهدهی هسته لینوکس است. کرنل با کمک درایورها در مورد تمام قطعات آگاهی لازم را دارد و زمینهی ارتباط قطعات با هم و فعالیت مجموعه را فراهم میکند.
2) مدیریت حافظه و رم
برای فعالیت هر نرمافزار و هر پردازشی که در یک سیستم انجام میشود حافظه رم نیاز است. مدیریت حافظه برای هر پردازش به طوری که مشکلی برای پردازشهای دیگر رخ ندهد به عهدهی کرنل لینوکس است.
3) مدیریت فرآیند پردازش
وظیفهی دیگر کرنل لینوکس اطمینان از این است هر پردازش زمان کافی را رای تکمیل فعایت خود داشته باشد در واقع کرنل لینوکس مانند یک مدیر فعالیت هر پروسه را بررسی و با توجه به محتوا و ضرورت پردازشها آن ها را اولویتبندی میکند.
4) ارتباط بین کاربر و سیستم
همچنین هسته لینوکس باید زمینهی ارتباط کاربر با اطلاعات و منابع سیستم را فراهم کند به طوری که کاربر بتواند هر زمان که خواست به اطلاعات مورد نیاز خود دسترسی پیدا کند و تغییرات دلخواه را اعمال نماید.
انواع هسته های لینوکس
هسته یا کرنل لینوکس انواع مختلفی دارد که در ادامه به طور مختصر آنها را بررسی خواهیم کرد :
– هسته یکپارچه (Monolithic Kernel):
معماری سیستم در این حالت به گونهای است که فضای مجازی تمام درخواستهای سیستمی ابتدایی که در تمام وظایف کرنل مانند مدیریت حافظه، مدیریت فرآیندها و … نیاز است را در بر میگیرد. در واقع تمام سرویسها در یک فضا در هسته انجام میشوند به همین دلیل حجم کرنل و به دنبال آن حجم سیستم عامل افزایش مییابد. البته در این حالت پردازشها سریعتر انجام میشوند.
این نوع معماری نقطه مقابل ریز هسته یا kernel Micro است.
هستههای یونیکس ( BSD ها از جمله OpenBSD ، NetBSD ، FreeBSD و solaris، IBM AIX ، HP – UX
، Mini ) و هستههای شبه یونیکس ( لینوکس ) نمونههایی از این نوع معماری هستند.
مزایای هسته یکپارچه:
• به دلیل نبود فضای جداگانه برای کرنل و کاربر فرآیندها به سرعت انجام میشوند.
• وظایف کرنل مانند مدیریت فرآیند پردازش با تماسهای سیستمی انجام میشود.
معایب هسته یکپارچه:
• در صورت اضافه شدن سرویس جدید تمام سیستم عامل نیاز به بررسی و ویرایش مجدد خواهد داشت.
• در صورت خراب شدن هر قسمت از سرویسها تمام سیستم عامل از کار میافتد.
– ریز هسته (Micro Kernel):
در ریز هسته یا میکرو کرنل سرویسهای هسته و سازوکار خدمات برای کاربر در فضاهای مختلفی انجام میشود و این تمایز فضاها باعث میشود حجم کرنل و در نتیجه حجم سیستم عامل کاهش یابد. البته عیب این حالت این است که در این حالت چون فضاها متفاوت هستند ارتباط بین اپلیکیشنها و سرویسها با پیام میسر است که سرعت ارتباط را کاهش میدهد.
در این ساختار، ریز هسته تنها بخشی است که بالاترین سطح دسترسی را دارد که آن را وضعیت هسته مینامند.
در ساختار میکرو کرنل اضافه شدن نرمافزار جدید به سادگی امکان پذیر است.
– هسته ترکیبی (Hybrid Kernel):
در این ساختار هستهی سیستم عامل به طور همزمان هم ویژگیهای ریز هسته و هم ویژگیهای هستهی یکپارچه را دارد. هدف از این ساختار این بوده است که ساختار هسته شبیه به حالت ریز هسته باشد ولی مانند هستهی یکپارچه عمل کند.
در هسته ترکیبی ( بر خلاف ریز هستهها ) تقریبا تمام خدمات و سرویسهای سیستم عامل در فضای هسته قرار دارد که مشابه هسته یکپارچه است ولی بر خلاف هستههای یکپارچه در زمانی که سیستم در حال اجراست نمیتوان ماژول جدیدی به هسته اضافه یا ماژولی را حذف کرد.هستههای ترکیبی با نام Modular Kernel نیز شناخته میشوند.
سیستم عاملهای شرکت مایکروسافت مانند NT 4.0 و NT 3.51 و NT 3.5 و NT 3.1 و 2000 و Vista و XP و 8 و 7 و 8.1 و 10 و سیستم عامل شرکت اپل Mac OS X از نمونههای هستههای ترکیبی هستند.
– نانو کرنل (Nano Kernel):
Nano Kernel یک سرویس مجازی و بسیار کوچکتر از میکرو کرنل است و از نانو ثانیه پشتیبانی میکند.
– ابرون هسته (ExoKernel) :
هدف از ساختار این هسته جدا کردن مدیریت و حفاظت از منابع است. ExoKernel ها عملکرد محدودی دارند به همین دلیل حجم کوچکی نیز اشغال میکنند.
چک کردن نسخه کرنل
به دلایل مختلفی (مانند اشکال زدایی یک مشکل در سیستم) ممکن است مایل باشید نوع نسخه کرنل سیستم عامل خود را بدانید برای این کار باید از دستور uname استفاده کنید. این دستور اطلاعات سیستم مانند معماری هسته لینوکس و ورژن آن را نشان میدهد.
uname -srm
خروجی این دستور میتواند به شکل زیر باشد :
Linux 5.11.0-38-generic x86_64
در اینجا مشخص میشود که کرنل لینوکس 64 بیتی و نسخه آن 5.11.0-38 است.