1 คะแนน โดย GN⁺ 2023-10-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความเกี่ยวกับโปรเจกต์ของผู้เขียนใน Hackweek 22 ของ SUSE ซึ่งได้สร้าง unikernel ที่สามารถรัน WebAssembly ได้
  • ผู้เขียนเลือกโปรเจกต์นี้ด้วยเหตุผลหลายประการ รวมถึงประโยชน์ที่อาจเกิดขึ้นจากการผสาน unikernel กับ WebAssembly
  • จากมุมมองของนักพัฒนาแอปพลิเคชัน การพอร์ตแอปพลิเคชันไปยังหรือเขียนแอปสำหรับ unikernel อาจเป็นเรื่องยาก เพราะทั้งแอปพลิเคชันและ dependencies ของมันต้องรองรับ unikernel เป้าหมาย
  • ฝั่งผู้ดูแล unikernel เองก็มีความยากลำบากในการรับประกันว่าแอปพลิเคชันใด ๆ จะทำงานบนแพลตฟอร์มของตนได้อย่างราบรื่น เนื่องจากมี primitive ของระบบที่ไม่เป็นที่รู้จักซึ่งแอปพลิเคชันของผู้ใช้อาจนำไปใช้
  • แต่เมื่อกำหนดให้แพลตฟอร์มเป้าหมายเป็น WebAssembly แอปพลิเคชันจะมีชุดความสามารถที่ชัดเจนซึ่ง WebAssembly runtime ต้องเป็นผู้จัดเตรียม
  • ผู้เขียนใช้โปรเจกต์ RustyHermit ซึ่งเป็น unikernel ที่เขียนด้วย Rust เป็นฐานสำหรับแอปพลิเคชัน unikernel
  • ผู้เขียนพบความยากลำบากที่เกี่ยวข้องกับ WebAssembly runtime เพราะ Wasmtime ซึ่งเป็น runtime ที่ตนชอบนั้นไม่ได้ถูกสร้างให้ทำงานบน RustyHermit สุดท้ายจึงไปพบและเลือกใช้ wasmi ซึ่งเป็น WebAssembly runtime ที่เขียนด้วย Rust ล้วน
  • ผู้เขียนยังกล่าวถึงการใช้งานข้อเสนอ WebAssembly Component Model ใน Spiderlightning ซึ่งช่วยมอบความสามารถให้กับ WebAssembly guest และทำให้โฮสต์สามารถใช้ความสามารถที่ WebAssembly guest จัดเตรียมไว้ได้
  • ผู้เขียนต้องขยาย wit-bindgen ซึ่งเป็นเครื่องมือ CLI ที่สร้างโค้ดฝั่งโฮสต์/guest จากไฟล์ .wit เพื่อให้รองรับ WebAssembly runtime อย่าง wasmi
  • ผู้เขียนปิดท้ายโพสต์ด้วยวิดีโอการทำงานของแอปพลิเคชัน unikernel ที่รันเดโม http-server ของ Spiderlightning พร้อมบอกว่าในตอนถัดไปของเส้นทางนี้จะพูดถึง Rust async, Redis และข้อผิดพลาดบางส่วน

1 ความคิดเห็น

 
GN⁺ 2023-10-24
ความคิดเห็นจาก Hacker News
  • ผู้ใช้เชื่อมโยงกับการบรรยายเรื่อง “การกำเนิดและการตายของ JavaScript”
  • มีการถกเถียงกันถึงวิธีที่ดีที่สุดสำหรับแฮกเกอร์ที่ไม่ใช่สาย OS ในการเข้าถึง unikernel โดยมีการเสนอหลายทางเลือก เช่น สร้างแอปพลิเคชันเป็น Linux kernel module, แฮก Linux แล้วแทรกโค้ดเข้าไป หรือใช้โปรเจกต์ unikernel บน GitHub
  • มีการเสนอและอภิปรายแนวคิดของเครื่อง x64 ที่รัน VM ซึ่งเชื่อมต่อกับการ์ดเครือข่ายในฐานะทรัพยากรคอมพิวเตอร์ทั่วไป
  • มีความตื่นเต้นต่อ WebAssembly (WASM) โดยผู้ใช้ชื่นชมการทำแซนด์บ็อกซ์และความสามารถในการพกพาของมัน และบางคนก็หวังว่ามันน่าจะถูกคิดค้นขึ้นแทน JavaScript ตั้งแต่ยุค 90
  • ผู้ใช้หวังว่า WASM จะคงอยู่ได้ในระยะยาว โดยมองว่าปัญหาคือมันยังไม่สามารถรันโปรแกรมเก่า ๆ ได้จำนวนมาก และหวังว่า WASM จะช่วยแก้เรื่องนี้ได้
  • มีคำถามเกี่ยวกับศักยภาพของฮาร์ดแวร์ WASM โดยเฉพาะ ซึ่งสะท้อนความสนใจต่อพัฒนาการของเทคโนโลยีในอนาคต
  • ผู้ใช้แสดงความสงสัยใคร่รู้เกี่ยวกับกรณีการใช้งานของ unikernel และ WASM ซึ่งสะท้อนความต้องการเห็นการประยุกต์ใช้เทคโนโลยีนี้ในทางปฏิบัติ
  • มีการอภิปรายแนวคิดของ unikernel ที่รัน runtime สำหรับ garbage collection อย่างปลอดภัยใน kernel space โดยเสนอว่าสิ่งนี้อาจทำให้ยกเลิกการรองรับ virtual memory mapping ใน CPU ได้ และอาจทำให้มันทำงานได้เร็วขึ้น
  • คอมเมนต์ที่ถูกติดธงว่า “Molto interessante, complimenti” มีความหมายในภาษาอิตาลีว่า “น่าสนใจมาก ขอแสดงความยินดี”