کرنل لینوکس چیست؟ – توضیح هسته لینوکس به زبان ساده

۲۰۵۹ بازدید
آخرین به‌روزرسانی: ۲۴ اردیبهشت ۱۴۰۲
زمان مطالعه: ۱۳ دقیقه
کرنل لینوکس چیست؟ – توضیح هسته لینوکس به زبان ساده

کرنل لینوکس یا همان هسته لینوکس جزء اصلی سیستم عامل لینوکس است و رابط اصلی بین سخت‌افزار کامپیوتر و فرآیند‌های آن به حساب می‌آید. کرنل لینوکس منابع را تا حد امکان به صورت کارآمد مدیریت می‌کند. هسته لینوکس یکی از اصلی‌ترین بخش‌های سیستم عامل لینوکس محسوب می‌شود که مسئول تعامل بین سخت‌افزار و نرم‌افزار در کامپیوتر است. کرنل لینوکس به عنوان مجموعه‌ای از فایل‌های باینری که قابل اجرا هستند، کنترل کننده اصلی سیستم عامل محسوب می‌شود که به موجب آن، امکان استفاده از منابع سخت‌افزاری مانند «سی‌پی‌یو» (پردازنده)، حافظه، سیستمِ فایل، شبکه و مجموعه دیگری از دستگاه‌های ورودی/‌خروجی فراهم می‌شود. اگر می‌خواهید دقیق‌تر بدانید کرنل لینوکس چیست و چه وظایفی دارد یا چگونه نصب و به‌روزرسانی می‌شود، در ادامه این نوشتار همراه ما باشید.

997696

اطلاعات پیش زمینه پیرامون سیستم عامل ها

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

برای مثال، در گذشته سیستم عامل‌های جاوا و Symbian برای تلفن‌های همراه استفاده می‌شدند و هم اکنون سیستم عامل اندروید و iOS، جایگزین آن‌ها محسوب می‌شوند. لینوکس، ویندوزهای XP، ویندوز ۷، ۸، ۱۰ و ۱۱ و Mac OS X همگی نمونه‌هایی از سیستم عامل‌های رایج برای دستگاه‌های دسکتاپ به حساب می‌آیند. بنابراین سیستم عامل به عنوان رابطی بین نرم‌افزار و سخت‌افزار، نقشی کلیدی در همه دستگاه‌های کامپیوتری ایفا می‌کند.

هسته یا کرنل در سیستم عامل لینوکس چیست

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

سیستم عامل لینوکس یکی از انواع سیستم‌های عامل است که در طول سال‌ها به دلیل ویژگی «اپن سوررس» (منبع آزاد) بودن، محبوبیت زیادی در میان کاربران پیدا کرده است؛ اساس طراحی آن مشابه سیستم عامل یونیکس است و در مقایسه با سایر سیستم عامل‌های رقیب به پلتفرم‌های بیشتری منتقل شده است.

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

کرنل لینوکس چیست ؟

«کرنل» (Kernel) لینوکس در واقع هسته سیستم ‌عامل است و مدیریت اجزایی همچون CPU، حافظه و دستگاه‌های جانبی را بر عهده دارد. کرنل لینوکس نرم‌افزار مدیریت سیستم عامل لینوکس به حساب می‌آید که به عنوان اجزای اصلی واسط بین سیستم عامل و سخت افزار کار می‌کند. در واقع کرنل لینوکس، مجموعه‌ای از کدهای منبع آزاد است که شامل بخش‌های مختلفی از زیرسیستم‌های سیستم عامل لینوکس می‌شود.

هسته لینوکس از اولین انتشار خود به عنوان جزئی تعیین کننده و کلیدی در سیستم عامل لینوکس در ۱۷ سپتامبر ۱۹۹۱ ارائه شده و رقیبان زیادی را از میدان به در کرده است. هسته لینوکس توسط لینوس توروالدز منتشر شد و از گنو/لینوکس برای توصیف سیستم عامل استفاده می‌کند. سیستم عامل اندروید مبتنی بر هسته لینوکس در گوشی‌های هوشمند باعث شده است تا لینوکس بسیاری از رقبای خود را شکست دهد تا بزرگترین پایه سیستم عامل نصب شده در بین تمام سیستم عامل های همه منظوره باشد.

