Mozilla, Fastly, Intel සහ Red Hat විශ්වීය භාවිතය සඳහා වේදිකාවක් ලෙස WebAssembly ප්‍රවර්ධනය කරයි

Mozilla, Fastly, Intel සහ Red Hat එක්සත් ඕනෑම යටිතල ව්‍යුහයක්, මෙහෙයුම් පද්ධතියක් හෝ උපාංගයක් හරහා ආරක්ෂිත කේත ක්‍රියාත්මක කිරීම සඳහා WebAssembly විශ්වීය වේදිකාවක් බවට පත් කිරීමට උපකාරී වන තාක්‍ෂණයන් සංවර්ධනය කිරීමේ එහි උත්සාහයන්. වෙබ් බ්‍රව්සර්වල පමණක් නොව WebAssembly භාවිතයට ඉඩ සලසන ධාවන කාලය සහ සම්පාදකයන්ගේ ඒකාබද්ධ සංවර්ධනය සඳහා ප්‍රජාවක් පිහිටුවා ඇත. බයිට්කේත සන්ධානය.

බ්‍රවුසරයෙන් පිටත ක්‍රියාත්මක කළ හැකි WebAssembly ආකෘතියෙන් ගෙන යා හැකි වැඩසටහන් නිර්මාණය කිරීමට, අපි API භාවිතා කිරීමට යෝජනා කරමු මම එහෙමද (WebAssembly පද්ධති අතුරුමුහුණත), මෙහෙයුම් පද්ධතිය සමඟ සෘජු අන්තර්ක්‍රියා සඳහා මෘදුකාංග අතුරුමුහුණත් සපයයි (ගොනු, සොකට් ආදිය සමඟ වැඩ කිරීම සඳහා POSIX API). WASI භාවිතා කරන යෙදුම් ක්‍රියාත්මක කිරීමේ ආකෘතියේ සුවිශේෂී ලක්ෂණය නම්, ඒවා ප්‍රධාන පද්ධතියෙන් හුදකලා වීම සඳහා වැලි පෙට්ටි පරිසරයක ධාවනය වන අතර එක් එක් සම්පත් (ගොනු, නාමාවලි, සොකට්, පද්ධති ඇමතුම් සමඟ ක්‍රියා කිරීම සඳහා හැකියාවන් කළමනාකරණය මත පදනම් වූ ආරක්ෂක යාන්ත්‍රණයක් භාවිතා කිරීමයි. , ආදිය) යෙදුමට සුදුසු අවසර ලබා දිය යුතුය (ප්‍රකාශිත ක්‍රියාකාරීත්වයට ප්‍රවේශය පමණක් සපයනු ලැබේ).

එකක් ඉලක්ක නිර්මාණය කරන ලද සන්ධානය රඳාපවතින විශාල සංඛ්යාවක් සහිත නවීන මොඩියුලර් යෙදුම් බෙදා හැරීමේ ගැටලුවට විසඳුමකි. එවැනි යෙදුම් වලදී, සෑම යැපීමක්ම අවදානම් හෝ ප්‍රහාරවල විභව මූලාශ්‍රයක් විය හැක. යැපීම පාලනය කිරීම ඔබට ඒ හා සම්බන්ධ සියලුම යෙදුම් පාලනය කිරීමට ඉඩ සලසයි. යෙදුම කෙරෙහි ඇති විශ්වාසය ස්වයංක්‍රීයව සියලු පරායත්තතා කෙරෙහි විශ්වාසය අදහස් කරයි, නමුත් යැපීම් බොහෝ විට ක්‍රියාකාරකම් පාලනය කළ නොහැකි තෙවන පාර්ශවීය කණ්ඩායම් විසින් සංවර්ධනය කර පවත්වාගෙන යනු ලැබේ. Bytecode Alliance සාමාජිකයින් සහජයෙන්ම විශ්වාසදායක නොවන WebAssembly යෙදුම් ආරක්ෂිතව ක්‍රියාත්මක කිරීම සඳහා පරිපූර්ණ විසඳුමක් සැපයීමට අදහස් කරයි.

