کِرنِل لینوکس چیست و چگونه کار میکند؟
در سیستم عامل لینوکس، اصلیترین جزء آن کرنل لینوکس است که ارتباط اصلی را بین سخت افزار کامپیوتر و فرایندهای مربوط به آن ایجاد میکند. در واقع مسئولیت تعامل بین سخت افزار و نرم افزار درون کامپیوتر در سیستم عامل لینوکس به عهده کرنل یا هسته آن قرار دارد. این هسته که به صورت مجموعهای از فایلهای باینری عمل میکند از طریق مدیریت سیستم عامل به کاربران اجازه استفاده از بخشهای سخت افزاری مانند حافظه، شبکه، پردازنده، سیستم فایل و مجموعهای از دستگاههای دیگر را میدهد. برای آشنایی دقیق با اینکه کرنل لینوکس چیست و وظایف kernel در ادامه این مطلب از آموزش لینوکس با ما همراه باشید.
سیستم عامل لینوکس چیست؟
قبل از این که در مورد سیستم عامل لینوکس توضیح دهیم بهتر است بگوییم که اصلاً خود سیستم عامل چیست؟ سیستم عامل که در انگلیسی به آن Operating System گفته میشود به عنوان یک نرم افزار، وظیفه کنترل اجزای سخت افزاری سیستم را به منظور اجرای عملکردهای منطقی دارد. به عبارت بهتر رابط بین نرم افزار و سخت افزار در همه کامپیوترها، سیستم عامل است. از جمله نمونهای از سیستم عاملها میتوانیم به ویندوزهای 7، 8 ، 10، لینوکس یا موارد دیگر اشاره کنیم.
لینوکس یکی از سیستم عاملهای رایج است که قابلیت منبع باز بودن آن باعث شده تا طرفداران زیادی داشته باشد. این سیستم عامل را مشابه با سیستم عامل یونیکس طراحی کردهاند. لینوکس به عنوان یک سیستم عامل چندکاربره و پایدار به حساب میآید که آن را به صورت رایگان و منبع آزاد برای کاربران مونتاژ کردهاند. منظور از این جمله این است که هر کاربری میتواند مطابق با میل خود از سیستم عامل لینوکس استفاده کرده و یا آن را تغییر دهد.
کرنل چیست؟
اما کرنل لینوکس چیست؟ Linux kernel همانطور که از نامش مشخص است، هسته این سیستم عامل به حساب میآید که عملکرد پردازنده، حافظه و تمام دستگاههای جانبی را مدیریت میکند. درواقع کرنل لینوکس، نرم افزاری برای مدیریت سیستم عامل لینوکس است که به عنوان واسطی بین آن و سخت افزار عمل میکند. این هسته شامل گروهی از کدهای منبع آزاد میشود که قسمتهای مختلفی از زیرسیستمهای لینوکس را در بر گرفته است. این هسته جزء کلیدی لینوکس به حساب میآید که توانسته در میان رقیبان خود برنده میدان باشد. علاوه بر این شما کرنل لینوکس را نهتنها در کامپیوترها بلکه در گوشیهای هوشمند با سیستم عامل اندروید بر پایه لینوکس نیز میتوانید ببینید.
بیشتر بخوانید: دستورات مخرب در محیط ترمینال لینوکس
آشنایی با وظایف Linux kernel
برای کرنل لینوکس وظایفی تعریف شده است که ما در این بخش آنها را معرفی میکنیم:
امکان مدیریت حافظه و رم
اجرای هر نرم افزار و انجام هرگونه پردازشی در یک سیستم به حافظه رم احتیاج دارد. مدیریت و کنترل حافظه در تمامی پردازشها به نحوی که تداخلی با دیگر پردازشها نداشته باشد را کرنل لینوکس به عهده میگیرد.
مدیریت سخت افزارها و نرم افزارها از طریق درایورها
یک کامپیوتر شامل قطعات سخت افزاری زیادی مانند کارت گرافیک، هارد، رم و موارد دیگر میشود که مدیریت بین آنها به طور همزمان از طریق کرنل لینوکس صورت میگیرد. از طریق درایورها، کرنل میتواند نسبت به همه قطعات اطلاعات لازم را به دست آورد.
ارتباط میان کاربر و سیستم
بستر مناسب برای ارتباط کاربر با منابع سیستم از طریق هسته لینوکس انجام میشود؛ به طوری که کاربر امکان دسترسی به اطلاعات را داشته باشد و بتواند تغییرات لازم را مطابق با میل خود اعمال کند.
مدیریت فرایند پردازشها
هر پردازشی برای کاملکردن فعالیتهای خود به زمان کافی نیاز دارد و کرنل لینوکس وظیفه دارد که از این مسئله مطمئن شود. در واقع این هسته با بررسی فعالیتهای هر پردازش، بر اساس ضرورت و نوع محتوا، اولویت هر کدام را مشخص میکند.
منظور از مفاهیم انتزاعی در لینوکس چیست؟
حال که با مفهوم کرنل لینوکس چیست آشنا شدید باید در رابطه با مفاهیم انتزاعی در لینوکس نیز باید اطلاع داشته باشید. درواقع هنگام کارکردن با لینوکس ما با یک سری از مفاهیم انتزاعی روبه رو هستیم که بسیار شبیه به مفاهیم انتزاعی در هنر هستند. مفاهیم انتزاعی به سادگی برای هر کسی قابل درک نیست. در علوم کامپیوتر زمانی از مفهوم انتزاع استفاده میکنیم که نیاز به پنهانکردن جزئیات و مفاهیم پیچیده در طی یک فرایند باشد. اجرای این حالت انتزاعی به عهده کرنل قرار دارد که میتواند تفاوتهای موجود میان سخت افزارهای مختلف را به صورت یک اینترفیس عمومی و انتزاعی ارائه دهد. برای مثال در طی یک فراخوان سیستمی، چیزی از کرنل درخواست میشود که در این حالت کرنل بدون توجه به سخت افزار، آن درخواست را اجرا میکند.
Linux kernel درواقع نرم افزاری برای مدیریت سیستم عامل لینوکس است که به عنوان واسطی بین آن و سخت افزار عمل میکند.
چگونه ورژن کرنل لینوکس را چک کنیم؟
دلایل مختلفی وجود دارد که شما بخواهید از ورژن کرنل لینوکس خود مطلع شوید. یکی از این دلایل میتواند رفع اشکال از یک سیستم عامل باشد. در این حالت با کمک دستور uname میتوان از ورژن و معماری هسته لینوکس باخبر شد. Uname یکی از ترفندهای لینوکس است که شما میتوانید به شکل زیر از آن استفاده کنید:
uname -srm
نمونهای از خروجی این دستور در زیر آورده شده است:
Linux 5.11.0-38-generic x86_64
این هسته لینوکس یک هسته 64 بیتی با ورژن 38-5.11.0 است.
مزایا و معایب هسته یکپارچه
هسته کرنل میتواند به حالتهای مختلفی وجود داشته باشد که ما ابتدا انواع آن را معرفی میکنیم و سپس به بررسی مزایا و معایب نوع یکپارچه آن میپردازیم. انواع هسته کرنل عبارتاند از:
- هسته یکپارچه
- ریز هسته
- هسته ترکیبی
- نانو کرنل
- ابرون هسته
قبل از بررسی مزایا و معایب هسته یکپارچه، توضیح مختصری درمورد آن میدهیم. در هسته یکپارچه، فضای مجازی، همه درخواستهای سیستمی اولیه موردنیاز خود را در برمیگیرد. به عبارتدیگر همه سرویسها درون یک فضا انجام میشود و ازاینرو شاهد افزایش حجم سیستم عامل هستیم. در این حالت پردازشها با سرعت بیشتری انجام خواهد شد. این نوع معماری را میتوانیم در هستههای یونیکس و شبه یونیکس ببینیم.
مزایای هسته یکپارچه عبارتاند از:
- عدم وجود فضای جداگانه برای کاربر و کرنل میتواند سرعت انجام فرایندها را بالا ببرد.
- انجام همه وظایف کرنل از طریق تماسهای سیستمی صورت میگیرد.
معایب هسته یکپارچه شامل موارد زیر میشود:
- با افزودن یک سرویس جدید لازم است تا کل سیستم عامل مورد بررسی و ویرایش مجدد قرار گیرد.
- با خرابشدن هر بخش از سرویسها، عملکرد کل سیستم عامل مختل میشود.
جمع بندی
همان طور که گفته شد هسته لینوکس اصلیترین بخش در سیستم عامل لینوکس است که نقش یک لایه انتزاعی را در اجرای برنامهها دارد. برنامهها از طریق تعامل این هسته با هر کدام از سخت افزارها اجرا میشوند. همانطور که در این مقاله گفته شد منبع باز بودن این هسته دلیل محبوبیت آن در میان کاربران است که به آنها اجازه میدهد تا در دستگاههای مختلف از این سیستم عامل استفاده شود. ما در این مقاله در رابطه با اینکه کرنل لینوکس چیست و یکی از دستورات لینوکس برای آگاهی از ورژن لینوکس را صحبت کردهایم امیدواریم توانسته باشیم به تمامی سوالات شما در رابطه با این موضوع پاسخ داده باشیم.