ブラウザの外部でWebAssemblyを使用するMozillaプロジェクトをWASI

ブラウザの外部でWebAssemblyを使用するMozillaプロジェクトをWASI

Mozilla開発者はWASIプロジェクトを発表しました (WebAssemblyシステムインターフェイス)。これは、WebAssembly形式で提供されるアプリケーションとオペレーティングシステムとの相互作用を整理するために使用できるソフトウェアインターフェイスの定義に取り組んでいます。

プロジェクトの目標は、WebAssemblyの使用を拡張し、プログラムの作成を可能にするAPIを提供することです。 レギュラーベース ブラウザの外部で実行されるこのテクノロジーではこれらはどのプラットフォームにも移植可能であり、高レベルのセキュリティを示します。

WASIとは何ですか?

WASIにより、WebAssembly環境はオペレーティングシステムによって提供される機能にアクセスできます。ファイル、ファイルシステム、ネットワークソケット、タイマー、ランダム番号ジェネレーターなど。

WASI APIは当初、ブラウザにバインドされていないスタンドアロンとして開発されました JavaScript / Web APIからですが、 同時に、適切なレベルのシステム分離を提供します main(アプリケーションはサンドボックスで実行されます)であり、CloudABIおよびCapsicumのスタイルでアプリケーションに付与される権限を明示的に定義できます。

ワシ 権限管理に基づくセキュリティモデルを使用します、その中で、プログラムは意図的に許可されたアクションのみを実行できます。

WebAssemblyがインポート機能のレベルでアクセスを制限する方法と同様に、WASIはシステム機能へのアクセスを制御します。

ファイル、ディレクトリ、ソケット、およびその他のリソースは、特別なタイプのファイル記述子(容量)に関連付けられており、アプリケーションには、各リソースに対してアクションを実行するためのアクセス許可が必要です。

アクセス許可は階層的に管理されます。つまり、ディレクトリへのアクセスが自動的に開かれ、ディレクトリに含まれるすべてのファイルにアクセスできます。

ことを考えると WebAssemblyはプラットフォームに依存しないアセンブリ言語バージョンであり、JITを使用すると、ネイティブコードに近いレベルのパフォーマンスを実現できます。、さまざまなハードウェアプラットフォームおよびオペレーティングシステムで実行する機能を維持しながら。

現在、このプロジェクトは、基本的なPOSIX API(ファイル、ソケットなど)の実装をwasi-coreモジュールに提供していますが、現在、ロックと非同期I / Oはサポートされていません。

将来は、 暗号化操作を実行し、3Dグラフィックスを操作するために、API実装を使用してモジュールを作成することが計画されています。、センサーとの対話、プロセスとの操作(フォークコールはまだサポートされていません)、およびマルチメディアデータの処理。

コンポーネントのプロトタイプ

Wasmtimeは、WebAssemblyに基づくアプリケーションの実行を担当するランタイムです。 通常のスタンドアロンアプリケーションとしてWASI拡張機能を使用します。

Se 特別なコマンドラインユーティリティの助けを借りてWebAssemblyバイトコードの起動をサポートします すぐに使用できる実行可能ファイルの設計(wasmtimeはライブラリとしてアプリケーションに組み込まれています)。

適切なレベルのパフォーマンスを実現するために、昇格コードジェネレータに基づくJITコンパイラが使用されます。

LucetはFastlyプロジェクトの別のランタイムバージョンです (コードは本日または明日公開される予定です)。

WASISDK-Clang8.0を使用してC / C ++アプリケーションをWebアセンブリ形式でコンパイルするためのツール。

RustコードをWebAssemblyにコンパイルできるRust言語のWASIサポートを備えたアセンブリターゲット。

Wasi-sysrootは、WASIの標準libcライブラリの実装です。、Muslコードに基づいており、ライブラリによって提供される関数をさまざまなオペレーティングシステムのシステム呼び出しに変換して、さまざまなオペレーティングシステムでWASIアプリケーションを実行できるようにするランタイムレイヤーもあります。

このプロジェクトでは、ブラウザ内でアプリケーションを実行するためのWASI実装を備えたポリフィルJavaScriptライブラリも開発しています。、これにより、「機能」アクセス制御モデルをブラウザで実行されるコードに適用できます。

計画の中で、WebAssembly形式で提供される追加機能を備えた分離プラグインアプリケーションに統合するためのWASIベースのモジュールシステムの作成について言及されています。

WebAssemblyの主なタスクのXNUMXつは、移植性、動作の予測可能性、およびさまざまなプラットフォームでのコード実行のIDを確保することです。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。