ආරක්ෂාව සඳහා, නැනෝ ක්‍රියාවලි සංකල්පය භාවිතා කිරීමට යෝජිත අතර, එක් එක් පරායත්ත මොඩියුලය වෙන වෙනම හුදකලා වූ WebAssembly මොඩියුලයකට වෙන් කර ඇති අතර, ඒවායේ බලතල මෙම මොඩියුලයට පමණක් අදාළව සකසා ඇත (උදාහරණයක් ලෙස, නූල් සැකසීම සඳහා පුස්තකාලයක් එසේ නොවේ. ජාල සොකට් එකක් හෝ ගොනුවක් විවෘත කිරීමට හැකි වේ). ක්‍රියාවලි වෙන් කිරීම මෙන් නොව, WebAssembly හසුරුවන්නන් සැහැල්ලු වන අතර අමතර සම්පත් අවශ්‍ය නොවේ - හසුරුවන්නන් අතර අන්තර්ක්‍රියා සාමාන්‍ය කාර්යයන් ඇමතීමට වඩා මන්දගාමී නොවේ. වෙන් කිරීම තනි මොඩියුල මට්ටමින් පමණක් නොව, උදාහරණයක් ලෙස පොදු මතක ප්‍රදේශ සමඟ වැඩ කිරීමට අවශ්‍ය මොඩියුල කණ්ඩායම් මට්ටමින් ද සිදු කළ හැකිය.

ඉල්ලා සිටින බලතල පරායත්ත මට්ටමින් තීරණය කළ හැකි අතර මාපිය මොඩියුල මගින් දාමය දිගේ පරායත්තතා වෙත පැවරිය හැක (WASI හි සම්පත් විශේෂ ආකාරයේ ගොනු විස්තරයක් සමඟ සම්බන්ධ වේ - හැකියාව). උදාහරණයක් ලෙස, විශේෂිත නාමාවලියකට සහ පද්ධති ඇමතුම් වෙත ප්‍රවේශ වීමේ හැකියාව මොඩියුලයකට පැවරිය හැකි අතර, මොඩියුලයේ සංවර්ධන යටිතල පහසුකම් අවදානමට ලක්වුවහොත් හෝ අවදානමක් හඳුනාගෙන තිබේ නම්, ප්‍රහාරයකදී, ප්‍රවේශය මෙම සම්පත් වලට පමණක් සීමා වේ. මොඩියුල නිර්මාපකයන්ගේ සම්පත් ප්‍රකාශයන් සැක කටයුතු ක්‍රියාකාරකම්වල දර්ශකයක් විය හැක, එනම් පෙළ සැකසුම් මොඩියුලයක් ජාල සම්බන්ධතාවයක් විවෘත කිරීමට අවසර ඉල්ලා සිටින විට. මුලින් සකසන ලද අවසර පරීක්ෂා කරනු ලබන අතර ඒවා වෙනස් වුවහොත්, දේශීය මොඩියුල අත්සන යාවත්කාලීන වන තෙක් පරායත්ත පැටවීම ප්‍රතික්ෂේප කරනු ලැබේ.

