Мозилла, Фастли, Интел и Ред Хат промовишу ВебАссембли као платформу за универзалну употребу

Мозилла, Фастли, Интел и Ред Хат уједињени своје напоре у развоју технологија које помажу да ВебАссембли постане универзална платформа за безбедно извршавање кода у било којој инфраструктури, оперативном систему или уређају. Формирана је заједница за заједнички развој рунтиме-а и компајлера који омогућавају употребу ВебАссембли-а не само у веб претраживачима Битецоде Аллианце.

Да бисте креирали преносиве програме који се испоручују у ВебАссембли формату који се могу извршавати ван претраживача, предлажемо да користите АПИ ЈЕСАМ ЛИ ЈА (ВебАссембли Систем Интерфаце), који обезбеђује софтверске интерфејсе за директну интеракцију са оперативним системом (ПОСИКС АПИ за рад са датотекама, сокетима итд.). Карактеристична карактеристика модела извршавања апликација које користе ВАСИ је то што оне раде у окружењу заштићеног окружења ради изолације од главног система и користе сигурносни механизам заснован на управљању могућностима за радње са сваким од ресурса (фајлови, директорији, утичнице, системски позиви). , итд.) апликацији се морају дати одговарајуће дозволе (обезбеђен је само приступ декларисаној функционалности).

Један од циљева Створена алијанса је решење за проблем дистрибуције модерних модуларних апликација са великим бројем зависности. У таквим апликацијама, свака зависност може бити потенцијални извор рањивости или напада. Преузимање контроле над зависношћу вам омогућава да добијете контролу над свим апликацијама које су са њом повезане. Поверење у апликацију аутоматски подразумева поверење у све зависности, али зависности често развијају и одржавају тимови трећих страна чије активности се не могу контролисати. Чланови Битецоде Аллианце-а намеравају да обезбеде холистичко решење за безбедно извршавање ВебАссембли апликација које саме по себи нису веродостојне.

За заштиту се предлаже да се користи концепт нанопроцеса, у којем је сваки модул зависности одвојен у засебно изоловани ВебАссембли модул, чија су овлашћења постављена само у односу на овај модул (на пример, библиотека за обраду стрингова неће бити у могућности да отвори мрежну утичницу или датотеку). За разлику од раздвајања процеса, ВебАссембли руковаоци су лагани и не захтевају скоро никакве додатне ресурсе – интеракција између руковалаца није много спорија од позивања обичних функција. Раздвајање се може извршити не само на нивоу појединачних модула, већ и на нивоу група модула који, на пример, треба да раде са заједничким меморијским областима

Тражена овлашћења се могу одредити како на нивоу самих зависности, тако и делегирати зависностима дуж ланца од стране родитељских модула (ресурси у ВАСИ-ју су повезани са посебном врстом дескриптора фајла - способношћу). На пример, модулу се може делегирати могућност приступа одређеном директоријуму и системским позивима, а ако је развојна инфраструктура модула угрожена или се идентификује рањивост, током напада, приступ ће бити ограничен само на ове ресурсе. Декларације ресурса од стране креатора модула могу бити индикатор сумњиве активности, на пример када модул за обраду текста захтева дозволу за отварање мрежне везе. Првобитно постављене дозволе се проверавају и ако се промене, учитавање зависности се одбија док се локални потпис модула не ажурира.

За заједнички развој под окриљем Битецоде Аллианце преведено неколико везано за ВебАссембли пројеката, које су раније посебно развиле компаније оснивачи алијансе:

  • Васмтиме — време извођења за покретање ВебАссембли апликација са ВАСИ екстензијама као обичних самосталних апликација. Подржава и покретање ВебАссембли бајткода помоћу посебног услужног програма командне линије и повезивање готових извршних датотека (васмтиме је уграђен у апликацију као библиотека). Васмтиме има флексибилну модуларну структуру која вам омогућава да скалирате време извођења за различите апликације, на пример, можете креирати смањену верзију за уређаје са ограниченим ресурсима;
  • Луцет — компајлер и време извођења за извршавање програма у ВебАссембли формату. Дистинцтиве одлика Луцет је употреба пуноправне антиципативне компилације (АОТ, унапред) уместо ЈИТ-а у машински код погодан за директно извршавање. Пројекат је развио Фастли и оптимизован је да троши минималне ресурсе и веома брзо покреће нове инстанце (Фастли користи Луцет у машини за рачунарство на ивици облака која користи ВебАссембли за руковаоце покренуте на сваки захтев). Као део заједничког пројекта, планира се конвертовање Луцет компајлера да користи Васмтиме као базу;
  • Вамр (ВебАссембли Мицро Рунтиме) је још једно време извођења за извршавање ВебАссембли-а, које је првобитно развио Интел за употребу у уређајима Интернета ствари. ВАМР је оптимизован за минималну потрошњу ресурса и може се користити на уређајима са малом количином РАМ-а. Пројекат укључује тумач и виртуелну машину за извршавање бајткода ВебАссембли-а, АПИ (подскуп Либц-а) и алате за динамичко управљање апликацијама;
  • Дизалица — генератор кода који преводи међурепрезентацију независно од хардверске архитектуре у извршни машински код оптимизован за специфичне хардверске платформе. Цранелифт подржава паралелизацију компилације функција за веома брзо генерисање резултата, што омогућава да се користи за креирање ЈИТ компајлера (ЈИТ заснован на Цранелифт-у се користи у Васмтиме виртуелној машини);
  • ВАСИ цоммон — одвојена имплементација ВАСИ (ВебАссембли Систем Интерфаце) АПИ-ја за организовање интеракције са оперативним системом;
  • царго-васи — модул за менаџер пакета Царго који имплементира команду за компајлирање Руст кода у ВебАссембли бајт код користећи ВАСИ интерфејс за коришћење ВебАссембли-а ван претраживача;
  • ват и васмпарсер — парсери за рашчлањивање текста (ВАТ, ВАСТ) и бинарне репрезентације бајткода ВебАссембли.

Да резимирамо, ВебАссембли је много сличан Асм.јс, али другачије у томе што је то бинарни формат који није везан за ЈаваСцрипт и омогућава да се средњи код ниског нивоа компајлиран из различитих програмских језика извршава у претраживачу. ВебАссембли не захтева сакупљач смећа јер користи експлицитно управљање меморијом. Коришћењем ЈИТ-а за ВебАссембли, можете постићи нивое перформанси блиске изворном коду. Међу главним циљевима ВебАссембли-а је осигурање преносивости, предвидљивог понашања и идентичног извршавања кода на различитим платформама.

Извор: опеннет.ру

Додај коментар