هسته لینوکس چیست

حال برای درک بهتر چیستی کرنل لینوکس بهتر است به شرح سایر اجزای سیستم عامل به ویژه لینوکس بپردازیم.

معرفی اجزای سیستم عامل ها

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

بار گذار راه اندازی یا Boot Loader در لینوکس چیست؟

بار گذار راه اندازی یا Boot Loader جزئی از نرم‌افزار سیستم عامل است که مسئولیت فرآیند بوت کردن یا همان راه اندازی کردن دستگاه را به عهده دارد. Boot Loader در لینوکس نرم‌افزاری به حساب می‌آید که در زمان بارگذاری سیستم عامل، اجرای کرنل را شروع می‌کند. به عبارت دیگر، Boot Loader مسئولیت بارگذاری سیستم عامل را بر عهده دارد.

در لینوکس، یکی از معروف‌ترین Boot Loaderها، «گراب» (GRUB | Grand Unified Bootloader) نام دارد که به صورت پیش‌فرض در بسیاری از توزیع‌های لینوکس استفاده می‌شود. GRUB برای بارگذاری سیستم عامل از مجموعه‌ای از فایل‌های مختلف استفاده می‌کند و می‌تواند به سادگی با هر سیستم عامل نصب شده دیگری در کامپیوتر همکاری کند.

کرنل لینوکس

علاوه بر GRUB، دیگر Boot Loaderهای محبوب در لینوکس به شرح زیرند.

  • LILO (Linux Loader)
  • SYSLINUX
  • BURG (Brand-new Universal loadeR from GRUB)

توزیع های لینوکس همچنین می‌توانند برای Boot Loader خود از GRUB یا Boot Loader دیگری استفاده کنند.

Daemon یا پردازش های پس زمینه در لینوکس

وظیفه اصلی Daemonها در سیستم عامل، انجام خدماتی در پس‌زمینه است. در سیستم‌ عامل ‌های چندوظیفه‌ای که دارای قابلیت «Multi Tasking» (انجام چند وظیفه به صورت همزمان) هستند، Daemon برنامه کامپیوتری است که به‌ جای اینکه تحت کنترل مستقیم کاربری تعاملی باشد، به ‌عنوان فرآیندی پس‌زمینه اجرا می‌شود.

Daemon چیست پردازش های پس زمینه در لینوکس

سایر اجزای سیستم های عامل کدامند؟

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

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

فضای کرنل و فضای کاربری در لینوکس

در این بخش از مطلب، با دو اصطلاح پرکاربرد «فضای کرنل» (Kernel Space) و «فضای کاربری» (User Space) آشنا می‌شویم.

فضای کرنل لینوکس چیست ؟

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

فضای کرنل لینوکس چیست

فضای کاربر در لینوکس

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

انواع مختلف هسته لینوکس چیست ؟

اشکال مختلف هسته لینوکس می‌تواند یکپارچه، «میکرو کرنل» (ریز هسته) یا ترکیبی باشد (مانند OS X و Windows 7). هسته لینوکس هسته سیستم عامل کامپیوتری یکپارچه است که به سیستم یونیکس شباهت دارد. نسخه‌های مختلف لینوکس که معمولاً به عنوان توزیع لینوکس شناخته می‌شوند، بر اساس ساختار این هسته شکل گرفته‌اند.

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

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

انواع کرنل لینوکس چیست

بنابراین اندازه آنها در مقایسه با هسته یکپارچه کوچکتر است. میکروکرنل‌ها به راحتی قابل توسعه هستند، اما برای نوشتن یک میکروکرنل به خطوط کد بیشتری نیاز است. هسته لینوکس به زبان های برنامه نویسی C و Assembly نوشته شده است.

رابطه کرنل لینوکس با سخت افزار چیست ؟

