рдХрд░реНрдиреЗрд▓ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдореЗрд▓рд┐рдЩ рд╕реВрдЪреАрдорд╛ Linux рдХрд░реНрдиреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ Wasm рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдкреНрдпрд╛рдЪрд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рднрдПрдХрд╛ рдЫрдиреНред Linux, рдЬрд╕рд▓реЗ рдХрд░реНрдиреЗрд▓рд▓рд╛рдИ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рдЗрдореБрд▓реЗрдЯрд░рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рдмрд┐рдирд╛ рдиреИ рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ WebAssembly рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдбрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдердк рд░реВрдкрдорд╛, рдХрд░реНрдиреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ Linux ╨┐╤А╨╛╨╡╨║╤В╨╛╨╝ ╤А╨╡╨░╨╗╨╕╨╖╨╛╨▓╨░╨╜╨░ ╨▓╨╛╨╖╨╝╨╛╨╢╨╜╨╛╤Б╤В╤М ╨╖╨░╨┐╤Г╤Б╨║╨░╤В╤М ╨╕╤Б╨┐╨╛╨╗╨╜╤П╨╡╨╝╤Л╨╡ ╤Д╨░╨╣╨╗╤Л ╨▓ ╤Д╨╛╤А╨╝╨░╤В╨╡ ┬л.wasm┬╗ ╨╕ ╨┐╨╛╨┤╨│╨╛╤В╨╛╨▓╨╗╨╡╨╜ ╨┤╤А╨░╨╣╨▓╨╡╤А ┬лweb console┬╗ ╨┤╨╗╤П ╤Б╨╕╨╝╤Г╨╗╤П╤Ж╨╕╨╕ ╤А╨░╨▒╨╛╤В╤Л ╤Б ╨║╨╛╨╜╤Б╨╛╨╗╤М╤О ╨▓ ╨▒╤А╨░╤Г╨╖╨╡╤А╨╡. ╨в╨░╨║╨╢╨╡ ╨┐╨╛╨┤╨│╨╛╤В╨╛╨▓╨╗╨╡╨╜ ╨╕╨╜╤Б╤В╤А╤Г╨╝╨╡╨╜╤В╨░╤А╨╕╨╣ ╨┤╨╗╤П ╤Г╨┐╤А╨╛╤Й╨╡╨╜╨╕╤П ╤Б╨▒╨╛╤А╨║╨╕ ╨╖╨░╨┐╤Г╤Б╨║╨░╨╡╨╝╤Л╤Е ╨▓ ╨▒╤А╨░╤Г╨╖╨╡╤А╨╡ ╤Б╨╕╤Б╤В╨╡╨╝╨╜╤Л╤Е ╨╛╨║╤А╤Г╨╢╨╡╨╜╨╕╨╣.
рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛, BusyBox рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реБрдЗрдЯ рд░ WebAssembly рдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ musl рдкреНрд░рдгрд╛рд▓реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпрд╕ рд╡рд╛рддрд╛рд╡рд░рдгрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди Xterm.js рд▓рд╛рдИ рдЯрд░реНрдорд┐рдирд▓ рдЗрдореБрд▓реЗрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдЖрдлреИрдВ рдХрдореНрдкрд╛рдЗрд▓ рдирдЧрд░реА рдкреЛрд░реНрдЯрдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗ рдЫреБрдЯреНрдЯреИ рдбреЗрдореЛ рд╕рд╛рдЗрдЯ рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдХреНрд░реЛрдорд┐рдпрдо-рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд░ рд╕реАрдорд┐рдд рдбрд┐рдмрдЧрд┐рдЩ рдХреНрд╖рдорддрд╛рд╣рд░реВ рднрдПрдХреЛ рдлрд╛рдпрд░рдлрдХреНрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЖрдзреБрдирд┐рдХ рдХрдореНрдкреНрдпреБрдЯрд░рд╣рд░реВрдорд╛, рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ Wasm рдХрд░реНрдиреЗрд▓ рдмрд┐рд▓реНрдб рд▓реЛрдб рдЧрд░реНрди рдПрдХ рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдХрдо рд╕рдордп рд▓рд╛рдЧреНрдЫред
рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рдЧрднрдЧ рджреБрдИ рд╡рд░реНрд╖рджреЗрдЦрд┐ рд╡рд┐рдХрд╛рд╕рдорд╛ рдЫ рд░ рд╣рд╛рд▓ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдорд╛ рдХрд░реНрдиреЗрд▓ рд▓реЛрдб рдЧрд░реНрди рд░ рдорд╛рдирдХ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдХрд╛рдо рдЕрдЭреИ рдкреВрд░рд╛ рднрдПрдХреЛ рдЫреИрди, рд░ рдкреЛрд░реНрдЯрдорд╛ рдХреЗрд╣реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд░ рд╕реАрдорд┐рддрддрд╛рд╣рд░реВ рдЫрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, vfork рд░ longjmp рдХрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдЕрдЭреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫреИрди (BusyBox рд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВ рдмрд┐рдирд╛ рдХрд╛рдо рдЧрд░реНрди рдкреНрдпрд╛рдЪ рдЧрд░рд┐рдПрдХреЛ рдЫ), рдХрд╛рд░реНрдпрд╣рд░реВ рдЕрд╡рд░реЛрдз рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдЫреИрди, MMU рдЕрдиреБрдкрд▓рдмреНрдз рдЫ (рдХрд░реНрдиреЗрд▓ рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдПрдЙрдЯреИ рдареЗрдЧрд╛рдирд╛ рдард╛рдЙрдБрдорд╛ рдЪрд▓реНрдЫрдиреН), рдкрд╣рд┐рд▓реЗ рдиреИ рд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдХреЛрдб рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдЫ, рд░ рдЯрд╛рдЗрдорд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рд▓рдЧрднрдЧ 5 рдорд┐рдиреЗрдЯ рдкрдЫрд┐ рдХрдиреНрд╕реЛрд▓ рд╕реНрдерд┐рд░ рд╣реБрдиреНрдЫред рдпреЛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ рдЕрд╡рд╕реНрдерд┐рдд рд╕реАрдорд┐рддрддрд╛рд╣рд░реВ рдкрд╛рд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реАрд▓рд╛рдИ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдорд╛ WebAssembly рдорд╛ рдердк рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред MMU рд░ рдереНрд░реЗрдб рдирд┐рд▓рдореНрдмрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред
WebAssembly рдорд╛ рдереНрд░реЗрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░реЛрдХреНрди рдЕрд╕рдорд░реНрдерддрд╛ рдХрд░реНрдиреЗрд▓рдХреЛ рдХрд╛рд░реНрдп рдЕрдиреБрд╕реВрдЪрдХрд╕рдБрдЧ рдмрд╛рдЭрд┐рди рдЬрд╛рдиреНрдЫ, рддрд░ рдорд▓реНрдЯрд┐рдЯрд╛рд╕реНрдХрд┐рдЩрд▓рд╛рдИ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб/рдХрд╛рд░реНрдпрд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рд╡реЗрдм рд╡рд░реНрдХрд░рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЖрдлреНрдиреИ рднрд░реНрдЪреБрдЕрд▓ CPU рдорд╛ рддреЛрдХреЗрд░ рд╕рдорд╛рдзрд╛рди рдорд╛рд░реНрдлрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдмреНрд░рд╛рдЙрдЬрд░рдХреЛ рдХрд░реНрдиреЗрд▓рдорд╛ рдкреНрд░рд┐рдордкреНрдЯрд┐рд╡ рдорд▓реНрдЯрд┐рдЯрд╛рд╕реНрдХрд┐рдЩ рд╡рд╛ рдХрд╛рд░реНрдп рд╕реНрд╡рд┐рдЪрд┐рдЩрдХреЛ рд╕рд╣рд╛рд░рд╛ рдмрд┐рдирд╛ рдмреНрд░рд╛рдЙрдЬрд░ рдЗрдиреНрдЬрд┐рди рд░ рд╣реЛрд╕реНрдЯ OS рдХрд░реНрдиреЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдХреНрд╖рдо рдмрдирд╛рдпреЛред рдпрд╕ рд╕реЗрдЯрдЕрдкрдорд╛ рдЕрд╡рд░реЛрдз рд░ рд╕рдВрдХреЗрддрд╣рд░реВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЫреИрдирдиреН, рд░ рдЯрд╛рдЗрдорд░ рд░ IPI (рдЗрдиреНрдЯрд░-рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрд╡рд░реЛрдз) рдЕрд╡рд░реЛрдзрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЫреБрдЯреНрдЯреИ рднрд░реНрдЪреБрдЕрд▓ CPU рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
╨Ю╨▒╨╗╨░╤Б╤В╤М ╨┐╤А╨╕╨╝╨╡╨╜╨╡╨╜╨╕╤П ╨┐╤А╨╛╨╡╨║╤В╨░ ╨▓╤Л╤Е╨╛╨┤╨╕╤В ╨╖╨░ ╤А╨░╨╝╨║╨╕ ╨┐╤А╨╛╤Б╤В╨╛╨│╨╛ ╨╖╨░╨┐╤Г╤Б╨║╨░ Linux-╨╛╨║╤А╤Г╨╢╨╡╨╜╨╕╨╣ ╨▓ ╨▒╤А╨░╤Г╨╖╨╡╤А╨░╤Е. ╨Э╨░╨┐╤А╨╕╨╝╨╡╤А, ╨┐╨╛╤А╤В ╨╝╨╛╨╢╨╡╤В ╨┐╤А╨╕╨╝╨╡╨╜╤П╤В╤М╤Б╤П ╨┤╨╗╤П ╤Б╨╛╨╖╨┤╨░╨╜╨╕╤П ╨╝╨╜╨╛╨│╨╛╨┐╨╗╨░╤В╤Д╨╛╤А╨╝╨╡╨╜╨╜╤Л╤Е WebAssembly ╨┐╤А╨╛╨│╤А╨░╨╝╨╝, ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╤О╤Й╨╕╤Е ╤Б╨┐╨╡╤Ж╨╕╤Д╨╕╤З╨╜╤Л╨╡ ╨┤╨╗╤П Linux ╤Б╨╕╤Б╤В╨╡╨╝╨╜╤Л╨╡ ╨▓╤Л╨╖╨╛╨▓╤Л. ╨а╨╡╨░╨╗╨╕╨╖╨░╤Ж╨╕╤П ╨┐╨╛╨┤╨╛╨▒╨╜╤Л╤Е ╤Б╨╕╤Б╤В╨╡╨╝╨╜╤Л╤Е ╨▓╤Л╨╖╨╛╨▓╨╛╨▓ ╨╝╨╛╨╢╨╡╤В ╨▒╤Л╤В╤М ╨╛╤В╨┤╨╡╨╗╤М╨╜╨╛ ╨┐╤А╨╡╨╛╨▒╤А╨░╨╖╨╛╨▓╨░╨╜╨░ ╨▓ WebAssembly ╨╕ ╨┐╤А╨╕╨║╤А╨╡╨┐╨╗╨╡╨╜╨░ ╨║ ╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╤О, ╤З╤В╨╛ ╨┐╨╛╨╖╨▓╨╛╨╗╨╕╤В ╨╕╤Б╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╤М ╨╡╨│╨╛ ╨▒╨╡╨╖ ╨┐╤А╨╕╨▓╤П╨╖╨║╨╕ ╨║ ╤Б╨╕╤Б╤В╨╡╨╝╨╜╨╛╨╝╤Г ╤П╨┤╤А╤Г. ╨Я╨╛╤А╤В ╤В╨░╨║╨╢╨╡ ╨▒╤Г╨┤╨╡╤В ╨┐╨╛╨╗╨╡╨╖╨╡╨╜ ╨┤╨╗╤П ╨╛╤А╨│╨░╨╜╨╕╨╖╨░╤Ж╨╕╨╕ ╨╕╨╖╨╛╨╗╨╕╤А╨╛╨▓╨░╨╜╨╜╨╛╨│╨╛ ╨▓╤Л╨┐╨╛╨╗╨╜╨╡╨╜╨╕╤П ╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╨╣ ╨┐╤А╨╕ ╨┐╨╛╨╝╨╛╤Й╨╕ WASI (WebAssembly System Interface).
рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ WebAssembly рдорд╛ рдирд┐рд░реНрдорд┐рдд рдХреЛрд░рдХреЛ рд╕рд╛рде рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рдорд░реНрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред рддрд┐рдиреАрд╣рд░реВрд▓реЗ EGL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рд░ рдмреНрд░рд╛рдЙрдЬрд░рдХреЛ WebGL API рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ OpenGL ES рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдХрд╛ рдЫрдиреНред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд▓рд╛рдЗрди-рдмрд╛рдЗ-рд▓рд╛рдЗрди рдХреЛрдб рдбрд┐рдмрдЧрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ Dwarf рдбрд┐рдмрдЧ рдврд╛рдБрдЪрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдкрдирд┐ рдмрдирд╛рдПрдХрд╛ рдЫрдиреНред
рд╕реНрд░реЛрдд: opennet.ru
