Linus Torvalds อธิบายปัญหาในการใช้ ZFS สำหรับเคอร์เนล Linux

ในระหว่างการอภิปราย การทดสอบ ตัวกำหนดเวลางานหนึ่งในผู้เข้าร่วมการสนทนาได้ยกตัวอย่างว่าแม้จะมีข้อความเกี่ยวกับความจำเป็นในการรักษาความเข้ากันได้เมื่อพัฒนาเคอร์เนล Linux แต่การเปลี่ยนแปลงล่าสุดในเคอร์เนลทำให้การทำงานที่ถูกต้องของโมดูลหยุดชะงัก "ZFS บน Linux". ลินัส ทอร์วัลด์ส กล่าวว่าว่าหลักการ"อย่าทำลาย ผู้ใช้" หมายถึงการรักษาอินเทอร์เฟซเคอร์เนลภายนอกที่ใช้โดยแอปพลิเคชันพื้นที่ผู้ใช้ตลอดจนตัวเคอร์เนลเอง แต่ไม่ครอบคลุมถึงส่วนเสริมของบุคคลที่สามที่พัฒนาแยกต่างหากบนเคอร์เนลที่ไม่ได้รับการยอมรับในองค์ประกอบหลักของเคอร์เนล ซึ่งผู้เขียนจะต้องตรวจสอบการเปลี่ยนแปลงในเคอร์เนลด้วยความเสี่ยงและอันตรายของตนเอง

สำหรับโปรเจ็กต์ ZFS บน Linux นั้น Linus ไม่แนะนำให้ใช้โมดูล zfs เนื่องจากสิทธิ์ใช้งาน CDDL และ GPLv2 ไม่เข้ากัน สถานการณ์คือเนื่องจากนโยบายการออกใบอนุญาตของ Oracle โอกาสที่ ZFS จะสามารถเข้าสู่เคอร์เนลหลักจึงมีน้อยมาก เลเยอร์ที่เสนอเพื่อหลีกเลี่ยงความไม่ลงรอยกันของใบอนุญาตซึ่งแปลการเข้าถึงฟังก์ชันเคอร์เนลไปเป็นโค้ดภายนอกเป็นวิธีแก้ปัญหาที่น่าสงสัย - ทนายความกล่าวต่อ โต้แย้ง เกี่ยวกับว่าการส่งออกฟังก์ชันเคอร์เนล GPL อีกครั้งผ่าน Wrappers ส่งผลให้เกิดการสร้างงานลอกเลียนแบบที่ต้องเผยแพร่ภายใต้ GPL หรือไม่

ทางเลือกเดียวที่ Linus ตกลงที่จะยอมรับรหัส ZFS ลงในเคอร์เนลหลักคือการได้รับอนุญาตอย่างเป็นทางการจาก Oracle ซึ่งได้รับการรับรองโดยทนายความหลัก หรือที่ดีกว่าคือ Larry Ellison เอง ไม่อนุญาตให้ใช้โซลูชันระดับกลาง เช่น เลเยอร์ระหว่างเคอร์เนลและโค้ด ZFS เนื่องจากนโยบายเชิงรุกของ Oracle เกี่ยวกับทรัพย์สินทางปัญญาของอินเทอร์เฟซการเขียนโปรแกรม (เช่น การทดลอง กับ Google เกี่ยวกับ Java API) นอกจากนี้ Linus ยังถือว่าความปรารถนาที่จะใช้ ZFS เป็นเพียงการยกย่องแฟชั่นเท่านั้น ไม่ใช่ข้อได้เปรียบทางเทคนิค เกณฑ์มาตรฐานที่ Linus ตรวจสอบไม่รองรับ ZFS และการขาดการสนับสนุนอย่างเต็มที่ไม่ได้รับประกันความเสถียรในระยะยาว

