LÀ một dự án Mozilla sử dụng WebAssembly bên ngoài trình duyệt

LÀ một dự án Mozilla sử dụng WebAssembly bên ngoài trình duyệt

Các nhà phát triển Mozilla trình bày dự án WASI (Giao diện hệ thống WebAssembly), đang nghiên cứu xác định giao diện phần mềm có thể được sử dụng để tổ chức sự tương tác của các ứng dụng được phân phối ở định dạng WebAssembly với hệ điều hành.

Mục tiêu của dự án là cung cấp một API mở rộng việc sử dụng WebAssembly và cho phép bạn tạo các chương trình dựa thường xuyên Trong công nghệ chạy bên ngoài trình duyệt nàyChúng có thể di động đến bất kỳ nền tảng nào và thể hiện mức độ bảo mật cao.

WASI là gì?

WASI cho phép môi trường WebAssembly truy cập các chức năng được cung cấp bởi hệ điều hànhchẳng hạn như tệp, hệ thống tệp, ổ cắm mạng, bộ định thời và trình tạo số ngẫu nhiên.

API WASI ban đầu được phát triển dưới dạng không có trình duyệt và độc lập từ JavaScript / API Web, nhưng đồng thời cung cấp mức độ cách ly hệ thống phù hợp main (ứng dụng chạy trong hộp cát) và cho phép bạn xác định rõ ràng quyền hạn được cấp cho ứng dụng theo kiểu CloudABI và Capsicum.

LÀ TÔI sử dụng mô hình bảo mật dựa trên quản lý quyền, trong đó một chương trình chỉ có thể cố tình thực hiện các hành động được phép.

Tương tự như cách WebAssembly giới hạn quyền truy cập ở cấp độ chức năng nhập, WASI kiểm soát quyền truy cập vào các khả năng của hệ thống.

Tệp, thư mục, ổ cắm và các tài nguyên khác được liên kết với một loại trình mô tả tệp đặc biệt (dung lượng) và ứng dụng phải có quyền để thực hiện tác vụ trên từng tài nguyên.

Quyền được quản lý phân cấp, nghĩa là quyền truy cập vào thư mục được mở tự động và truy cập vào tất cả các tệp mà nó chứa.

WebAssembly là một phiên bản hợp ngữ độc lập với nền tảng, việc sử dụng JIT có thể đạt được mức hiệu suất gần với mã gốc, đồng thời duy trì khả năng chạy trên nhiều nền tảng phần cứng và hệ điều hành khác nhau.

Hiện tại, dự án cung cấp mô-đun wasi-core với việc triển khai API POSIX cơ bản (tệp, ổ cắm, v.v.), hiện thiếu hỗ trợ cho khóa và I / O không đồng bộ.

Trong tương lai, nó được lên kế hoạch tạo các mô-đun có triển khai API để thực hiện các hoạt động mật mã, làm việc với đồ họa 3D, tương tác với các cảm biến, hoạt động với các quy trình (cuộc gọi rẽ nhánh chưa được hỗ trợ) và xử lý dữ liệu đa phương tiện.

Nguyên mẫu thành phần

Wasmtime là thời gian chạy chịu trách nhiệm thực thi các ứng dụng dựa trên WebAssembly với phần mở rộng WASI như các ứng dụng độc lập thông thường.

Se hỗ trợ khởi chạy bytecode WebAssembly với sự trợ giúp của tiện ích dòng lệnh đặc biệt và thiết kế tệp thực thi sẵn sàng để sử dụng (wasmtime được tích hợp vào ứng dụng như một thư viện).

Để đạt được mức hiệu suất thích hợp, trình biên dịch JIT dựa trên trình tạo mã độ cao được sử dụng.

Lucet là một phiên bản thời gian chạy khác của dự án Fastly (mã dự kiến ​​được xuất bản hôm nay hoặc ngày mai).

SDK WASI- Các công cụ để biên dịch các ứng dụng C / C ++ ở định dạng lắp ráp web sử dụng Clang 8.0.

Mục tiêu hợp ngữ có hỗ trợ WASI cho ngôn ngữ Rust, cho phép bạn biên dịch mã Rust thành một WebAssembly.

Wasi-sysroot là một triển khai của thư viện libc tiêu chuẩn cho WASI, dựa trên mã Musl, cũng như một lớp thời gian chạy để dịch các chức năng do thư viện cung cấp thành các lệnh gọi hệ thống của các hệ điều hành khác nhau nhằm đạt được khả năng chạy ứng dụng WASI trên các hệ điều hành khác nhau.

Dự án cũng đang phát triển thư viện JavaScript polyfill với việc triển khai WASI để chạy các ứng dụng trong trình duyệt., cho phép áp dụng mô hình kiểm soát truy cập "khả năng" cho mã được thực thi trong trình duyệt.

Trong số các kế hoạch, đề cập đến việc tạo ra hệ thống mô-đun dựa trên WASI để tích hợp vào các ứng dụng plug-in riêng biệt với chức năng bổ sung được cung cấp ở định dạng WebAssembly.

Một trong những nhiệm vụ chính của WebAssembly là đảm bảo tính di động, khả năng dự đoán của hành vi và nhận dạng của việc thực thi mã trên các nền tảng khác nhau.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.