การเผยแพร่และการอัปเดตเคอร์เนลที่เสถียร

โมเดลรุ่นเคอร์เนลเสถียรของ Linux เริ่มเปิดตัวในปี 2005 โมเดลการพัฒนาเคอร์เนลที่มีอยู่ (รุ่นใหม่ทุก 2-3 เดือน) คือ ไม่ตรงตามความต้องการของผู้ใช้ส่วนใหญ่ ผู้ใช้ต้องการแก้ไขข้อบกพร่องที่เกิดขึ้นในช่วง 2-3 และ Linux ก็พบว่าการอัปเดตเคอร์เนลอัปเดตได้ยาก โดยไม่มีความคิดเห็นจากชุมชนเคอร์เนล โดยทั่วไป จะพยายามให้ เคอร์เนลแต่ละรายการที่ปลอดภัยและการแก้ไขข้อบกพร่องล่าสุดมีขนาดใหญ่และน่าสับสน ความพยายามจากผู้ใช้จำนวนมาก

รุ่นเคอร์เนลเสถียรจะอิงกับ Linus Torvalds โดยตรง และ ซึ่งปล่อยออกมาทุกสัปดาห์โดยประมาณ ขึ้นอยู่กับปัจจัยภายนอกต่างๆ (ช่วงเวลาของปี แพตช์ ภาระงานของผู้บำรุงรักษา ที่มีให้ ฯลฯ) ตัวเลขของค่าคงที่ รุ่นเริ่มต้นด้วยจำนวนรุ่นเคอร์เนลและหมายเลขเพิ่มเติม ต่อท้ายด้วย ตัวอย่างเช่น เคอร์เนล 4.4 เผยแพร่โดย Linus และ การเผยแพร่เคอร์เนลเสถียรที่ใช้เคอร์เนลนี้คือ 4.4.1, 4.4.2 4.4.3 และอื่นๆ ลำดับนี้มักจะถูกตัดให้สั้นลงด้วยตัวเลข 4.4.y เมื่อ หมายถึงแผนผังการเผยแพร่เคอร์เนลที่เสถียร แผนผังการเผยแพร่เคอร์เนลที่เสถียรแต่ละรายการ ซึ่งดูแลโดยนักพัฒนาเคอร์เนลรายเดียว ซึ่งมีหน้าที่เลือก แพตช์สำหรับการเผยแพร่และการจัดการกระบวนการตรวจสอบ/เผยแพร่

เคอร์เนลที่เสถียรจะคงอยู่ตลอดวงจรการพัฒนาปัจจุบัน หลังจากที่ Linus เผยแพร่เคอร์เนลใหม่ โครงสร้างการเผยแพร่เคอร์เนลที่เสถียรก่อนหน้าคือ หยุดทำงาน และผู้ใช้ต้องย้ายไปยังเคอร์เนลที่เผยแพร่ที่ใหม่กว่า

เคอร์เนลที่เสถียรในระยะยาว

