WASI یک پروژه موزیلا برای استفاده از WebAssemble در خارج از مرورگر است

WASI یک پروژه موزیلا برای استفاده از WebAssemble در خارج از مرورگر است

توسعه دهندگان موزیلا پروژه WASI را ارائه دادند (WebAssemble System Interface) ، که در حال کار بر روی تعریف رابط های نرم افزاری است که می تواند برای سازماندهی تعامل برنامه های ارائه شده در قالب WebAssemble با سیستم عامل استفاده شود.

هدف این پروژه تهیه یک API است که استفاده از WebAssemble را گسترش می دهد و به شما امکان می دهد برنامه ایجاد کنید مبتنی بر منظم در این فناوری که خارج از مرورگر اجرا می شودآنها برای هر سیستم عامل قابل حمل هستند و سطح بالایی از امنیت را نشان می دهند.

WASI چیست؟

WASI به محیط WebAssemble امکان دسترسی به توابع ارائه شده توسط سیستم عامل را می دهدمانند پرونده ها ، سیستم فایل ، سوکت شبکه ، تایمر و مولد اعداد تصادفی.

WASI API در ابتدا بصورت غیر مرورگر و مستقل ساخته می شود از JavaScript / Web API ، اما در همان زمان سطح مناسبی از انزوای سیستم را فراهم می کند اصلی (برنامه ها در جعبه ماسه اجرا می شوند) و به شما اجازه می دهد صراحتاً اختیارات داده شده به برنامه را به سبک CloudABI و Capsicum تعریف کنید.

آیا من بودم از یک مدل امنیتی مبتنی بر مدیریت مجوز استفاده می کند، که در آن یک برنامه فقط می تواند عمدا اقدامات مجاز را انجام دهد.

مشابه آنچه WebAssembly دسترسی را در سطح توابع واردات محدود می کند ، WASI دسترسی به قابلیت های سیستم را کنترل می کند.

پرونده ها ، دایرکتوری ها ، سوکت ها و منابع دیگر با نوع خاصی از توصیف کننده پرونده (ظرفیت) مرتبط هستند و برنامه باید مجوزهایی برای انجام عملکرد در هر یک از منابع داشته باشد.

مجوزها به صورت سلسله مراتبی مدیریت می شوند ، یعنی دسترسی به فهرست به طور خودکار باز می شود و دسترسی به تمام پرونده های موجود در آن.

از آنجا WebAssemble یک نسخه زبان مونتاژ مستقل از پلت فرم است ، استفاده از JIT می تواند به سطحی از عملکرد نزدیک به کد بومی دست یابد، ضمن حفظ قابلیت اجرا در سیستم عامل های مختلف سخت افزاری و سیستم عامل ها.

در حال حاضر این پروژه ماژول هسته هسته ای را با اجرای POSIX API پایه (پرونده ها ، سوکت ها و غیره) فراهم می کند ، که در حال حاضر فاقد پشتیبانی از قفل ها و ورودی و خروجی ناهمزمان است.

در آینده، برنامه ریزی شده است که برای اجرای عملیات رمزنگاری ، کار با گرافیک سه بعدی ، ماژول هایی با پیاده سازی API ایجاد کنید، با حسگرها ارتباط برقرار کنید ، عملیات با پردازش ها (تماس انشعاب هنوز پشتیبانی نشده است) و داده های چندرسانه ای را پردازش کنید.

نمونه های اولیه ملفه ها

Wasmtime یک زمان اجرا است که وظیفه اجرای برنامه های مبتنی بر WebAssemble را بر عهده دارد با پسوندهای WASI به عنوان برنامه های مستقل معمولی.

Se با راه اندازی برنامه ویژه خط فرمان از راه اندازی بایت کد WebAssemble پشتیبانی می کند و آماده استفاده برای طراحی فایل اجرایی (wasmtime در برنامه به عنوان کتابخانه تعبیه شده است).

برای دستیابی به سطح عملکرد مناسب ، از یک کامپایلر JIT بر اساس مولد کد ارتفاع استفاده می شود.

Lucet نسخه دیگری از زمان اجرای پروژه Fastly است (کد قرار است امروز یا فردا منتشر شود).

SDK WASI- ابزارهای کامپایل برنامه های C / C ++ در قالب مونتاژ وب با استفاده از Clang 8.0.

یک هدف مونتاژ با پشتیبانی WASI برای زبان Rust ، که به شما امکان می دهد کد Rust را در یک WebAssemble کامپایل کنید.

Wasi-sysroot پیاده سازی کتابخانه استاندارد libc برای WASI است، بر اساس کد Musl ، و همچنین یک لایه زمان اجرا برای ترجمه توابع ارائه شده توسط کتابخانه به تماس های سیستم از سیستم عامل های مختلف برای دستیابی به امکان اجرای یک برنامه WASI در سیستم عامل های مختلف.

این پروژه همچنین در حال توسعه کتابخانه جاوا اسکریپت polyfill با پیاده سازی WASI برای اجرای برنامه ها در داخل مرورگر است.، که اجازه می دهد مدل کنترل دسترسی "قابلیت ها" بر روی کد اجرا شده در مرورگر اعمال شود.

از این برنامه ها ، ایجاد یک سیستم ماژول مبتنی بر WASI برای ادغام در برنامه های پلاگین جدا شده با قابلیت های اضافی ارائه شده در قالب WebAssemble ذکر شده است.

یکی از وظایف اصلی WebAssemble ، اطمینان از قابلیت جابجایی ، قابل پیش بینی بودن رفتار و هویت اجرای کد در سیستم عامل های مختلف است.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.