ืžื•ื–ื™ืœื” ืžืชื—ื™ืœื” ื‘ื™ื™ืฉื•ื ืฉืœ ื˜ื›ื ื•ืœื•ื’ื™ื™ืช ื‘ื™ื“ื•ื“ ืกืคืจื™ื™ืช RLBox

ื—ื•ืงืจื™ื ืžืื•ื ื™ื‘ืจืกื™ื˜ืช ืกื˜ื ืคื•ืจื“, ืžืื•ื ื™ื‘ืจืกื™ื˜ืช ืงืœื™ืคื•ืจื ื™ื” ื‘ืกืŸ ื“ื™ื™ื’ื• ื•ืžืื•ื ื™ื‘ืจืกื™ื˜ืช ื˜ืงืกืก ื‘ืื•ืกื˜ื™ืŸ ืžืคื•ืชื— ื›ืœื™ื RLBox, ืืฉืจ ื™ื›ื•ืœ ืœืฉืžืฉ ื›ืฉื›ื‘ืช ื‘ื™ื“ื•ื“ ื ื•ืกืคืช ืœื—ืกื™ืžืช ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื‘ืกืคืจื™ื•ืช ืคื•ื ืงืฆื™ื•ืช. RLBox ื ื•ืขื“ ืœืคืชื•ืจ ืืช ื‘ืขื™ื™ืช ื”ืื‘ื˜ื—ื” ืฉืœ ืกืคืจื™ื•ืช ืฆื“ ืฉืœื™ืฉื™ ืœื ืžื”ื™ืžื ื•ืช ืฉืื™ื ืŸ ื‘ืฉืœื™ื˜ืช ืžืคืชื—ื™ื, ืืš ื ืงื•ื“ื•ืช ื”ืชื•ืจืคื” ืฉืœื”ืŸ ืขืœื•ืœื•ืช ืœืกื›ืŸ ืืช ื”ืคืจื•ื™ืงื˜ ื”ืจืืฉื™.

ื—ื‘ืจืช ืžื•ื–ื™ืœื” ืžืชื›ื ื ืช ื”ืฉืชืžืฉ ื‘-RLBox ื‘-Linux build ืฉืœ Firefox 74 ื•ื‘-macOS build ืฉืœ Firefox 75 ื›ื“ื™ ืœื‘ื•ื“ื“ ืืช ื‘ื™ืฆื•ืข ื”ืกืคืจื™ื™ื” ื’ืจึธืคึดื™ื˜, ืื—ืจืื™ ืขืœ ืขื™ื‘ื•ื“ ื’ื•ืคื ื™ื. ืขื ื–ืืช, RLBox ืื™ื ื• ืกืคืฆื™ืคื™ ืœืคื™ื™ืจืคื•ืงืก ื•ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื‘ื•ื“ื“ ื›ืœ ืกืคืจื™ื™ื” ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืจื™ืจื•ืชื™ื™ื. ื”ืชืคืชื—ื•ื™ื•ืช RLBox ื”ืชืคืฉื˜ื•ืช ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT. RLBox ืชื•ืžืš ื›ืจื’ืข ื‘ืคืœื˜ืคื•ืจืžื•ืช ืœื™ื ื•ืงืก ื•-macOS, ื›ืืฉืจ ืชืžื™ื›ืช Windows ืฆืคื•ื™ื” ืžืื•ื—ืจ ื™ื•ืชืจ.

ืžื ื’ื ื•ืŸ ื”ืขื‘ื•ื“ื” ืฉืœ RLBox ืžืกืชื›ืžืช ื‘ื”ื™ื“ื•ืจ ืฉืœ ืงื•ื“ C/C++ ืฉืœ ืกืคืจื™ื™ื” ืžื‘ื•ื“ื“ืช ืœืงื•ื“ WebAssembly ื‘ืจืžื” ื ืžื•ื›ื”, ืฉืชื•ื›ื ืŸ ืœืื—ืจ ืžื›ืŸ ื›ืžื•ื“ื•ืœ WebAssembly, ืฉื”ื”ืจืฉืื•ืช ืฉืœื• ืžื•ื’ื“ืจื•ืช ืจืง ื‘ื™ื—ืก ืœืžื•ื“ื•ืœ ื–ื” (ืœื“ื•ื’ืžื”, ืกืคืจื™ื” ืœืขื™ื‘ื•ื“ ืžื—ืจื•ื–ื•ืช ืœื ื™ื•ื›ืœื• ืœืคืชื•ื— ืฉืงืข ืจืฉืช ืื• ืงื•ื‘ืฅ) . ื”ืžืจืช ืงื•ื“ C/C++ ืœ-WebAssembly ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช wasi-sdk.