کرنل لینوکس می‌تواند سخت‌افزار سیستم را از طریق آنچه مدیریت کند که «وقفه» (interrupts) نامیده می‌شود. هنگامی که سخت‌افزار می‌خواهد با سیستم عامل لینوکس ارتباط برقرار کند، وقفه‌ای صادر می‌شود که پردازنده را قطع می‌کند و همین کار را با هسته نیز انجام می‌دهد.

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

چه چیزی کرنل لینوکس را از دیگر هسته های کلاسیک یونیکس متمایز می‌کند ؟

تفاوت های قابل توجهی بین هسته لینوکس و هسته کلاسیک یونیکس وجود دارد. در ادامه هر یک از مهم‌ترین تفاوت‌ها فهرست شده‌اند.

  1. لینوکس از بارگذاری پویای ماژول‌های هسته پشتیبانی می‌کند.
  2. هسته لینوکس انحصاری است.
  3. کرنل لینوکس دارای پشتیبانی از چند پردازنده‌ای به صورت متقارن است.
  4. به دلیل ماهیت اوپن سورس بودن نرم‌افزار، کرنل لینوکس رایگان است.
  5. برخی از ویژگی‌‌های استاندارد توزیع یونیکس، از نظر توسعه‌‌دهندگان لینوکس ضعیف هستند و بنابراین آنها را در طراحی خود نادیده گرفته‌اند.
  6. لینوکس مدل دستگاه شی‌گرا با کلاس‌های آن، رویدادهای Hot-Plugable و سیستم فایل دستگاه فضای کاربر را ارائه می‌کند.
  7. هسته لینوکس نمی‌تواند بین رشته‌ها و فرآیندهای عادی تمایز قائل شود.
معماری یونیکس و سیستم فایل
معماری یونیکس و سیستم فایل

معماری هسته لینوکس چیست ؟

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

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

  • رابط تماس سیستم: این بالاترین سطح ارتباطی در یک سیستم است و اقدامات اساسی مانند خواندن و نوشتن را انجام می‌دهد.
  • کد هسته: در سطح زیرین رابط فراخوانی سیستم قرار دارد و در تمام معماری پردازنده‌هایی که توسط لینوکس پشتیبانی می‌‌شوند مشترک است؛ همچنین گاهی اوقات به عنوان کد هسته مستقل از معماری تعریف می‌‌شود.
  • کد وابسته به معماری: کد وابسته، لایه زیرین کد مستقل از معماری قرار دارد و تشکیل ‌دهنده چیزی است که معمولاً به عنوان «بسته پشتیبانی هیئت مدیره» (BSP) نامیده می‌شود. این کد شامل برنامه‌ای کوچک به نام Boot Loader است که سیستم عامل و درایورهای دستگاه را در حافظه قرار می‌دهد.
نمودار معماری هسته لینوکس
نمودار معماری هسته لینوکس

معماری هسته لینوکس شامل موارد زیر است.

  1. رابط تماس سیستم: لایه‌ای نازک است که برای فراخوانی تابع از فضای کاربر به هسته استفاده می‌شود. این رابط ممکن است وابسته به معماری باشد.
  2. مدیریت فرآیند: مدیریت فرآیند همان‌طور که از نامش پیداست، برای اجرای فرآیندها کاربرد دارد. هر فرآیند به عنوان Thread در هسته شناخته می‌شوند و یک مجازی‌سازی فردی از پردازنده‌ای خاص را نشان می‌دهند.
  3. مدیریت حافظه: در صفحاتی منحصر‌به‌فرد برای افزایش کارایی انجام می‌شود. لینوکس شامل روش‌هایی برای مدیریت حافظه موجود و همچنین مکانیزم‌های سخت‌افزاری برای نگاشت فیزیکی و مجازی است. فضای تعویض نیز برای انجام این کار در نظر گرفته شده است.
  4. سیستم فایل مجازی: رابطی انتزاعی استاندارد برای سیستم‌های فایل فراهم می‌کند. برای انجام این کار، یک لایه سوئیچینگ بین رابط فراخوانی سیستم و سیستم‌های فایل پشتیبانی شده توسط هسته را فراهم می‌کند.
  5. درایورهای دستگاه: بخش قابل توجهی از کدهای منبع در کرنل لینوکس در درایورهای دستگاه یافت می‌شوند که یک دستگاه سخت‌افزاری خاص را قابل استفاده می‌کند.
  6. کدهای وابسته به معماری: شامل آن دسته از عناصری هستند که به معماری بستگی دارند که بر روی آن اجرا می‌شوند، از این رو باید طراحی معماری را برای عملکرد و کارایی عادی در نظر گرفت.

