WASI פרויקט של Mozilla לשימוש ב- WebAssembly מחוץ לדפדפן

WASI פרויקט של Mozilla לשימוש ב- WebAssembly מחוץ לדפדפן

מפתחי מוזילה הציגו את פרויקט WASI (WebAssembly System Interface), שעובד על הגדרת ממשקי תוכנה שניתן להשתמש בהם כדי לארגן את האינטראקציה של יישומים המועברים בפורמט WebAssembly עם מערכת ההפעלה.

מטרת הפרויקט היא לספק API שמרחיב את השימוש ב- WebAssembly ומאפשר לך ליצור תוכניות מבוסס רגיל בטכנולוגיה זו הפועלת מחוץ לדפדפןהם ניידים לכל פלטפורמה ומפגינים רמת אבטחה גבוהה.

מה זה WASI?

WASI מאפשרת לסביבת WebAssemble לגשת לפונקציות המסופקות על ידי מערכת ההפעלהכגון קבצים, מערכת קבצים, שקעי רשת, טיימרים ומחוללי מספרים אקראיים.

ממשק ה- API של WASI פותח בתחילה ככבל שאינו קשור לדפדפן ועצמאי מ- JavaScript / Web API, אך במקביל מספק רמה מספקת של בידוד מערכות main (יישומים המופעלים בארגז חול) ומאפשר לך להגדיר במפורש את הסמכות המוענקת ליישום בסגנון CloudABI ו- Capsicum.

WASI משתמש במודל אבטחה המבוסס על ניהול הרשאות, במסגרתו תוכנית יכולה לבצע רק בכוונה פעולות מורשות.

בדומה לאופן שבו WebAssembly מגביל את הגישה ברמת פונקציות הייבוא, WASI שולטת בגישה ליכולות המערכת.

קבצים, ספריות, שקעים ומשאבים אחרים משויכים לסוג מיוחד של מתאר קבצים (קיבולת), ועל היישום להיות בעל הרשאות לבצע פעולה בכל אחד מהמשאבים.

ההרשאות מנוהלות בצורה היררכית, כלומר הגישה לספריה נפתחת באופן אוטומטי והגישה לכל הקבצים שהיא מכילה.

מאז WebAssemble היא גרסת שפת הרכבה עצמאית, השימוש ב- JIT יכול להשיג רמת ביצועים קרוב לקוד מקורי, תוך שמירה על יכולת הפעלה בפלטפורמות חומרה ומערכות הפעלה שונות.

נכון לעכשיו הפרויקט מספק למודול ה- wasi-core את היישום של ה- POSIX API הבסיסי (קבצים, שקעים וכו '), אשר כיום חסר תמיכה במנעולים ובקלט / פלט אסינכרוני.

בעתיד, מתוכנן ליצור מודולים עם הטמעת API לביצוע פעולות הצפנה, עבודה עם גרפיקה תלת ממדית, אינטראקציה עם חיישנים, פעולות עם תהליכים (שיחת המזלג עדיין לא נתמכת) ועיבוד נתוני מולטימדיה.

אבות טיפוס רכיבים

Wasmtime הוא זמן ריצה שאחראי על הפעלת יישומים על בסיס WebAssembly עם הרחבות WASI כיישומים עצמאיים רגילים.

Se תומך בהשקת קוד האבטחה WebAssemble בעזרת כלי שורת פקודה מיוחד ועיצוב קבצי הפעלה מוכן לשימוש (wasmtime מובנה ביישום כספרייה).

כדי להשיג את רמת הביצועים המתאימה, משתמשים במהדר JIT המבוסס על מחולל קוד הגובה.

Lucet היא גרסת זמן ריצה נוספת לפרויקט Fastly (הקוד אמור להתפרסם היום או מחר).

WASI SDK- כלים להרכבת יישומי C / C ++ בפורמט הרכבה באינטרנט באמצעות Clang 8.0.

יעד הרכבה עם תמיכה ב- WASI בשפת Rust, המאפשר לך לקמפל קוד Rust ל- WebAssemble.

Wasi-sysroot הוא יישום של ספריית ה- libc הסטנדרטית עבור WASI, המבוסס על קוד מוסל, כמו גם שכבת זמן ריצה לתרגום הפונקציות המסופקות על ידי הספרייה לשיחות מערכת של מערכות הפעלה שונות בכדי להשיג אפשרות להפעלת יישום WASI במערכות הפעלה שונות.

הפרויקט מפתח גם את ספריית JavaScript polyfill עם יישום WASI להפעלת יישומים בדפדפן., המאפשר להחיל את מודל בקרת הגישה "יכולות" על הקוד המבוצע בדפדפן.

מהתוכניות מוזכר יצירת מערכת מודולים מבוססת WASI לשילוב ביישומי פלאגין מבודדים עם פונקציונליות נוספת הניתנת בפורמט WebAssembly.

אחת המשימות העיקריות של WebAssemble היא להבטיח ניידות, ניבוי התנהגות וזהות ביצוע קוד בפלטפורמות שונות.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם.

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.