ืœื‘ื™ืฆื•ืข ื™ืฉื™ืจ, ืžื•ื“ื•ืœ WebAssembly ืžื•ืจื›ื‘ ืœืงื•ื“ ืžื›ื•ื ื” ื‘ืืžืฆืขื•ืช ืžื”ื“ืจ Lucet ื•ืคื•ืขืœ ื‘"ื ื ื•-ืชื”ืœื™ืš" ื ืคืจื“ ืžื‘ื•ื“ื“ ืžืฉืืจ ื–ื™ื›ืจื•ืŸ ื”ืืคืœื™ืงืฆื™ื”. ืžื”ื“ืจ Lucet ืžื‘ื•ืกืก ืขืœ ืื•ืชื• ืงื•ื“ ื›ืžื• ืžื ื•ืข JIT ืžื ื•ืฃ ืžื ื•ืฃ, ืžืฉืžืฉ ื‘-Firefox ืœื‘ื™ืฆื•ืข WebAssembly.

ื”ืžื•ื“ื•ืœ ื”ืžื•ืจื›ื‘ ืคื•ืขืœ ื‘ืื–ื•ืจ ื–ื™ื›ืจื•ืŸ ื ืคืจื“ ื•ืื™ืŸ ืœื• ื’ื™ืฉื” ืœืฉืืจ ืžืจื—ื‘ ื”ื›ืชื•ื‘ื•ืช. ืื ืžื ื•ืฆืœืช ืคื’ื™ืขื•ืช ื‘ืกืคืจื™ื™ื”, ื”ืชื•ืงืฃ ื™ื”ื™ื” ืžื•ื’ื‘ืœ ื•ืœื ื™ื•ื›ืœ ืœื’ืฉืช ืœืื–ื•ืจื™ ื–ื™ื›ืจื•ืŸ ืฉืœ ื”ืชื”ืœื™ืš ื”ืจืืฉื™ ืื• ืœื”ืขื‘ื™ืจ ืฉืœื™ื˜ื” ืžื—ื•ืฅ ืœืกื‘ื™ื‘ื” ื”ืžื‘ื•ื“ื“ืช.

ืžื•ื–ื™ืœื” ืžืชื—ื™ืœื” ื‘ื™ื™ืฉื•ื ืฉืœ ื˜ื›ื ื•ืœื•ื’ื™ื™ืช ื‘ื™ื“ื•ื“ ืกืคืจื™ื™ืช RLBox

ืจืžื” ื‘ืจืžื” ื’ื‘ื•ื”ื” ืžืกื•ืคืงืช ืœืžืคืชื—ื™ื API, ื”ืžืืคืฉืจ ืœืš ืœื”ืชืงืฉืจ ืœืคื•ื ืงืฆื™ื•ืช ืกืคืจื™ื™ื” ื‘ืžืฆื‘ ื‘ื™ื“ื•ื“. ืžื˜ืคืœื™ WebAssembly ื›ืžืขื˜ ืฉืื™ื ื ื“ื•ืจืฉื™ื ืžืฉืื‘ื™ื ื ื•ืกืคื™ื ื•ื”ืื™ื ื˜ืจืืงืฆื™ื” ืื™ืชื ืื™ื ื” ืื™ื˜ื™ืช ื‘ื”ืจื‘ื” ืžืงืจื™ืืช ืคื•ื ืงืฆื™ื•ืช ืจื’ื™ืœื•ืช (ืคื•ื ืงืฆื™ื•ืช ื”ืกืคืจื™ื™ื” ืžื‘ื•ืฆืขื•ืช ื‘ืฆื•ืจื” ืฉืœ ืงื•ื“ ืžืงื•ืจื™, ื•ืขืœื•ื™ื•ืช ืชืงื•ืจื” ืžืชืขื•ืจืจื•ืช ืจืง ื‘ืขืช ื”ืขืชืงื” ื•ื‘ื“ื™ืงืช ื ืชื•ื ื™ื ื‘ืžื”ืœืš ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ืกื‘ื™ื‘ื” ื”ืžื‘ื•ื“ื“ืช). ืœื ื ื™ืชืŸ ืœืงืจื•ื ื™ืฉื™ืจื•ืช ืœืคื•ื ืงืฆื™ื•ืช ืกืคืจื™ื™ื” ืžื‘ื•ื“ื“ื•ืช ื•ื™ืฉ ืœื’ืฉืช ืืœื™ื”ืŸ ื‘ืืžืฆืขื•ืช
layer invoke_sandbox_function().

