גרסאות ועדכונים של ליבה יציבה

מודל ההפצה היציבה של הליבה של Linux התחיל ב-2005, כשקבענו שמודל פיתוח הליבה הקיים (הפצה חדשה כל חודשיים-שלושה) לא עונה על הצרכים של רוב המשתמשים. המשתמשים רצו לבצע תיקוני באגים במהלך ה-2-3 האלה חודשים, ומהדורות Linux התקשו לשמור על עדכניות הליבות ללא משוב מקהילת הליבה. באופן כללי, מנסה לשמור על הליבות הנפרדות מאובטחות ובזכות תיקוני הבאגים העדכניים ביותר הפכו לעניין גדול ומבלבל במאמץ של אנשים רבים ושונים.

גרסאות ליבה יציבות מבוססות ישירות על והן מדי שבוע בערך, בהתאם לגורמים חיצוניים שונים (התקופה בשנה, תיקונים זמינים, עומס עבודה של תחזוקה וכו'). מספור היציבות הגרסאות מתחיל במספר שחרור הליבה, ומספר נוסף נוסף לסוף השם שלו. לדוגמה, הליבה 4.4 משוחררת על ידי לינוס, ו גרסאות הליבה היציבות שמבוססות על הליבה הזו ממוספרות ב-4.4.1, 4.4.2, 4.4.3 וכן הלאה. לרוב הרצף הזה מקוצר למספר 4.4.y המונח 'עץ שחרור ליבה' (kernel) יציבה. כל עץ שחרור של ליבה יציב מנוהל על ידי מפתח ליבה יחיד, שאחראי לבחירת תיקונים שנדרשים לפריט התוכן ומנהלים את תהליך הבדיקה/הפרסום.

הליבות היציבות נשמרות לכל אורך מחזור הפיתוח הנוכחי. אחרי שלינוס משחרר ליבה חדשה, עץ שחרור הליבה היציבה הקודם הופסקה והמשתמשים חייבים לעבור לליבה (kernel) החדשה יותר.

ליבות יציבות לטווח ארוך

לאחר שנה של תהליך ההפצה היציבה החדשה הזו, נקבע משתמשים שונים של Linux רצו לתמוך בליבה (kernel) ארוכה יותר כמה חודשים. בתגובה, גרסת הליבה נתמכת (LTS) לטווח ארוך הייתה עם הליבה הראשונה של LTS (2.6.16) שהושקה ב-2006. מאז, ליבת ה-LTS נבחרה פעם בשנה וקהילת הליבה שומרת ליבה (kernel) למשך שנתיים לפחות.

בזמן הכתיבה, הליבה של ה-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 תיקונים ביום. מספר התיקונים משתנה בכל גרסה בהינתן הזמן הנוכחי של ההתפתחות המתאימה שחרור ליבה (kernel) ומשתנים חיצוניים אחרים. ככל שליבת ה-LTS הישנה יותר, פחות תיקונים רלוונטיים לגרסה הזו, כי הרבה תיקוני באגים מהזמן האחרון לא רלוונטיים ליבות ישנות יותר. אבל ככל שהליבה (kernel) ישנה יותר, כך קשה יותר לבצע העברה לאחור. את השינויים שיש להחיל, עקב השינויים ב-codebase. ככה. אמנם עשוי להיות מספר נמוך יותר של תיקונים כלליים, אבל המאמץ בתחזוקה של ליבה (kernel) של LTS גדולה יותר משמירה על רמה רגילה ליבה יציבה.

כללים לתיקון ליבה יציבה

הכללים לגבי מה שניתן להוסיף לגרסת ליבה יציבה נותרו כמעט זהה מאז הצגתו, והם מסוכמים בהמשך:

  • הם צריכים להיות נכונים ולבדוק אותם באופן מובהק.
  • הטקסט יכול לכלול עד 100 שורות.
  • יש לתקן רק דבר אחד.
  • עליכם לתקן בעיה שדווחה כבעיה.
  • יכול להיות מזהה מכשיר חדש או תכונה מיוחדת לחומרה, אבל לא להוסיף החדשה.
  • חייב להיות כבר ממוזג עם לינוס טורבאלדס עץ.

הכלל האחרון, "חייב להיות כבר ממוזג עם לינוס טורוולדס" עץ", מונע את קהילת הליבה בגלל אובדן התיקונים. הקהילה אף פעם לא רוצה שתיקון יתקיים למהדורת ליבה יציבה שעדיין לא נמצאת עץ, שכל מי שמשדרג לא אמור לראות רגרסיה. זה מונע הרבה של פרויקטים אחרים עם הסתעפות יציבה ופיתוח, שיש.

עדכוני ליבה

קהילת הליבה של Linux הבטיחה לבסיס המשתמשים שלה שלא יהיו שדרוגים לא משבשת אף פעם משהו שפועל בגרסה קודמת. ש שהבטחה שלנו עדיין תקפה גם היום. אכן יש רגרסיות, אבל הן הגבוהות ביותר באגים בעדיפות גבוהה, והם מתוקנים במהירות, או השינוי שגרם הרגרסיה מוחזרת במהירות מעץ הליבה של Linux.

ההבטחה הזו מתקיימת גם בעדכוני הליבה היציבים המצטברים, וגם את העדכונים העיקריים הגדולים יותר שמתרחשים בכל שלושה חודשים. אבל, קהילת הליבה יכולה לספק את ההבטחה הזו רק עבור הקוד שממוזג עץ הליבה של Linux. כל קוד שממוזג עם ליבה (kernel) של מכשיר שלא נמצא ב- גרסאות kernel.org אינן ידועות אף פעם לא ניתן לתכנן אינטראקציות איתו, ואפילו לא לחשוב עליהן.

מכשירים מבוססי Linux עם קבוצות תיקונים גדולות עלולות לגרום לבעיות רציניות עדכון לליבות חדשות יותר, בגלל המספר הגדול של השינויים בין כל (10-14 אלף שינויים בכל גרסה). תיקונים ל-SoC ידועים במיוחד לבעיות בעדכון לליבות חדשות יותר בגלל הגודל הגדול והכבד שלהן שינוי של קוד ליבה ספציפי לארכיטקטורה, ולפעמים גם ליבה. בתור רוב ספקי ה-SoC מתחילים להשתמש בסטנדרטיזציה של גרסאות ה-LTS עבור המכשירים שלהם, וכך מאפשרים למכשירים האלה לקבל עדכוני באגים ועדכוני אבטחה ישירות מקהילת הליבה של Linux.

אבטחה

כשמבצעים שחרור של ליבה (kernel), קהילת הליבה של Linux כמעט אף פעם לא מצהירה על הצהרה שינויים ספציפיים כתיקוני אבטחה. הסיבה לכך היא הבעיה הבסיסית הקושי לקבוע אם תיקון באג הוא תיקון אבטחה או לא באותו זמן של תהליך היצירה. בנוסף, הרבה תיקוני באגים נקבעים רק כקשורים לאבטחה אחרי הרבה זמן, ולכן קהילת הליבה ממליצה תמיד ביצוע כל תיקוני הבאגים שפורסמו.

כשמדווחים על בעיות אבטחה לקהילת הליבה, הן מתוקנות בהקדם האפשרי ומתפרס על פני הציבור בעץ הפיתוח בגרסאות יציבות. כפי שתואר קודם, השינויים כמעט אף פעם לא מתוארים 'תיקון אבטחה', אלא נראה כמו כל תיקון באג אחר עבור הליבה. הדבר כדי לאפשר לגורמים המושפעים לעדכן את המערכות שלהם לפני שמדווח על הבעיה.

לפרטים על דיווח על באגים באבטחה לקהילת הליבה כדי לקבל כדי לפתור את הבעיה ולפתור אותה בהקדם האפשרי, באגים באבטחה במדריך למשתמש והמנהל של הליבה של Linux ב- www.kernel.org.

מכיוון שצוות הליבה לא מודיע לציבור על באגים באבטחה, CVE נתונים לבעיות הקשורות לליבה של Linux מתפרסמים בדרך כלל שבועות, חודשים לפעמים שנים לאחר שהתיקון התמזג עם היציבות והפיתוח ענפים.

שומרים על מערכת מאובטחת

בעת פריסת מכשיר שמשתמש ב-Linux, מומלץ מאוד שכל היצרן מבצע עדכוני ליבה של LTS ונשלח אותם למשתמשים לאחר בדיקה מתאימה, נראה שהעדכון פועל כמו שצריך. יש לכך כמה יתרונות:

  • הגרסאות נבדקו על ידי מפתחי הליבה באופן כללי, לא לחלקים נפרדים.
  • קשה לקבוע אילו תיקונים מתקנים את הבעיה 'אבטחה' ואילו לא. כמעט כל גרסה של LTS מכילה לפחות גרסה אחת ידועה לתיקון האבטחה, ורבים מהם עדיין 'לא ידועים'.
  • אם בבדיקה מתגלה בעיה, קהילת מפתחי הליבה מגיבה כדי לפתור את הבעיה במהירות.
  • ניסיונות לסנן רק את השינויים שאתם מפעילים מניבים ליבה עץ שלא ניתן למזג בצורה נכונה עם גרסאות עתידיות ב-upstream.