وجه مشترک بین توزیعات مختلف لینوکس، هسته یا Kernel است. اما منظور از هسته‌ی سیستم عامل چیست و کرنل لینوکس شامل چه مواردی می‌شود؟ آیا آپدیت کردن کرنل ضروری است؟

در این مقاله به مفهوم کرنل لینوکس می‌پردازیم و چیستی آن را موردبحث قرار می‌دهیم. با ما باشید.

کرنل چیست؟

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

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

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

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

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

آشنایی با Kernel لینوکس

شاید از نظر علمی درست نباشد که بگوییم لینوکس یک سیستم عامل کامل است! در واقع مفهوم دقیق Linux، هسته‌ای است که اولین بار توسط Linus Torvalds منتشر شده است. تمام موارد دیگر و در واقع آنچه حین کار با توزیعات مختلف لینوکس روی مانیتور مشاهده می‌کنید، توسط پروژه‌های نرم‌افزار و برنامه‌نویسان متعدد تهیه شده است.

کرنل لینوکس در سال ۱۹۹۱ منتشر شده و در ابتدا قرار بود نام این پروژه، Freax‌ که ترکیبی از Free و Freak و UNIX است، باشد اما نام Linux توسط یکی از همکاران پیشنهاد شد. در سال ۱۹۹۲ اولین نسخه‌ی لینوکس توسط Torvalds تحت لایسنس حق نشر GNU منتشر شد.

بخش اعظم دستاپ لینوکس محصول GUN Project است که تقریباً یک سیستم عامل دستاپی کامل را شکل داد. به همین علت است که گاهی به این سیستم عامل، گنو لینوکس گفته می‌شود.

دستاپ‌های رایگان و متن باز دیگری مثل FreeBCD نیز موجود است که از نظر ظاهری و عملکردی شبیه لینوکس به نظر می‌رسد چرا که در این دستاپ‌ها هم از نرم‌افزارهای GNU استفاده شده است.

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

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

کاربردهای کرنل لینوکس

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

کاربرد دیگر هسته‌ی لینوکس در ابرکامپیوترها است. در واقع اغلب ابرکامپیوترها و درصد زیادی از سرورها که در فضای اینترنت با آنها سروکار داریم، از کرنل لینوکس بهره می‌برند و نه Windows مایکروسافت یا macOS اپل.

کامپیوترهای بسیار کوچک و بوردهای توسعه‌ی محبوب زیادی از کرنل لینوکس بهره می‌برد. Raspberry Pi یکی از این موارد است که اندازه‌ای در حد یک کارت اعتباری دارد. قیمت رزبری پای فقط ۳۵ دلار است در حالی که می‌توان روی آن یک توزیع سبک و ساده‌ی لینوکس را نصب و اجرا کرد. با وجود هزاران نرم‌افزار و پروژه‌ی متن باز، طبعاً توسعه‌ی نرم‌افزارهای جدید و خاص، نسبتاً ساده است.

چگونه ورژن کرنل لینوکس را چک کنیم؟

کرنل لینوکس همواره در حال توسعه است و مرتباً نسخه‌های جدیدی منتشر می‌شود. برای چک کردن نسخه‌ی کرنل در همه‌ی توزیعات سیستم عامل لینوکس، می‌توانید از دستور uname استفاده کنید. این دستور اطلاعاتی در مورد سیستم ارایه می‌کند و یکی از این اطلاعات، نسخه‌ی هسته است. کافی است ترمینال یا در واقع واسط خط دستور لینوکس را باز کنید و دستور زیر را اجرا کنید:

uname -r

نسخه‌ی لینوکس شامل چند عبارت مهم می‌شود. به عنوان مثال فرض کنید نسخه‌ی لینوکس در سیستمی، 4.20.16-200.fc29.x86_64  است. معنای هر بخش از این عبارت به صورت زیر است:

  • عدد ۴ ابتدای این عبارت، نسخه‌ی کرنل است و عدد ۲۰ به معنی ریویژن اصلی شماره ۲۰ است.
  • عدد ۱۶ به معنی ریویژن فرعی شماره ۱۶ است.
  • عدد بعدی یعنی ۲۰۰ برای بیان تعمیرات باگ‌ها و پچ‌هایی که در این نسخه اضافه شده، استفاده می‌شود.

و عبارت‌های بعدی به توزیع و نسخه‌ای که نصب کرده‌اید اشاره می‌کند.

  • fc29 به لینوکس فدورا نسخه‌ی ۲۹ اشاره می‌کند.
  • x86_64 نیز نشان می‌دهد که نسخه‌ی ۶۴ بیتی فدورا نصب شده است.

آیا آپدیت کردن هسته‌ی لینوکس ضروری است؟

آپدیت کردن هسته‌ی لینوکس معمولاً با آپدیت کردن سیستم عاملی که نصب کرده‌اید و به صورت خودکار انجام می‌شود. به عنوان مثال در مورد لینوکس Ubuntu یا Fedora که مرتباً بروزرسانی می‌شود، حدوداً هر ۶ ماه یک نسخه‌ی جدید و مهم ارایه می‌شود و کرنل لینوکس بروزرسانی می‌شود.

اما آیا بروزرسانی کرنل ضروری است؟

پاسخ مثبت است چرا که برای بروزرسانی درایورها و بهینه‌سازی سرعت و پایداری، می‌بایست کرنل بروز باشد.

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

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