หลังจาก 1 ปีของกระบวนการเผยแพร่เวอร์ชันใหม่ที่มีความเสถียรนี้ มีการลงความเห็นว่า ผู้ใช้ Linux หลายคนต้องการให้มีการสนับสนุนเคอร์เนลนานกว่า 2-3 เดือน สำหรับการตอบสนอง รุ่นเคอร์เนลที่รองรับระยะยาว (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 บรรทัด
  • ต้องแก้ไขเพียง 1 อย่าง
  • ต้องแก้ไขปัญหาที่ได้รับรายงานว่ามีปัญหา
  • อาจเป็นรหัสอุปกรณ์หรือฟีเจอร์แปลกใหม่สำหรับฮาร์ดแวร์ แต่จะเพิ่มอุปกรณ์ใหม่ที่สำคัญไม่ได้
  • ต้องผสานรวมกับ Linus Torvalds อยู่แล้ว ต้นไม้

กฎสุดท้าย "ต้องรวมเป็น Linus Torvalds แล้ว" ต้นไม้" ป้องกัน ชุมชนเคอร์เนลจากการสูญเสียการแก้ไข ชุมชนไม่เคยต้องการการแก้ไข เป็นรุ่นเคอร์เนลที่มีความเสถียร ซึ่งไม่ได้มีอยู่ใน Linus Torvalds ต้นไม้ ดังนั้น ผู้ใช้ที่อัปเกรดไม่ควรเห็นการถดถอย วิธีนี้ช่วยป้องกัน ที่โปรเจ็กต์อื่นๆ ที่ดูแลรักษาสาขาที่เสถียรและการพัฒนาสามารถ มี

การอัปเดตเคอร์เนล

ชุมชนเคอร์เนลของ Linux สัญญาว่าจะไม่มีการอัปเกรด ทำให้เกิดความเสียหายใดๆ ที่ใช้งานได้ในรุ่นก่อนหน้า นั่น คำสัญญาดังกล่าวยังคงเป็นจริงในปัจจุบัน อาจเกิดการถดถอย แต่มากที่สุด ข้อบกพร่องที่มีความสำคัญ และได้รับการแก้ไขอย่างรวดเร็ว หรือการเปลี่ยนแปลงที่ก่อให้เกิด การถดถอยจะเปลี่ยนกลับจากแผนผังเคอร์เนลของ Linux อย่างรวดเร็ว

คำมั่นสัญญานี้จริงทั้งสำหรับการอัปเดตเคอร์เนลที่มีความเสถียรเพิ่มเติมดังเช่น รวมถึงการอัปเดตสำคัญ ที่จะเกิดขึ้นทุก 3 เดือน อย่างไรก็ตาม ชุมชนเคอร์เนลสามารถรับประกันเฉพาะโค้ดที่ผสานรวมเป็น แผนผังเคอร์เนลของ Linux โค้ดใดๆ ที่ผสานรวมเข้ากับเคอร์เนลของอุปกรณ์ที่ไม่ได้อยู่ใน ไม่ทราบรุ่นของ kernel.org และ ไม่อาจวางแผนหรือพิจารณาการโต้ตอบเหล่านี้ได้

อุปกรณ์ที่ใช้ Linux ซึ่งมีชุดแพตช์ขนาดใหญ่อาจมีปัญหาสำคัญเมื่อ อัปเดตเป็นเคอร์เนลที่ใหม่กว่า เนื่องจากมีการเปลี่ยนแปลงจำนวนมากระหว่างแต่ละเคอร์เนล รุ่น (การเปลี่ยนแปลง 10-14,000 รายการต่อรุ่น) โดยเฉพาะอย่างยิ่งแพตช์ SoC มีปัญหาในการอัปเดตเป็นเคอร์เนลใหม่ เนื่องจากมีขนาดใหญ่และมีน้ำหนักมาก การปรับเปลี่ยนของสถาปัตยกรรมที่เฉพาะเจาะจง และบางครั้งเป็นรหัสเคอร์เนล เพื่อ ผลลัพธ์คือผู้ให้บริการ SoC ส่วนใหญ่เริ่มกำหนดมาตรฐานในการใช้รุ่น LTS ทำให้อุปกรณ์ได้รับการอัปเดตข้อบกพร่องและความปลอดภัย จากชุมชนเคอร์เนลของ Linux โดยตรง

ความปลอดภัย

เมื่อมีการเผยแพร่เคอร์เนล ชุมชนเคอร์เนลของ Linux แทบจะไม่ประกาศ การเปลี่ยนแปลงบางอย่างเป็นการแก้ไขด้านความปลอดภัย เนื่องจากปัญหาพื้นฐานของ ความยากในการพิจารณาว่าการแก้ไขบั๊กเป็นการแก้ไขข้อบกพร่องด้านความปลอดภัยหรือไม่ในเวลานั้น ในการสร้างสรรค์นี้ นอกจากนี้ยังมีการแก้ไขข้อบกพร่องหลายรายการที่บอกว่าเกี่ยวข้องกับความปลอดภัยเท่านั้น เมื่อเวลาผ่านไป ชุมชนเคอร์เนลจึงขอแนะนำอย่างยิ่ง ในการแก้ไขข้อบกพร่องทั้งหมด ที่มีการเผยแพร่ออกมา

เมื่อมีการรายงานปัญหาด้านความปลอดภัยไปยังชุมชนเคอร์เนล ปัญหาเหล่านั้นจะได้รับการแก้ไขดังนี้ โดยเร็วที่สุดและนำไปใช้กับโครงสร้างการพัฒนาและ ที่เสถียรแล้ว ดังที่อธิบายข้างต้น การเปลี่ยนแปลงแทบจะไม่ได้อธิบายไว้เลยว่า "การแก้ไขด้านความปลอดภัย" แต่ให้มีลักษณะเหมือนการแก้ไขบั๊กอื่นๆ สำหรับเคอร์เนล นี่คือ เพื่อให้บุคคลที่ได้รับผลกระทบสามารถอัปเดตระบบของตนก่อนที่ ผู้รายงานของปัญหาประกาศให้ทราบ

สำหรับรายละเอียดเกี่ยวกับการรายงานข้อบกพร่องด้านความปลอดภัยไปยังชุมชนเคอร์เนลเพื่อรับ แก้ไขได้โดยเร็วที่สุด โปรดดู ข้อบกพร่องด้านความปลอดภัยในคำแนะนำของผู้ใช้เคอร์เนลและผู้ดูแลระบบ Linux ที่ www.kernel.org

เนื่องจากทีมเคอร์เนลไม่ได้ประกาศข้อบกพร่องด้านความปลอดภัย CVE จำนวนปัญหาที่เกี่ยวข้องกับเคอร์เนลของ Linux มักจะเผยแพร่เป็นเวลาหลายสัปดาห์ เดือน และ บางครั้งหลายปีหลังจากการแก้ไข ผสานรวมเข้ากับเวอร์ชันเสถียรและการพัฒนา กิ่งก้าน

รักษาระบบที่ปลอดภัย

เมื่อติดตั้งใช้งานอุปกรณ์ที่ใช้ Linux เราขอแนะนำเป็นอย่างยิ่งว่า ผู้ผลิตอัปเดตเคอร์เนล LTS และส่งให้กับผู้ใช้ หลังจากทดสอบอย่างเหมาะสมแล้ว แสดงว่าการอัปเดตทำงานได้ดี ซึ่งมีข้อดีหลายประการดังนี้

  • รุ่นต่างๆ ได้รับการตรวจสอบโดยนักพัฒนาเคอร์เนลโดยรวม ไม่ใช่ใน ของแต่ละส่วน
  • การระบุว่าแพตช์ใดแก้ไข "ความปลอดภัย" ได้ยาก ปัญหาใดหรือไม่ รุ่น LTS เกือบทุกรุ่นมีรุ่นที่รู้จักอย่างน้อย 1 รายการ ความปลอดภัย และยังเป็นเรื่องที่ "ไม่รู้จัก" อีกมาก
  • หากการทดสอบแสดงปัญหา ชุมชนนักพัฒนาเคอร์เนลจะตอบสนอง อย่างรวดเร็วเพื่อแก้ไขปัญหา
  • การพยายามกรองเฉพาะการเปลี่ยนแปลงที่คุณเรียกใช้ในผลลัพธ์ในเคอร์เนล แผนผัง ซึ่งเป็นไปไม่ได้ที่จะผสานรวมอย่างถูกต้องกับรุ่นอัปสตรีมในอนาคต