เราขอเตือนคุณว่ารหัส ZFS ได้รับการเผยแพร่ภายใต้ใบอนุญาต CDDL ฟรี ซึ่งเข้ากันไม่ได้กับ GPLv2 ซึ่งไม่อนุญาตให้รวม ZFS บน Linux เข้ากับสาขาหลักของเคอร์เนล Linux เนื่องจากมีการผสมรหัสภายใต้ใบอนุญาต GPLv2 และ CDDL เป็นที่ยอมรับไม่ได้ เพื่อหลีกเลี่ยงความไม่เข้ากันของใบอนุญาตนี้ โครงการ ZFS บน Linux จึงตัดสินใจแจกจ่ายผลิตภัณฑ์ทั้งหมดภายใต้ใบอนุญาต CDDL ในรูปแบบของโมดูลที่โหลดแยกต่างหากซึ่งจัดหาแยกต่างหากจากเคอร์เนล

ความเป็นไปได้ในการแจกจ่ายโมดูล ZFS สำเร็จรูปโดยเป็นส่วนหนึ่งของชุดแจกจ่ายเป็นเรื่องที่ถกเถียงกันในหมู่นักกฎหมาย ทนายความจาก Software Freedom Conservancy (SFC) พิจารณาการส่งมอบโมดูลเคอร์เนลไบนารีในการแจกจ่ายจะสร้างผลิตภัณฑ์ที่รวมกับ GPL โดยมีข้อกำหนดว่างานผลลัพธ์จะต้องถูกกระจายภายใต้ GPL ทนายความ Canonical ไม่เห็นด้วย และระบุว่าการส่งมอบโมดูล zfs เป็นที่ยอมรับได้หากส่วนประกอบได้รับการจัดหาเป็นโมดูลที่มีในตัวเอง แยกจากแพ็คเกจเคอร์เนล Canonical ตั้งข้อสังเกตว่าการแจกจ่ายใช้แนวทางที่คล้ายกันมานานแล้วในการจัดหาไดรเวอร์ที่เป็นกรรมสิทธิ์ เช่น ไดรเวอร์ NVIDIA

อีกด้านหนึ่งระบุว่าปัญหาความเข้ากันได้ของเคอร์เนลในไดรเวอร์ที่เป็นกรรมสิทธิ์ได้รับการแก้ไขโดยการจัดหาเลเยอร์ขนาดเล็กที่แจกจ่ายภายใต้ใบอนุญาต GPL (โมดูลภายใต้ใบอนุญาต GPL จะถูกโหลดลงในเคอร์เนลซึ่งโหลดส่วนประกอบที่เป็นกรรมสิทธิ์แล้ว) สำหรับ ZFS สามารถเตรียมเลเยอร์ดังกล่าวได้ก็ต่อเมื่อมีการจัดเตรียมข้อยกเว้นใบอนุญาตจาก Oracle เท่านั้น ใน Oracle Linux ความเข้ากันไม่ได้กับ GPL ได้รับการแก้ไขโดย Oracle โดยมีข้อยกเว้นสิทธิ์การใช้งานที่จะลบข้อกำหนดในการอนุญาตสิทธิ์การทำงานแบบรวมภายใต้ CDDL แต่ข้อยกเว้นนี้ใช้ไม่ได้กับการแจกจ่ายอื่น ๆ

วิธีแก้ปัญหาชั่วคราวคือการจัดเตรียมเฉพาะซอร์สโค้ดของโมดูลในการแจกจ่าย ซึ่งไม่นำไปสู่การรวมกลุ่ม และถือเป็นการส่งมอบผลิตภัณฑ์สองรายการที่แยกจากกัน ใน Debian ระบบ DKMS (Dynamic Kernel Module Support) ใช้สำหรับสิ่งนี้ ซึ่งโมดูลได้รับการจัดเตรียมในซอร์สโค้ดและประกอบบนระบบของผู้ใช้ทันทีหลังจากติดตั้งแพ็คเกจ

ที่มา: opennet.ru

เพิ่มความคิดเห็น