WASI isang proyekto sa Mozilla na gumamit ng WebAss Assembly sa labas ng browser

WASI isang proyekto sa Mozilla na gumamit ng WebAss Assembly sa labas ng browser

Ipinakita ng mga developer ng Mozilla ang proyekto ng WASI (WebAss Assembly System Interface), na kung saan ay gumagana sa pagtukoy ng mga interface ng software na maaaring magamit upang ayusin ang pakikipag-ugnayan ng mga application na naihatid sa format na WebAss Assembly kasama ang operating system.

Ang layunin ng proyekto ay upang magbigay ng isang API na nagpapalawak sa paggamit ng WebAss Assembly at pinapayagan kang lumikha ng mga programa regular na nakabatay Sa teknolohiyang ito na tumatakbo sa labas ng browserAng mga ito ay portable sa anumang platform at nagpapakita ng isang mataas na antas ng seguridad.

Ano ang WASI?

Pinapayagan ng WASI ang kapaligiran ng WebAss Assembly na ma-access ang mga pagpapaandar na ibinigay ng operating systemtulad ng mga file, system ng file, mga socket ng network, timer, at mga generator ng random na numero.

Ang WASI API ay paunang binuo bilang non-browser bound at standalone mula sa JavaScript / Web API, ngunit sa parehong oras ay nagbibigay ng isang sapat na antas ng paghihiwalay ng system pangunahing (tumatakbo ang mga application sa isang sandbox) at pinapayagan kang malinaw na tukuyin ang awtoridad na ipinagkaloob sa application sa istilo ng CloudABI at Capsicum.

WASI gumagamit ng isang modelo ng seguridad batay sa pamamahala ng pahintulot, sa loob ng kung saan ang isang programa ay maaaring sadyang magsagawa ng mga awtorisadong pagkilos.

Katulad ng kung paano nililimitahan ng WebAss Assembly ang pag-access sa antas ng mga pagpapaandar na pag-import, kinokontrol ng WASI ang pag-access sa mga kakayahan ng system.

Ang mga file, direktoryo, socket, at iba pang mga mapagkukunan ay nauugnay sa isang espesyal na uri ng tagapaglarawan ng file (kapasidad), at ang aplikasyon ay dapat magkaroon ng mga pahintulot upang magsagawa ng isang aksyon sa bawat isa sa mga mapagkukunan.

Ang mga pahintulot ay pinamamahalaan nang hierarchically, iyon ay, ang pag-access sa direktoryo ay awtomatikong binubuksan at pag-access sa lahat ng mga file na naglalaman nito.

Mula noon Ang WebAss Assembly ay isang bersyon na independiyenteng bersyon ng wika ng pagpupulong, ang paggamit ng JIT ay maaaring makamit ang isang antas ng pagganap na malapit sa katutubong code, habang pinapanatili ang kakayahang tumakbo sa iba't ibang mga platform ng hardware at operating system.

Kasalukuyan ang proyekto ay nagbibigay ng wasi-core module na may pagpapatupad ng pangunahing POSIX API (mga file, sockets, atbp.), Na kasalukuyang kulang sa suporta para sa mga kandado at asynchronous na I / O.

Sa hinaharap, planong lumikha ng mga modyul na may pagpapatupad ng API upang maisagawa ang mga pagpapatakbo ng cryptographic, gumana sa mga 3D graphics, makipag-ugnay sa mga sensor, pagpapatakbo sa mga proseso (hindi pa sinusuportahan ang fork call) at iproseso ang data ng multimedia.

Mga prototype ng bahagi

Ang Wasmtime ay isang runtime na responsable para sa pagpapatakbo ng mga application batay sa WebAss Assembly na may mga extension ng WASI bilang ordinaryong mga standalone na application.

Se Sinusuportahan ang paglulunsad ng WebAss Assembly bytecode sa tulong ng isang espesyal na utility ng command line at pagdidisenyo ng mga naisasagawa na maipapatupad na mga file (ang wasmtime ay binuo sa application bilang isang library).

Upang makamit ang naaangkop na antas ng pagganap, ginagamit ang isang JIT compiler batay sa generator ng elevation code.

Ang Lucet ay isa pang bersyon ng runtime ng Mabilis na proyekto (ang code ay naka-iskedyul na mai-publish ngayon o bukas).

WASI SDK- Mga tool para sa pag-iipon ng mga aplikasyon ng C / C ++ sa format ng pagpupulong sa web gamit ang Clang 8.0.

Isang target sa pagpupulong na may suporta sa WASI para sa wikang Rust, na nagbibigay-daan sa iyo upang ipagsama ang Rust code sa isang WebAss Assembly.

Ang Wasi-sysroot ay isang pagpapatupad ng karaniwang libc library para sa WASI, batay sa Musl code, pati na rin ang isang runtime layer upang isalin ang mga pagpapaandar na ibinigay ng library sa mga tawag sa system ng iba't ibang mga operating system upang makamit ang posibilidad ng pagpapatakbo ng isang application na WASI sa iba't ibang mga operating system.

Bumubuo rin ang proyekto ng polyfill JavaScript library na may pagpapatupad ng WASI upang magpatakbo ng mga application sa loob ng browser., na nagbibigay-daan upang mailapat ang "mga kakayahan" na modelo ng kontrol sa pag-access sa code na naisakatuparan sa browser.

Sa mga plano, nabanggit ang paggawa ng isang sistema ng module na nakabatay sa WASI para sa pagsasama sa mga nakahiwalay na mga application ng plug-in na may karagdagang pag-andar na ibinigay sa format na WebAss Assembly.

Ang isa sa mga pangunahing gawain ng WebAss Assembly ay upang matiyak ang kakayahang dalhin, mahuhulaan ng pag-uugali at pagkakakilanlan ng pagpapatupad ng code sa iba't ibang mga platform.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.