คอมไพเลอร์ OpenBSD WebAssembly ก่อให้เกิดการถกเถียงในชุมชนเกี่ยวกับความน่าเชื่อถือและขนาดไฟล์

ทีมชุมชน BigGo
คอมไพเลอร์ OpenBSD WebAssembly ก่อให้เกิดการถกเถียงในชุมชนเกี่ยวกับความน่าเชื่อถือและขนาดไฟล์

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

ความกังวลด้านความปลอดภัยเป็นศูนย์กลาง

ส่วนคำถามที่พบบ่อย (FAQ) ของโครงการมีการอ้างอิงถึงเอกสารชื่อดังของ Ken Thompson ในปี 1984 เรื่อง Reflections on Trusting Trust ซึ่งดึงความสนใจของเหล่านักพัฒนาที่ใส่ใจความปลอดภัยเป็นอย่างมาก เอกสารนี้สำรวจว่าคอมไพเลอร์สามารถถูกบุกรุกเพื่อแทรกช่องโหว่ที่ซ่อนอยู่ลงในซอฟต์แวร์ได้อย่างไร แม้เมื่อซอร์สโค้ดดูเหมือนจะปลอดภัย การอ้างอิงนี้ทำให้เกิดการอภิปรายว่าผู้ใช้ควรเชื่อถือโค้ดไบนารีที่ดาวน์โหลดจากเว็บหรือไม่ โดยเฉพาะเมื่อเกี่ยวข้องกับเครื่องมือชุดที่ซับซ้อน

ข้อคิดชัดเจน คุณไม่สามารถเชื่อถือโค้ดที่คุณไม่ได้สร้างขึ้นมาด้วยตัวเองทั้งหมด ไม่ว่าการตรวจสอบหรือการ scrutinize ในระดับซอร์สโค้ดจะมากเพียงใดก็ไม่อาจปกป้องคุณจากการใช้โค้ดที่ไม่น่าเชื่อถือได้

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

ความขัดแย้งเรื่องขนาดไฟล์ปรากฏขึ้น

หนึ่งในข้อกังวลเชิงปฏิบัติทันทีที่ผู้ใช้ยกมาคือขนาดการดาวน์โหลดที่มากของเครื่องมือชุดนี้ รายงานเบื้องต้นชี้ให้เห็นว่าคอมไพเลอร์ดาวน์โหลดข้อมูลประมาณ 350MB เมื่อเข้าไปยังหน้าเว็บเพจ ถึงแม้ว่านักพัฒนาจะชี้แจงว่าสามารถลดลงเหลือประมาณ 100MB ได้ด้วยการสนับสนุนการบีบอัด Zstandard ที่เหมาะสมในเบราว์เซอร์

การแยกส่วนเผยให้เห็นโค้ดเครื่อง WebAssembly ขนาด 122MB สำหรับ build LLVM ที่ถูกปรับแต่งให้เหมาะสมแล้ว และ 248MB สำหรับ sysroot ของ OpenBSD แม้นักพัฒนาจะระบุว่านี่คือ build ที่ถูกปรับแต่งอย่างหนักแล้ว แต่ผู้ใช้บางส่วนก็แสดงความไม่พอใจเกี่ยวกับการดาวน์โหลดไฟล์ขนาดใหญ่โดยอัตโนมัติ การอภิปรายขยายไปสู่ความกังวลที่กว้างขึ้นเกี่ยวกับแอปพลิเคชันเว็บที่ดาวน์โหลดข้อมูลไบนารีจำนวนมากโดยไม่ได้รับความยินยอมอย่างชัดเจนจากผู้ใช้

รายละเอียดส่วนประกอบของ Toolchain:

  • LLVM/Clang/LLD WebAssembly bundle: 122 MB (บีบอัดเหลือ 23 MB ด้วย Zstandard)
  • OpenBSD sysroot: 248 MB (บีบอัดเหลือ 45 MB ด้วย Zstandard)
  • รวมทั้งหมดโดยไม่บีบอัด: ~350 MB
  • รวมทั้งหมดเมื่อบีบอัดด้วย Zstandard: ~100 MB

ข้อจำกัดทางเทคนิคและคำถามเกี่ยวกับความเข้ากันได้

เหนือกว่าความกังวลเรื่องความปลอดภัยและประสิทธิภาพแล้ว นักพัฒนาได้ระบุถึงข้อจำกัดทางเทคนิคที่อาจเกิดขึ้นในการใช้งานปัจจุบัน ผู้ใช้หนึ่งรายรายงานความล้มเหลวในการคอมไพล์เมื่อทดสอบฟังก์ชันการทำงาน std::print ใหม่ของ C++23 ซึ่งชี้ให้เห็นถึงความเป็นไปได้ของการสนับสนุนไลบรารีมาตรฐานที่ไม่สมบูรณ์ สิ่งนี้เน้นย้ำถึงความท้าทายในการรักษาความเข้ากันได้ของเครื่องมือชุดที่สมบูรณ์ในสภาพแวดล้อมการคอมไพล์ข้ามแพลตฟอร์ม

ผู้สร้างโครงการได้เชิญชวนให้รายงานข้อบกพร่องและให้ข้อเสนอแนะ โดยยอมรับว่าแม้เครื่องมือชุดนี้จะผ่านการทดสอบอย่างค่อนข้างละเอียดแล้ว แต่ก็อาจมีปัญหากับพอร์ต WebAssembly, การกำหนดค่า sysroot, หรือการประยุกต์ใช้แพตช์ OpenBSD ความเปิดกว้างต่อข้อมูลจากชุมชนนี้สะท้อนถึงธรรมชาติของการทดลองของโครงการและความมุ่งมั่นของนักพัฒนาที่จะปรับปรุงให้ดีขึ้น

ข้อมูลจำเพาะของ Toolchain ปัจจุบัน:

  • Compiler: Clang 19.1.7
  • Target System: OpenBSD 7.7 amd64
  • Architecture: WebAssembly
  • Integration: เข้ากันได้กับ YoWASP VS Code Extension
  • Status: ทดลอง/Proof of Concept

อนาคตของเครื่องมือการพัฒนาแบบเบราว์เซอร์

แม้จะมีข้อกังวล โครงการนี้ก็แสดงถึงก้าวที่น่าสนใจสู่การทำให้เครื่องมือการพัฒนาสามารถเข้าถึงได้มากขึ้นผ่านเทคโนโลยีเว็บ ความเข้ากันได้กับส่วนขยาย YoWASP VS Code บ่งบอกถึงศักยภาพในการบูรณาการเข้ากับกระบวนการพัฒนาที่มีอยู่ เป้าหมายของผู้สร้างในการส่งต่อการสนับสนุนการคอมไพล์ข้ามแพลตฟอร์ม OpenBSD ไปยัง nixpkgs แสดงให้เห็นถึงวิสัยทัศน์ระยะยาวสำหรับการยอมรับในวงกว้าง

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

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

อ้างอิง: Welcome to the experimental OpenBSD cross-compiler playground!