نقش رابط ها در کرنل لینوکس چیست ؟

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

اما تماس سیستمی لینوکس چیست؟ وقفه ها راهی را ارائه می دهند که از طریق آن هسته لینوکس سخت افزار سیستم را مدیریت می‌کند. اگر سخت افزار باید با یک سیستم ارتباط برقرار کند، یک وقفه در پردازنده این کار را انجام می‌دهد و این به هسته لینوکس منتقل می‌شود.

کرنل لینوکس

رابط های هسته لینوکس چه هستند؟

هسته لینوکس رابط‌های مختلفی را به برنامه‌های کاربردی فضای کاربر ارائه می‌دهد که وظایف مختلفی را انجام می‌دهند و ویژگی‌های متفاوتی دارند. دو رابط برنامه نویسی کاربردی (API) مجزا وجود دارد که شامل فضای کرنل کاربر و هسته داخلی می‌شوند.

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

ABI در لینوکس

ABI مخفف «Application Binary Interface» است و به فضای هسته کاربر اشاره دارد و به عنوان رابطی است که بین ماژول‌های مختلف یک برنامه وجود دارد. هنگام مقایسه API و ABI، اولین تفاوت این است که ABI برای دسترسی به کدهای خارجی از قبل کامپایل شده استفاده می‌شود، در حالی که API ساختارهایی برای مدیریت نرم‌افزار به حساب می‌آید.

تعریف مهم ABI، عمدتاً کار توزیع‌های لینوکس است تا هسته لینوکس. برای هر مجموعه دستورات باید یک ABI خاص به عنوان مثال X64 یا X86 تعریف شود. اغلب کاربران محصولات لینوکس، به جای API به ABI علاقه دارند.

کرنل لینوکس
  • رابط تماس سیستم: همانطور که قبلاً راجع به این موضوع صحبت کردیم، رابط تماس سیستم نقش برجسته‌تری را نسبت به سایر عناصر در هسته بازی می‌کند. این رابط، مجموعه‌ای از کلیه بخش‌های فراخوانی سیستم موجود است.
  • کتابخانه استاندارد C: همه فراخوانی‌‌های سیستمی هسته در کتابخانه گنو C هستند، در حالی که API لینوکس از رابط فراخوانی سیستم و کتابخانه گنو سی تشکیل شده است که glibc نیز نامیده می‌شود.

رابط سیستم عامل قابل حمل POSIX

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

  • زیرسیستم Cgroups
  • تماس مستقیم از سوی سیستم مدیریت رندر
  • دارای ویژگی شمارندگی
  • تماس Getrandom در نسخه ۳.۱۷
  • فراخوانی‌های سیستمی مانند futex، epoll، splice، dnotify، fanotify و inotify

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

نسخه‌های قبلی کرنل لینوکس به گونه‌ای بودند که تمام قسمت‌های آن‌ها به صورت ایستا در یک واحد، یکپارچه ثابت می‌شد. با این حال، بیشتر قابلیت هسته‌های لینوکس مدرن، در ماژول‌‌هایی قرار دارند که به صورت پویا در هسته قرار می‌گیرند.

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

ماژول کرنل لینوکس چیست

ماژول هسته قابل بارگیری لینوکس LKM چیست ؟

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

  • درایورهای دستگاه
  • درایورهای سیستم فایل
  • تماس‌های سیستم

ماژول کرنل قابل بارگذاری را می‌توان با پسوند‌های هسته در سایر سیستم عامل‌ها مقایسه کرد. می‌توان یک ماژول را با بارگذاری آن به عنوان یک LKM یا اتصال آن به کرنل پایه در هسته قرار داد.