ื‘ืชื•ืจื•, ืื ื™ืฉ ืฆื•ืจืš ืœืงืจื•ื ืœืคื•ื ืงืฆื™ื•ืช ื—ื™ืฆื•ื ื™ื•ืช ืžื”ืกืคืจื™ื™ื”, ื™ืฉ ืœื”ื’ื“ื™ืจ ืืช ื”ืคื•ื ืงืฆื™ื•ืช ื”ืœืœื• ื‘ืžืคื•ืจืฉ ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช register_callback (ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, RLBox ืžืกืคืง ื’ื™ืฉื” ืœืคื•ื ืงืฆื™ื•ืช ืกืคืจื™ื™ื” ืจื’ื™ืœื”). ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื‘ื˜ื™ื—ื•ืช ื–ื™ื›ืจื•ืŸ, ื‘ื™ื“ื•ื“ ื‘ื™ืฆื•ืข ืงื•ื“ ืื™ื ื• ืžืกืคื™ืง ื•ื“ื•ืจืฉ ื’ื ื‘ื“ื™ืงื” ืฉืœ ื–ืจืžื™ ื”ื ืชื•ื ื™ื ื”ืžื•ื—ื–ืจื™ื.

ืขืจื›ื™ื ืฉื ื•ืฆืจื• ื‘ืกื‘ื™ื‘ื” ืžื‘ื•ื“ื“ืช ืžืกื•ืžื ื™ื ื›ืœื ืืžื™ื ื™ื ื•ืžื•ื’ื‘ืœื™ื ืœืฉื™ืžื•ืฉ ืกื™ืžื ื™ื ื ื’ื•ืขื™ื ื•ืœ"ื ื™ืงื•ื™" ื”ื ื“ื•ืจืฉื™ื ืื™ืžื•ืช ื•ื”ืขืชืงื” ืœื–ื™ื›ืจื•ืŸ ื”ืืคืœื™ืงืฆื™ื”.
ืœืœื ื ื™ืงื•ื™, ื ื™ืกื™ื•ืŸ ืœื”ืฉืชืžืฉ ื‘ื ืชื•ื ื™ื ื ื’ื•ืขื™ื ื‘ื”ืงืฉืจ ื”ื“ื•ืจืฉ ื ืชื•ื ื™ื ืจื’ื™ืœื™ื (ื•ืœื”ื™ืคืš) ืžื‘ื™ื ืœื™ืฆื™ืจืช ืฉื’ื™ืื•ืช ื‘ื–ืžืŸ ื”ื”ื™ื“ื•ืจ. ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช, ืขืจื›ื™ ื”ื—ื–ืจื” ื•ืžื‘ื ื™ื ืžื•ืขื‘ืจื™ื ื‘ืืžืฆืขื•ืช ื”ืขืชืงื” ื‘ื™ืŸ ื–ื™ื›ืจื•ืŸ ื”ืชื”ืœื™ืš ืœื–ื™ื›ืจื•ืŸ ืืจื’ื– ื—ื•ืœ. ืขื‘ื•ืจ ืžืขืจื›ื™ ื ืชื•ื ื™ื ื’ื“ื•ืœื™ื, ื–ื™ื›ืจื•ืŸ ืžื•ืงืฆื” ื‘ืกื‘ื™ื‘ื” ืžื‘ื•ื“ื“ืช ื•ืžืฆื‘ื™ืข ื™ืฉื™ืจ ืฉืœ ืืจื’ื– ื—ื•ืœ ืžื•ื—ื–ืจ ืœืชื”ืœื™ืš ื”ืจืืฉื™.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”