WASI เป็นโครงการ Mozilla เพื่อใช้ WebAssembly นอกเบราว์เซอร์

WASI เป็นโครงการ Mozilla เพื่อใช้ WebAssembly นอกเบราว์เซอร์

นักพัฒนา Mozilla นำเสนอโครงการ WASI (WebAssembly System Interface) ซึ่งทำงานเกี่ยวกับการกำหนดอินเทอร์เฟซซอฟต์แวร์ที่สามารถใช้เพื่อจัดระเบียบปฏิสัมพันธ์ของแอปพลิเคชันที่ส่งมอบในรูปแบบ WebAssembly กับระบบปฏิบัติการ

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

WASI คืออะไร?

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

เริ่มแรก WASI API ได้รับการพัฒนาเป็นแบบไม่ใช้เบราว์เซอร์และแบบสแตนด์อโลน จาก JavaScript / Web API แต่ ในเวลาเดียวกันให้ระดับการแยกระบบที่เพียงพอ main (แอปพลิเคชันทำงานในแซนด์บ็อกซ์) และอนุญาตให้คุณกำหนดสิทธิ์ที่มอบให้กับแอปพลิเคชันอย่างชัดเจนในรูปแบบของ CloudABI และ Capsicum

วาสิ ใช้รูปแบบการรักษาความปลอดภัยตามการจัดการสิทธิ์ซึ่งภายในโปรแกรมสามารถดำเนินการที่ได้รับอนุญาตโดยเจตนาเท่านั้น

คล้ายกับวิธีที่ WebAssembly จำกัด การเข้าถึงที่ระดับของฟังก์ชันการนำเข้า WASI ควบคุมการเข้าถึงความสามารถของระบบ

ไฟล์ไดเร็กทอรีซ็อกเก็ตและรีซอร์สอื่น ๆ เชื่อมโยงกับ file descriptor (ความจุ) ชนิดพิเศษและแอ็พพลิเคชันต้องมีสิทธิ์ในการดำเนินการกับแต่ละรีซอร์ส

สิทธิ์ได้รับการจัดการตามลำดับชั้นนั่นคือการเข้าถึงไดเร็กทอรีจะถูกเปิดโดยอัตโนมัติและเข้าถึงไฟล์ทั้งหมดที่มีอยู่

ที่กำหนดว่า WebAssembly เป็นเวอร์ชันภาษาแอสเซมบลีที่ไม่ขึ้นกับแพลตฟอร์มการใช้ JIT สามารถบรรลุระดับประสิทธิภาพใกล้เคียงกับโค้ดเนทีฟในขณะที่ยังคงความสามารถในการทำงานบนแพลตฟอร์มฮาร์ดแวร์และระบบปฏิบัติการต่างๆ

ปัจจุบันโครงการจัดเตรียมโมดูล wasi-core พร้อมกับการใช้งาน POSIX API พื้นฐาน (ไฟล์ซ็อกเก็ต ฯลฯ ) ซึ่งปัจจุบันยังขาดการรองรับการล็อกและ I / O แบบอะซิงโครนัส

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

ต้นแบบส่วนประกอบ

Wasmtime เป็นรันไทม์ที่รับผิดชอบในการเรียกใช้งานแอปพลิเคชันบน WebAssembly ด้วยนามสกุล WASI เป็นแอปพลิเคชันแบบสแตนด์อโลนทั่วไป

Se สนับสนุนการเปิดใช้งาน WebAssembly bytecode ด้วยความช่วยเหลือของยูทิลิตี้บรรทัดคำสั่งพิเศษ และการออกแบบไฟล์ปฏิบัติการที่พร้อมใช้งาน (wasmtime ถูกสร้างขึ้นในแอปพลิเคชันเป็นไลบรารี)

เพื่อให้ได้ระดับประสิทธิภาพที่เหมาะสมจะใช้คอมไพเลอร์ JIT ตามตัวสร้างโค้ดระดับความสูง

Lucet เป็นอีกหนึ่งเวอร์ชันรันไทม์ของโครงการ Fastly (รหัสมีกำหนดเผยแพร่ในวันนี้หรือพรุ่งนี้)

WASI SDK- เครื่องมือสำหรับรวบรวมแอปพลิเคชัน C / C ++ ในรูปแบบเว็บแอสเซมบลีโดยใช้ Clang 8.0

เป้าหมายการประกอบที่รองรับ WASI สำหรับภาษา Rust ซึ่งช่วยให้คุณสามารถคอมไพล์โค้ด Rust ลงใน WebAssembly

Wasi-sysroot คือการนำไลบรารี libc มาตรฐานมาใช้สำหรับ WASIตามรหัส Musl ตลอดจนชั้นรันไทม์เพื่อแปลฟังก์ชันที่ห้องสมุดจัดเตรียมให้เป็นการเรียกระบบของระบบปฏิบัติการต่างๆเพื่อให้สามารถเรียกใช้แอปพลิเคชัน WASI บนระบบปฏิบัติการที่แตกต่างกันได้

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

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

ภารกิจหลักอย่างหนึ่งของ WebAssembly คือการตรวจสอบให้แน่ใจว่าสามารถพกพา, คาดเดาพฤติกรรมและข้อมูลประจำตัวของการเรียกใช้โค้ดบนแพลตฟอร์มต่างๆ


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา