انتشار و به روز رسانی هسته پایدار

مدل انتشار پایدار هسته لینوکس در سال 2005 شروع شد، زمانی که مشخص شد مدل توسعه هسته موجود (یک نسخه جدید هر 2-3 ماه) نیازهای اکثر کاربران را برآورده نمی کند. کاربران خواهان رفع اشکالاتی بودند که در طی آن 2 تا 3 ماه ایجاد شده بودند، و توزیع‌های لینوکس به‌روز نگه داشتن هسته‌ها بدون بازخورد از جامعه هسته دشوار بود. به طور کلی، تلاش برای ایمن نگه داشتن کرنل های فردی و با آخرین رفع اشکال، تلاش بزرگ و گیج کننده بسیاری از افراد مختلف بود.

نسخه‌های هسته پایدار مستقیماً بر اساس نسخه‌های لینوس توروالدز هستند و بسته به عوامل خارجی مختلف (زمان سال، وصله‌های موجود، حجم کاری نگهدارنده و غیره) هر هفته یا بیشتر منتشر می‌شوند. شماره گذاری نسخه های پایدار با شماره انتشار هسته شروع می شود و یک عدد اضافی به انتهای آن اضافه می شود. به عنوان مثال، هسته 4.4 توسط لینوس منتشر می شود و سپس انتشارات هسته پایدار مبتنی بر این هسته به شماره های 4.4.1، 4.4.2، 4.4.3 و ... می باشد. این دنباله معمولاً با عدد 4.4.y کوتاه می شود که به درخت انتشار هسته پایدار اشاره می شود. هر درخت انتشار هسته پایدار توسط یک توسعه‌دهنده هسته نگهداری می‌شود که مسئول انتخاب وصله‌های مورد نیاز برای انتشار و مدیریت فرآیند بررسی/انتشار است.

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

هسته های پایدار بلند مدت

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

در زمان نگارش این مقاله، هسته های LTS نسخه های 4.4.y، 4.9.y، 4.14.y، 4.19.y، 5.4.y و 5.10.y هستند. یک هسته جدید هر هفته منتشر می شود. به دلیل نیازهای برخی از کاربران و توزیع‌ها، چند هسته قدیمی دیگر توسط توسعه‌دهندگان هسته با چرخه انتشار کندتر نگهداری می‌شوند. اطلاعات مربوط به تمام هسته‌های پایدار بلندمدت، مسئول آن‌ها و مدت زمان نگهداری آن‌ها را می‌توانید در صفحه انتشارات kernel.org بیابید.

هسته LTS به طور متوسط ​​روزانه 6-8 وصله پذیرفته شده منتشر می کند، در حالی که نسخه های معمولی هسته پایدار حاوی 10-15 وصله در روز هستند. تعداد وصله ها در هر نسخه با توجه به زمان فعلی انتشار هسته توسعه مربوطه و سایر متغیرهای خارجی در نوسان است. هر چه یک هسته LTS قدیمی تر باشد، وصله های کمتری برای آن اعمال می شود زیرا بسیاری از رفع اشکالات اخیر مربوط به هسته های قدیمی تر نیستند. با این حال، هر چه یک هسته قدیمی‌تر باشد، به دلیل تغییرات در پایگاه کد، پشتیبان‌گیری تغییراتی که برای اعمال لازم است، سخت‌تر است. بنابراین در حالی که ممکن است تعداد وصله‌های کلی کمتری اعمال شود، تلاش برای حفظ یک هسته LTS بیشتر از حفظ هسته پایدار معمولی است.

قوانین وصله هسته پایدار

قوانین مربوط به مواردی که می توان به نسخه هسته پایدار اضافه کرد از زمان معرفی تقریباً یکسان باقی مانده است و در زیر خلاصه می شود:

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

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

به روز رسانی هسته

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

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

دستگاه‌های مبتنی بر لینوکس که دارای مجموعه‌های وصله بزرگ هستند، می‌توانند هنگام به‌روزرسانی به هسته‌های جدیدتر، به دلیل تعداد زیاد تغییرات بین هر نسخه (10-14 هزار تغییر در هر نسخه) با مشکلات اساسی مواجه شوند. پچ‌ست‌های SoC به‌خاطر اندازه بزرگ و تغییرات سنگین در معماری خاص و گاهی اوقات کد هسته اصلی، به‌خاطر مشکلاتی در به‌روزرسانی به هسته‌های جدیدتر شناخته می‌شوند. در نتیجه، اکثر فروشندگان SoC شروع به استانداردسازی استفاده از نسخه های LTS برای دستگاه های خود کرده اند و این دستگاه ها را قادر می سازد تا باگ ها و به روز رسانی های امنیتی را مستقیماً از جامعه هسته لینوکس دریافت کنند.

امنیت

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

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

برای جزئیات در مورد گزارش اشکالات امنیتی به جامعه هسته برای رفع و رفع آنها در اسرع وقت، به اشکالات امنیتی در راهنمای کاربر و مدیر کرنل لینوکس در www.kernel.org مراجعه کنید.

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

یک سیستم امن نگه دارید

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

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