බයිට්කෝඩ් සන්ධානයේ අංශය යටතේ ඒකාබද්ධ සංවර්ධනය සඳහා පරිවර්තනය කර ඇත WebAssembly හා සම්බන්ධ කිහිපයක් ව්යාපෘති, සන්ධානයේ ආරම්භක සමාගම් විසින් කලින් වෙන් වෙන් වශයෙන් සංවර්ධනය කරන ලදී:

  • වැසි වේලාව — WASI දිගු සමඟ WebAssembly යෙදුම් සාමාන්‍ය තනි යෙදුම් ලෙස ධාවනය කිරීම සඳහා ධාවන කාලය. එය විශේෂ විධාන රේඛා උපයෝගීතාවයක් භාවිතයෙන් WebAssembly bytecode දියත් කිරීම සහ සූදානම් කළ ක්‍රියාත්මක කළ හැකි ගොනු සම්බන්ධ කිරීම යන දෙකටම සහය දක්වයි (wasmtime යෙදුම තුළ පුස්තකාලයක් ලෙස ගොඩනගා ඇත). Wasmtime සතුව නම්‍යශීලී මොඩියුලර් ව්‍යුහයක් ඇති අතර එමඟින් විවිධ යෙදුම් සඳහා ධාවන කාලය පරිමාණය කිරීමට ඔබට ඉඩ සලසයි, උදාහරණයක් ලෙස, ඔබට සීමිත සම්පත් සහිත උපාංග සඳහා ඉරි තැළුණු අනුවාදයක් සෑදිය හැකිය;
  • එය බැබළෙයි - WebAssembly ආකෘතියෙන් වැඩසටහන් ක්‍රියාත්මක කිරීම සඳහා සම්පාදක සහ ධාවන කාලය. සුවිශේෂී ලක්ෂණය Lucet යනු සෘජුව ක්‍රියාත්මක කිරීම සඳහා සුදුසු යන්ත්‍ර කේතයක් තුළට JIT වෙනුවට පූර්ණ-පූර්‍ණ අපේක්ෂිත සම්පාදනය (AOT, ඉදිරි කාලය) භාවිතා කිරීමයි. ව්‍යාපෘතිය Fastly විසින් සංවර්ධනය කරන ලද අතර අවම සම්පත් පරිභෝජනය කිරීමට සහ නව අවස්ථා ඉතා ඉක්මනින් දියත් කිරීමට ප්‍රශස්ත කර ඇත (Fastly එක් එක් ඉල්ලීම මත දියත් කරන ලද හසුරුවන්නන් සඳහා WebAssembly භාවිතා කරන ක්ලවුඩ් එජ් පරිගණක එන්ජිමක Lucet භාවිතා කරයි). ඒකාබද්ධ ව්‍යාපෘතියේ කොටසක් ලෙස, Lucet සම්පාදකය Wasmtime පදනමක් ලෙස භාවිතා කිරීමට පරිවර්තනය කිරීමට සැලසුම් කර ඇත;
  • WAM (WebAssembly Micro Runtime) යනු WebAssembly ක්‍රියාත්මක කිරීම සඳහා වන තවත් ධාවන කාලයකි, මුලින් Intel විසින් Internet of Things උපාංගවල භාවිතය සඳහා වැඩි දියුණු කරන ලදී. WAMR අවම සම්පත් පරිභෝජනය සඳහා ප්‍රශස්ත කර ඇති අතර කුඩා RAM ප්‍රමාණයක් සහිත උපාංගවල භාවිතා කළ හැක. ව්‍යාපෘතියට WebAssembly bytecode ක්‍රියාත්මක කිරීම සඳහා පරිවර්තකයක් සහ අතථ්‍ය යන්ත්‍රයක්, API (Libc හි උප කුලකයක්) සහ ගතික යෙදුම් කළමනාකරණය සඳහා මෙවලම් ඇතුළත් වේ;
  • ක්‍රැනේලිෆ්ට් — දෘඪාංග ගෘහනිර්මාණයෙන් ස්වායත්ත වූ අතරමැදි නිරූපණයක් නිශ්චිත දෘඪාංග වේදිකා සඳහා ප්‍රශස්ත ලෙස ක්‍රියාත්මක කළ හැකි යන්ත්‍ර කේතයක් බවට පරිවර්තනය කරන කේත උත්පාදක යන්ත්‍රයකි. Cranelift ඉතා වේගවත් ප්‍රතිඵල උත්පාදනය සඳහා ශ්‍රිත සම්පාදනය සමාන්තරකරණයට සහය දක්වයි, එය JIT සම්පාදක සෑදීමට භාවිතා කිරීමට ඉඩ සලසයි (Cranelift මත පදනම් වූ JIT Wasmtime අථත්‍ය යන්ත්‍රයේ භාවිතා වේ);
  • WASI පොදු - මෙහෙයුම් පද්ධතිය සමඟ අන්තර්ක්‍රියා සංවිධානය කිරීම සඳහා WASI (WebAssembly පද්ධති අතුරුමුහුණත) API වෙනම ක්‍රියාත්මක කිරීම;
  • බඩු-වැසි - බ්‍රවුසරයෙන් පිටත WebAssembly භාවිතා කිරීම සඳහා WASI අතුරුමුහුණත භාවිතා කරමින් රස්ට් කේතය WebAssembly බයිට්කේතයට සම්පාදනය කිරීම සඳහා විධානයක් ක්‍රියාත්මක කරන Cargo පැකේජ කළමනාකරු සඳහා මොඩියුලයක්;
  • වැට් и Wasmparser — පෙළ විග්‍රහ කිරීම සඳහා විග්‍රහ කරන්නන් (WAT, WAST) සහ WebAssembly බයිට්කේතයේ ද්විමය නිරූපණයන්.

නැවත සලකා බැලීම සඳහා, WebAssembly බොහෝ දුරට Asm.js වැනිය, නමුත් වෙනස් එය ජාවාස්ක්‍රිප්ට් සමඟ බැඳී නැති ද්විමය ආකෘතියක් වන අතර විවිධ ක්‍රමලේඛන භාෂාවලින් සම්පාදනය කරන ලද පහළ මට්ටමේ අතරමැදි කේතය බ්‍රවුසරයේ ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. WebAssembly එය පැහැදිලි මතක කළමනාකරණය භාවිතා කරන නිසා කුණු එකතු කරන්නෙකු අවශ්ය නොවේ. WebAssembly සඳහා JIT භාවිතා කිරීමෙන්, ඔබට ස්වදේශීය කේතයට ආසන්න කාර්ය සාධන මට්ටම් ලබා ගත හැක. WebAssembly හි ප්‍රධාන අරමුණු අතර අතේ ගෙන යා හැකි බව, පුරෝකථනය කළ හැකි හැසිරීම් සහ විවිධ වේදිකාවල සමාන කේත ක්‍රියාත්මක කිරීම සහතික කිරීමයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න