مزایای LKM ها نسبت به اتصال به هسته پایه چه هستند؟

مزایای LKM در ادامه فهرست شده‌اند.

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

کاربردهای LKM کدامند؟

هر یک از کاربردهای LKM در ادامه این بخش فهرست شده‌اند.

  1. درایورهای دستگاه: هسته از این طریق اطلاعات را با سخت‌افزار مبادله می‌کند. یک هسته قبل از استفاده باید دارای درایور دستگاه باشد.
  2. درایورهای سیستم فایل: داریورهای سیستم فایل، محتویات یک فایل سیستم را ترجمه می‌کنند.
  3. تماس‌های سیستمی: برنامه‌ها در فضای کاربر از تماس‌های سیستمی برای دریافت خدمات از هسته استفاده می‌کنند.
  4. درایورهای شبکه: درایورهای شبکه، پروتکل شبکه را تفسیر می‌کنند.
  5. مترجمان اجرایی: فایل‌های اجرایی را بارگیری و مدیریت می‌کنند.

کامپایل کرنل لینوکس چیست ؟

برخلاف باور عموم مردم، کامپایل کردن کرنل لینوکس کار ساده‌ای است. مراحل فرآیند کامپایل کردن کرنل با استفاده از یکی از توزیع‌های لینوکس، در ادامه ارائه شده است. در این بخش از توزیع Fedora 13 KDE استفاده می‌شود. توصیه می‌کنیم از داده‌های خود و grub.conf نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل بتوان از آن‌ها استفاده کرد.

  1. از سایت kernel.org منبع را دانلود کنید.
  2. زمانی که در دایرکتوری دانلودها هستید، با وارد کردن دستور زیر در ترمینال، منبع هسته را از آرشیو استخراج کنید:
    tar xvjf Linux-2.6.37.tar.bz2
  3. از دستور make mrproper  برای پاک کردن ناحیه ساخت قبل از هر کامپایل استفاده کنید.
  4. از یک پیکربندی «-» برای مثال xconfig- استفاده کنید، این پیکربندی‌ها به گونه‌ای طراحی شده اند که اجرای هر برنامه ای را در لینوکس آسان تر می‌کنند.
  5. ماژول‌ها و ویژگی‌هایی را مشخص کنید که می‌خواهید هسته شما حاوی آن باشد.
  6. پس از دریافت فایل .config  ، مرحله بعدی رفتن به Makefile است.
  7. دستور make را اجرا کنید و منتظر بمانید تا کامپایل انجام شود.
  8. ماژول‌ها را با استفاده از دستور make modules_install   نصب کنید.
  9. هسته و نقشه سیستم خود را در /boot  کپی کنید.
  10. new-kernel-pkg   را اجرا کنید تا فهرستی از وابستگی‌های ماژول و مواردی مانند grub.conf ایجاد شود.
لینوکس کرنل

آیا ارتقا کرنل لینوکس امکان پذیر است؟

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

  1. آخرین کد منبع را از وب سایت اصلی دریافت کنید.
  2. تغییرات را روی درخت منبع قدیمی اعمال کنید تا آن را به آخرین نسخه برسانید.
  3. هسته را بر اساس فایل پیکربندی هسته قبلی که از آن نسخه پشتیبان تهیه کرده بودید پیکربندی مجدد کنید.
  4. هسته جدید را بسازید.
  5. اکنون می‌توانید بیلد جدید هسته را نصب کنید.

دانلود منبع جدید

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

  1. پچ‌های هسته پایدار که در نسخه اصلی هسته اعمال می‌شوند.
  2. پچ‌های انتشار هسته پایه فقط برای نسخه هسته پایه قبلی اعمال می‌شوند.
  3. پچ افزایشی از یک نسخه خاص به نسخه بعدی ارتقا داده می‌شود.

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

جمع‌بندی

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

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

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

بر اساس رای ۷ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Linux Hint
نظر شما چیست؟

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