Mozilla akan menggunakan WASI untuk semua perangkat, komputer, dan sistem operasi

Halo semuanya! Connected TestMace dan kami terus memperkenalkan Anda dengan berita terpanas dari dunia JavaScript. Langkah selanjutnya adalah terjemahan artikel tentang WASI, teknologi yang memungkinkan WebAssembly untuk digunakan di luar browser


Satu format untuk mengatur semua



Mozilla memperkenalkan proyek yang disebut WASI (WebAssembly System Interface) minggu ini untuk membakukan bagaimana kode WebAssembly berinteraksi dengan sistem operasi. Jika proyek berhasil, ia akan melakukan fungsi yang sama dengan mesin virtual Oracle Java, tetapi jauh lebih efisien dan dengan fungsionalitas yang canggih.


WebAssembly (WASM) adalah format instruksi biner untuk mesin virtual yang dapat berjalan di berbagai arsitektur perangkat keras. Kode yang ditulis dalam banyak bahasa seperti C / C ++, Go, Rust dapat dikompilasi menjadi kode WASM.


Banyak browser web telah memperkenalkan dukungan untuk WebAssembly, tetapi sampai saat ini tidak ada standar untuk bekerja dengannya di luar browser. Dan sekarang ada WASI.
β€œPerlu ada cara agar kode berinteraksi dengan sistem di luar browser, yaitu antarmuka sistem,” kata pengembang Mozilla, Lin Clark dalam posting blog Mozilla Hacks ini. "Platform WebAssembly belum memiliki metode seperti itu."


WASM + WASI


Menggunakan WASI, kode WASM dapat dijalankan di browser atau lingkungan lain yang kompatibel, yang menyediakan pengembangan lintas-platform bahasa-independen. Sementara antarmuka sistem operasi portabel (POSIX) bertujuan untuk memastikan portabilitas kode sumber program antara sistem operasi mirip UNIX, WASI dirancang untuk mendukung kompatibilitas file biner yang dikompilasi pada perangkat dan sistem operasi yang berbeda. Standar menyediakan runtime universal, yang kecepatannya mendekati asli.


Java Virtual Machine (JVM) melakukan hal yang sama, tetapi sebuah plugin diperlukan untuk menjalankan kode Java di browser. Meskipun fleksibilitas bahasa, seperti platform WebAssembly yang diusulkan, dapat dicapai di Jawa menggunakan GraalVM , ekosistem Jawa masih berada di latar belakang karena peristiwa yang terkait dengan klaim Oracle tentang pelanggaran kekayaan intelektual mereka.


Format WASM, menyediakan akses yang aman ke memori dan validasi yang mudah digunakan, memiliki keunggulan dibandingkan applet Java dalam hal keamanan, meskipun dapat diserang untuk mengubah aliran kontrol awal program . Ini juga rukun dengan C / C ++ dan Rust.


Pemimpin tim WebAssembly Mozilla, Till Schneider, menjelaskan perbedaan antara WebAssembly dan Java di Twitter sebagai berikut: "WebAssembly dirancang untuk menskalakan dari perangkat miniatur ke grup server besar atau CDN. Formatnya jauh lebih mandiri bahasa daripada Jawa, dan implementasi jauh lebih sedikit sumber daya intensif. "


Jika potensi keuntungan WASI belum jelas bagi Anda, inilah yang dikatakan oleh salah satu pencipta Docker Solomon Hykes tentangnya: "Jika WASM + WASI ada pada 2008, tidak akan terpikir oleh kami untuk membuat Docker. Server-side WebAssembly adalah masa depan untuk itu Komputasi. Kami tidak memiliki antarmuka sistem standar. Saya harap WASI menyelesaikan masalah ini! "


Pada gelombang optimisme ini, Fastly pada hari Kamis merilis Lucet , kompiler asli dan lingkungan untuk mengeksekusi kode WASM WebAssembly di lingkungan cloud. Ini melengkapi Mozilla Wasmtime, lingkungan runtime kode WASM di luar browser.


Tentu saja, WASI masih jauh dari ideal. WebAssembly juga akan lebih baik untuk lebih menyempurnakan, misalnya, menambahkan kemampuan untuk mengakses DOM browser . Meskipun para pengembang telah melakukan pekerjaan yang sangat baik dengan menyediakan format biner tunggal platform-independen. Sementara itu, saya berharap Anda mendapatkan pengalaman sukses dengan Java.

Source: https://habr.com/ru/post/id449554/


All Articles