Ubuntu ส่งมอบเคอร์เนลและ upstream kernel แตกต่างกันอย่างไร


31

ความแตกต่างของฟีเจอร์ที่ตั้งค่าระหว่างเคอร์เนลหลักและเคอร์เนลที่อูบุนตูใช้อยู่คืออะไร? ทำไม Ubuntu จึงแยกออกจากเคอร์เนลหลักแทนที่จะใช้เคอร์เนลหลักโดยตรง

คำตอบ:


18

เคอร์เนล upstream (เรียกว่าเมื่อเราจัดเตรียมเป็นmainline kernels ) เป็นเพียงเคอร์เนล upstream สำหรับเวอร์ชันที่ระบุโดยมีการเปลี่ยนแปลงการกำหนดค่าเล็กน้อยเพียงเล็กน้อยเพื่อให้มีปัญหาน้อยที่สุดในการติดตั้ง Ubuntu

ความแตกต่างระหว่างเมล็ดเหล่านี้และเมล็ดที่ออกสำหรับ Ubuntu นั้นมีการเปลี่ยนแปลงการกำหนดค่าอื่น ๆ มากมายซอร์สแพทช์ * และในบางกรณีคอมไพล์ในโมดูลและการสนับสนุนฮาร์ดแวร์

รหัสที่สำคัญน้อยมากแตกต่างจากต้นน้ำอื่นนอกเหนือจากที่ระบุไว้ข้างต้น

*: ส่วนใหญ่แล้ว patch มักจะมีการเปลี่ยนแปลงการทำงานเริ่มต้นของเคอร์เนล สิ่งเหล่านี้ไม่ จำกัด เพียง: บัญชีดำ, ตารางวิดีโอแปลก ๆ , สร้างขึ้นในโมดูล, การเปลี่ยนแปลงของแหล่งที่ยังไม่ได้อยู่ในต้นไม้ของ Linus หรือคิวที่เสถียรเป็นต้น

ซอร์สแพทช์คือสิ่งที่ทีมใช้เพื่อแนะนำตัวเลือกการกำหนดค่าที่จำเป็นเพื่อสนับสนุนซอฟต์แวร์ที่วางจำหน่ายมากมายสำหรับ Ubuntu รุ่นที่เฉพาะเจาะจง ในหลายกรณีมีความจำเป็นสำหรับแอปพลิเคชันเหล่านั้นในการทำงานอย่างถูกต้อง ความแตกต่างพื้นฐานระหว่างสิ่งนี้และเคอร์เนลอัพสตรีมคือเคอร์เนลอัพสตรีมบริสุทธิ์ไม่ได้มีการกระจายเฉพาะ

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

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

ในกรณีเหล่านี้แพทช์ที่มุ่งหน้าไปยังต้นน้ำจะดำเนินการเป็นแพทช์แหล่งในลักษณะเดียวกันมากก่อนที่มีความเสถียรและแพทช์ที่ยังไม่ได้อยู่ในต้นไม้ของไลนัส ลิงก์ไปยังข้อมูลจำเพาะการตรวจสอบเดลต้าควรทำหน้าที่เป็นข้อมูลอ้างอิงสำหรับสิ่งที่ได้รับการตรวจสอบสำหรับรุ่น Natty ปัจจุบันของเคอร์เนล Ubuntu


1
มีรายละเอียดเพิ่มเติมเกี่ยวกับ Patch patches หรือไม่และทำไมจึงต้องมีการเปลี่ยนแปลงการกำหนดค่าบางอย่างสำหรับเคอร์เนลของ Ubuntu?
Andrew Stern

แอนดรูว์ใช่ฉันกำลังทำงานกับข้อความคำอธิบายบางอย่างเพื่อเพิ่มไปยังข้างต้นหวังว่าจะเคลียร์ว่าแพทช์ซอสมีรายละเอียดมากขึ้นอีกเล็กน้อย :-)
Jeremy Foshee

2

เคอร์เนล Linux กำลังพัฒนาอย่างต่อเนื่อง ในบางครั้งทีมงาน Ubuntu ต้องพูดว่า 'ตกลงเราจะใช้เคอร์เนลตามที่ได้รับ' ในบางครั้งคุณอาจได้รับเคอร์เนลใหม่ที่มีอยู่ใน repos เพื่อใช้ใน การกระจายปัจจุบัน

สถานที่นี้สามารถทำให้การอ่านน่าสนใจ แต่มันอาจเป็นเทคนิคอย่างสูง คุณอาจสามารถทำสิ่งที่กำลังทำอยู่ต้นน้ำและสิ่งที่คุณขาดหายไปในขณะนี้ (แต่ในที่สุดจะได้รับ)

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


4
ในขณะที่ทั้งหมดนี้เป็นจริงมากฉันไม่คิดว่าคุณค่อนข้างเข้าใจคำถาม ฉันคิดว่าผู้ถามสงสัยเกี่ยวกับแพทช์ที่ Ubuntu ใช้กับเคอร์เนล
8128

0

คุณสามารถดาวน์โหลดแผนผัง git ของ Ubuntu และใช้โปรแกรมดูกราฟิกเพื่อดูแผนผัง git ที่จะแสดงแพทช์ทั้งหมดของ Ubuntu https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide

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


2
ดีรายการจะมุ่งเน้นไปที่การอภิปรายเปิดแพทช์ที่นำเสนอ มันไม่น่าจะเป็นสถานที่ที่จะทำให้คุณมีความคิดที่ชัดเจนในสิ่งที่เราทำ ฉันขอแนะนำ FreeNode IRC channel # ubuntu-kernel สำหรับเรื่องนี้
Jeremy Foshee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.