ชุมชน Linux ขณะนี้กำลังเผชิญกับการถกเถียงที่ร้อนระอุเกี่ยวกับมาตรฐานซอฟต์แวร์และความเข้ากันได้ย้อนหลัง หลังจากที่คณะกรรมการเทคนิค Debian ตัดสินใจล่าสุดให้บังคับใช้มาตรฐานนโยบายของ Debian กับแพ็คเกจ systemd ความขัดแย้งนี้มีศูนย์กลางอยู่ที่การที่ systemd ลบสิทธิ์การเข้าถึงแบบ world-writable สำหรับไดเรกทอรี /dev/lock ซึ่งเป็นการเปลี่ยนแปลงที่ทำให้แอปพลิเคชันรุ่นเก่าหลายตัวทำงานผิดปกติ หลังจากการอภิปรายในชุมชนอย่างกว้างขวาง คณะกรรมการเทคนิคได้ใช้มาตรการที่ไม่ค่อยเกิดขึ้นบ่อยด้วยการแทนที่ผู้ดูแลแพ็คเกจ systemd เพื่อบังคับให้เป็นไปตามข้อกำหนดนโยบายของ Debian
ความขัดแย้งหลักระหว่างความปลอดภัยสมัยใหม่และความเข้ากันได้ของซอฟต์แวร์รุ่นเก่า
หัวใจของการอภิปรายคือความตึงเครียดพื้นฐานระหว่างแนวปฏิบัติด้านความปลอดภัยสมัยใหม่และการรักษาการสนับสนุนซอฟต์แวร์รุ่นเก่า นักพัฒนา systemd ให้เหตุผลว่าการมีไดเรกทอรีแบบ world-writable ใน /run เป็นความเสี่ยงด้านความปลอดภัยที่สำคัญ เนื่องจากกระบวนการใดๆ ก็ตามอาจใช้ทรัพยากรระบบหมดไปด้วยการเติมไดเรกทอรีด้วยไฟล์ สิ่งนี้อาจนำไปสู่สภาวะ denial-of-service ที่บริการสำคัญอย่าง SSH ไม่สามารถใช้งานได้ ทีม systemd มองว่านี่เป็นโอกาสที่จะก้าวออกจากกลไกการล็อคที่พวกเขาถือว่าล้าสมัย ไปสู่ทางเลือกสมัยใหม่อย่างเช่น system call flock()
ในท้ายที่สุด FHS เป็นของผู้ใช้โดยรวม ไม่ใช่ของผู้ที่ดูแลรักษามาตรฐานนี้ ฉันมีอายุมากพอที่จะจำความวุ่นวายที่เคยมีอยู่ก่อนอิทธิพลของ FHS ได้
อย่างไรก็ตาม แนวทางที่เน้นความปลอดภัยนี้มาพร้อมกับต้นทุนที่ทำลายความเข้ากันได้กับแอปพลิเคชันที่ใช้งานมายาวนานหลายตัว ซอฟต์แวร์รวมถึง Java Secure Copy (JSCP), Digitemp, tagainijaga และ Fanctl ต่างพึ่งพากลไกการล็อคแบบดั้งเดิมทั้งสิ้น สำหรับผู้ใช้ที่ทำงานกับระบบ embedded และอุปกรณ์ serial การหยุดทำงานเหล่านี้แสดงถึงการหยุดชะงักของขั้นตอนการทำงานจริงที่ไม่สามารถแก้ไขได้ง่ายๆ
ซอฟต์แวร์ที่ได้รับผลกระทบ:
- Java Secure Copy (JSCP)
- Digitemp
- tagainijaga
- Fanctl
- uucico (Unix-to-Unix Copy)
การอภิปรายเกี่ยวกับมาตรฐานลำดับชั้นระบบไฟล์ทวีความรุนแรงขึ้น
การสนทนาได้ขยายตัวอย่างรวดเร็วเกินกว่าปัญหาด้านเทคนิคเฉพาะหน้า ไปสู่การตั้งคำถามถึงความเกี่ยวข้องของมาตรฐานลำดับชั้นระบบไฟล์ (Filesystem Hierarchy Standard - FHS) เอง FHS ซึ่งระบุโครงสร้างและวัตถุประสงค์ของไดเรกทอรี รวมถึงข้อกำหนดสำหรับ /dev/lock ไม่มีการอัปเดตครั้งใหญ่มานานกว่าทศวรรษแล้ว นักพัฒนา systemd อธิบายว่ามาตรฐานนี้ ตายแล้ว และล้าสมัยอย่างรุนแรง ในขณะที่คนอื่นๆ ในชุมชนให้เหตุผลว่าความเสถียรของมาตรฐานนี้เป็นสิ่งที่ทำให้มันมีค่า
สมาชิกชุมชนชี้ให้เห็นว่าความต้องการสมัยใหม่หลายอย่างไม่ได้รับการกล่าวถึงในข้อกำหนด FHS ปัจจุบัน มาตรฐานนี้ไม่ได้พิจารณาแนวปฏิบัติร่วมสมัยเช่น containerization, sandboxing, การกระจายแบบ image-based หรือไดเรกทอรีรันไทม์เฉพาะผู้ใช้ ผู้แสดงความคิดเห็นบางคนตั้งข้อสังเกตว่าการกระจายต่างๆ เริ่มเบี่ยงเบนไปจาก FHS ในแบบของตัวเองแล้ว สร้างความแตกแยกใหม่ชนิดหนึ่งที่มาตรฐานนี้ถูกออกแบบมาเพื่อป้องกันในตอนแรก
ความไม่พอใจของชุมชนต่อแนวทางของ systemd
เหตุการณ์นี้ได้จุดชนวนความไม่พอใจที่มีมายาวนานในชุมชนต่อปรัชญาการพัฒนาของ systemd ขึ้นอีกครั้ง ผู้แสดงความคิดเห็นหลายคนแสดงความกังวลต่อสิ่งที่พวกเขารับรู้ว่าเป็นแนวโน้มของนักพัฒนา systemd ที่ให้ความสำคัญกับวิสัยทัศน์ของพวกเขาเหนือความต้องการด้านความเข้ากันได้ของผู้ใช้ ความรู้สึกนี้รุนแรงเป็นพิเศษเนื่องจากหนึ่งในนักพัฒนา systemd ที่เกี่ยวข้องยังทำหน้าที่เป็นผู้ดูแลแพ็คเกจ Debian อีกด้วย สร้างความขัดแย้งทางผลประโยชน์ในการเป็นตัวแทนของค่านิยมที่เน้นความเสถียรของ Debian
การอภิปรายเผยให้เห็นความกังวลที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับการกำกับดูแลและการตัดสินใจในโครงการโอเพ่นซอร์ส ดังที่สมาชิกชุมชนหนึ่งสังเกตว่า Systemd เกิดขึ้นมาจากความหงุดหงิดต่อปัญหามรดกเก่า ดังนั้นทั้งโครงการจึงมีอยู่เป็นความพยายามทำให้ทันสมัย ไม่น่าแปลกใจที่พวกเขาถือว่าความเข้ากันได้ย้อนหลังมีความสำคัญต่ำ ความแตกต่างพื้นฐานในปรัชญาระหว่างการทำให้ทันสมัยอย่างรวดเร็วและการอนุรักษ์อย่างระมัดระวังนี้ยังคงสร้างความตึงเครียดภายในระบบนิเวศ Linux
การแทรกแซงที่ไม่ปกติของคณะกรรมการเทคนิค
การตัดสินใจของคณะกรรมการเทคนิค Debian ที่จะแทนที่ผู้ดูแล systemm แสดงถึงการเพิ่มระดับความขัดแย้งที่สำคัญ คณะกรรมการตัดสินว่าไม่ว่าความชอบของ systemd upstream จะเป็นอย่างไร แพ็คเกจ Debian ต้องปฏิบัติตามนโยบาย Debian ซึ่งในปัจจุบันกำหนดให้ต้องปฏิบัติตาม FHS การแทรกแซงนี้เน้นย้ำถึงความสมดุลที่ท้าทายซึ่งผู้ดูแลการกระจายต้องรักษาระหว่างการนำการเปลี่ยนแปลงจาก upstream ไปใช้ และการปกป้องผู้ใช้จากการเปลี่ยนแปลงที่ทำให้ระบบเสียหาย
การลงคะแนนของคณะกรรมการเสนอสามตัวเลือก ซึ่งทั้งหมดกำหนดให้แพ็คเกจ systemd จัดหา /dev/lock พร้อมกับสิทธิ์ที่ผ่อนคลายพอที่ซอฟต์แวร์ Debian ที่มีอยู่ซึ่งใช้ /dev/lock สำหรับการล็อคระบบของอุปกรณ์ serial (และวัตถุประสงค์ที่คล้ายกัน) จะทำงานได้อีกครั้ง ผลลัพธ์นี้แสดงให้เห็นถึงความมุ่งมั่นของ Debian ต่อปรัชญาที่เน้นความเสถียร แม้ในเวลาที่มันขัดแย้งกับความพยายามทำให้ทันสมัยของนักพัฒนา upstream
ตัวเลือกการลงคะแนนของคณะกรรมการทางเทคนิค:
ตัวเลือกทั้งสามกำหนดให้แพ็กเกจ systemd ต้องจัดเตรียม /dev/lock พร้อมสิทธิ์การเข้าถึงที่อนุญาตให้ซอフต์แวร์ Debian ที่มีอยู่ซึ่งใช้การล็อกอุปกรณ์อนุกรมในระดับระบบสามารถทำงานได้อีกครั้ง คณะกรรมการได้ใช้อำนาจตามรัฐธรรมนูญในการยกเลิกการตัดสินใจของผู้ดูแลระบบ
มองไปข้างหน้า: อนาคตของมาตรฐาน Linux
เหตุการณ์นี้ทำให้เกิดคำถามที่กว้างขึ้นเกี่ยวกับว่ามาตรฐาน Linux ควรพัฒนาอย่างไรเพื่อตอบสนองความต้องการสมัยใหม่ในขณะที่ยังคงรักษาความเข้ากันได้ไว้ การอภิปรายในชุมชนเผยให้เห็นถึงความสนใจอย่างมากในการฟื้นฟูและอัปเดต FHS แทนที่จะละทิ้งมันไปทั้งหมด ผู้เข้าร่วมหลายคนแสดงความกังวลเกี่ยวกับทางเลือกอื่น – การที่เอกสารลำดับชั้นไฟล์ของ systemd กลายเป็นมาตรฐานโดยพฤตินัยผ่าน Linux Userspace API Group
เส้นทางข้างหน้าอาจเกี่ยวข้องกับการเจรจาอย่างระมัดระวังระหว่างลำดับความสำคัญที่แข่งขันกัน ดังที่ผู้แสดงความคิดเห็นหนึ่งระบุว่า ลำดับความสำคัญสัมพัทธ์ที่แตกต่างกันของความเข้ากันได้ย้อนหลัง ความสามารถในการบำรุงรักษา และปัญหาต่างๆ ที่ปัญหามรดกเก่าก่อให้ขึ้นนั้นเป็นสิ่งที่สมเหตุสมผล การหาความสมดุลที่เหมาะสมระหว่างความปลอดภัย ความทันสมัย และความเสถียรภาพ ยังคงเป็นหนึ่งในแง่มุมที่ท้าทายที่สุดของการบำรุงรักษาการกระจาย Linux ในปี 2024
การแก้ไขความขัดแย้งเฉพาะเรื่องนี้สร้างบรรทัดฐานที่สำคัญสำหรับวิธีที่ Debian จะจัดการกับปัญหาที่คล้ายกันในอนาคต โดยการยืนยันความสำคัญเหนือกว่าของนโยบายเหนือการตัดสินใจของ upstream คณะกรรมการเทคนิคได้เสริมสร้างอัตลักษณ์ของ Debian ในฐานะการกระจายที่เน้นความเสถียร แม้ว่ามันจะยังคงรวมซอฟต์แวร์สมัยใหม่อย่าง systemd ต่อไป
อ้างอิง: Debian Technical Committee overrides systemd change.
