WASI merupakan proyek Mozilla untuk menggunakan WebAssembly di luar browser

WASI merupakan proyek Mozilla untuk menggunakan WebAssembly di luar browser

Pengembang Mozilla mempresentasikan proyek WASI (WebAssembly System Interface), yang bekerja untuk mendefinisikan antarmuka perangkat lunak yang dapat digunakan untuk mengatur interaksi aplikasi yang disampaikan dalam format WebAssembly dengan sistem operasi.

Tujuan dari proyek ini adalah untuk menyediakan API yang memperluas penggunaan WebAssembly dan memungkinkan Anda membuat program berbasis biasa Dalam teknologi ini yang berjalan di luar browserMereka portabel untuk platform apa pun dan menunjukkan tingkat keamanan yang tinggi.

Apakah WASI itu?

WASI memungkinkan lingkungan WebAssembly untuk mengakses fungsi yang disediakan oleh sistem operasiseperti file, sistem file, soket jaringan, timer, dan generator angka acak.

WASI API pada awalnya dikembangkan sebagai non-browser terikat dan berdiri sendiri dari JavaScript / Web API, tapi pada saat yang sama memberikan tingkat isolasi sistem yang memadai main (aplikasi berjalan di kotak pasir) dan memungkinkan Anda untuk secara eksplisit menentukan otoritas yang diberikan ke aplikasi dalam gaya CloudABI dan Capsicum.

WSASI menggunakan model keamanan berdasarkan manajemen izin, di mana program hanya dapat dengan sengaja melakukan tindakan resmi.

Mirip dengan bagaimana WebAssembly membatasi akses pada tingkat fungsi impor, WASI mengontrol akses ke kemampuan sistem.

File, direktori, soket, dan sumber daya lainnya terkait dengan tipe khusus dari deskriptor file (kapasitas), dan aplikasi harus memiliki izin untuk melakukan tindakan pada setiap sumber daya.

Izin dikelola secara hierarki, yaitu, akses ke direktori secara otomatis dibuka dan akses ke semua file di dalamnya.

Sejak WebAssembly adalah versi bahasa assembly platform-independen, penggunaan JIT dapat mencapai tingkat kinerja yang mendekati kode asli, sekaligus mempertahankan kemampuan untuk berjalan di berbagai platform perangkat keras dan sistem operasi.

Saat ini proyek menyediakan modul wasi-core dengan implementasi API POSIX dasar (file, soket, dll.), Yang saat ini tidak memiliki dukungan untuk kunci dan I / O asinkron.

Di masa depan, itu direncanakan untuk membuat modul dengan implementasi API untuk melakukan operasi kriptografi, bekerja dengan grafik 3D, berinteraksi dengan sensor, mengoperasikan proses (panggilan fork belum didukung) dan memproses data multimedia.

Prototipe komponen

Wasmtime adalah runtime yang bertanggung jawab untuk menjalankan aplikasi berdasarkan WebAssembly dengan ekstensi WASI sebagai aplikasi mandiri biasa.

Se mendukung peluncuran bytecode WebAssembly dengan bantuan utilitas baris perintah khusus dan desain file siap pakai yang dapat dieksekusi (wasmtime dibangun ke dalam aplikasi sebagai pustaka).

Untuk mencapai tingkat kinerja yang sesuai, kompiler JIT berdasarkan generator kode elevasi digunakan.

Lucet adalah versi runtime lain dari proyek Fastly (kode dijadwalkan untuk diterbitkan hari ini atau besok).

SDK WASI- Alat untuk mengompilasi aplikasi C / C ++ dalam format perakitan web menggunakan Clang 8.0.

Target perakitan dengan dukungan WASI untuk bahasa Rust, yang memungkinkan Anda untuk mengompilasi kode Rust ke dalam WebAssembly.

Wasi-sysroot adalah implementasi pustaka libc standar untuk WASI, berdasarkan kode Musl, serta lapisan runtime untuk menerjemahkan fungsi yang disediakan oleh perpustakaan menjadi panggilan sistem dari berbagai sistem operasi untuk mencapai kemungkinan menjalankan aplikasi WASI pada sistem operasi yang berbeda.

Proyek ini juga mengembangkan pustaka JavaScript polyfill dengan implementasi WASI untuk menjalankan aplikasi dalam browser., yang memungkinkan untuk menerapkan model kontrol akses "kapabilitas" ke kode yang dijalankan di browser.

Dari rencana tersebut, disebutkan tentang pembuatan sistem modul berbasis WASI untuk integrasi ke dalam aplikasi plug-in yang terisolasi dengan fungsionalitas tambahan yang disediakan dalam format WebAssembly.

Salah satu tugas utama WebAssembly adalah memastikan portabilitas, prediktabilitas perilaku, dan identitas eksekusi kode pada platform yang berbeda.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.