Qemu.js JIT แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—: แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ˜แƒœแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒ— แƒคแƒแƒ แƒจแƒ˜ แƒฃแƒ™แƒแƒœ

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒšแƒ˜แƒก แƒฌแƒ˜แƒœ Fabrice Bellard แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ jslinux-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜ JavaScript-แƒจแƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜. แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒฃแƒš แƒชแƒแƒขแƒ แƒ›แƒ”แƒขแƒ˜ แƒ˜แƒงแƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ x86. แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒแƒช แƒ›แƒ” แƒ•แƒ˜แƒชแƒ˜, แƒ˜แƒงแƒ แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜, แƒฎแƒแƒšแƒ Qemu, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒแƒ“แƒ แƒ” แƒ˜แƒ›แƒแƒ•แƒ” Fabrice Bellard-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ“แƒ, แƒแƒšแƒ‘แƒแƒ—, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ—แƒแƒ•แƒ›แƒแƒงแƒ•แƒแƒ แƒ” แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜, แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก JIT-แƒก แƒกแƒขแƒฃแƒ›แƒ แƒ˜แƒก แƒ™แƒแƒ“แƒก แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜. แƒ›แƒ”แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ, แƒ แƒแƒ› แƒ“แƒ แƒ แƒ˜แƒงแƒ แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒกแƒแƒช แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ”แƒ‘แƒ˜ แƒฌแƒงแƒ•แƒ”แƒขแƒ”แƒœ: แƒ›แƒแƒœแƒฅแƒแƒœแƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก JIT แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ JavaScript-แƒจแƒ˜, แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒฉแƒแƒœแƒ“แƒ Qemu-แƒก แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก Qemu, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ - แƒ˜แƒ’แƒ˜แƒ•แƒ” VirtualBox, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ - แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› Qemu-แƒก แƒแƒฅแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ

  • แƒกแƒแƒฏแƒแƒ แƒ แƒฌแƒงแƒแƒ แƒ
  • แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒฃแƒœแƒแƒ แƒ˜
  • แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒœแƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒฃแƒœแƒแƒ แƒ˜
  • แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒกแƒขแƒฃแƒ›แƒแƒ แƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒžแƒฃแƒœแƒฅแƒขแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒแƒฎแƒšแƒ แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ•แƒฎแƒกแƒœแƒ, แƒ แƒแƒ› แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“, TCI แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜, แƒ˜แƒœแƒขแƒ”แƒ แƒžแƒ แƒ”แƒขแƒแƒชแƒ˜แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ แƒ—แƒแƒ•แƒแƒ“ แƒกแƒขแƒฃแƒ›แƒ แƒ˜แƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ”, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ›แƒแƒ—แƒ’แƒแƒœ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒชแƒ•แƒšแƒ˜แƒก แƒแƒ แƒกแƒก - แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—. Qemu แƒแƒฎแƒแƒš แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ–แƒ”, แƒ—แƒฃ แƒ’แƒแƒ’แƒ˜แƒ›แƒแƒ แƒ—แƒšแƒแƒ—, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ C แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒ”แƒ แƒ˜ - แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒ˜แƒ“แƒแƒก.

แƒแƒฎแƒšแƒ แƒ™แƒ˜, แƒฉแƒ”แƒ›แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒš แƒ“แƒ แƒแƒก Qemu-แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒแƒ แƒฌแƒšแƒ˜แƒแƒœแƒ˜ แƒ“แƒแƒฃแƒฆแƒแƒšแƒแƒ•แƒ˜ แƒฉแƒฎแƒฃแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒฃแƒจแƒ•แƒแƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Kolibri OS.

แƒ แƒ แƒแƒ แƒ˜แƒก Emscripten

แƒ“แƒฆแƒ”แƒกแƒ“แƒฆแƒ”แƒแƒ‘แƒ˜แƒ— แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒ JavaScript. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Type Script, แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ’แƒแƒœแƒ–แƒ แƒแƒฎแƒฃแƒšแƒ˜ แƒ˜แƒงแƒ, แƒ แƒแƒ› แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฌแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, Emscripten แƒแƒ แƒ˜แƒก แƒ’แƒ–แƒ, แƒ แƒแƒ› แƒแƒ˜แƒฆแƒแƒ— แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ C แƒแƒœ C++ แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒจแƒ”แƒแƒ“แƒ’แƒ˜แƒœแƒแƒ— แƒ˜แƒ’แƒ˜ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒ— แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“ แƒคแƒแƒ แƒ›แƒแƒจแƒ˜. แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ”แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ— แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒžแƒแƒ แƒขแƒ˜: แƒแƒฅแƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ— PyPy - แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒœ, แƒ แƒแƒ› แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒ— JIT. แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ แƒ“แƒ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ - แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒแƒ›แƒ”แƒ แƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ”แƒ’แƒฃแƒแƒ—, แƒ—แƒฃแƒ›แƒชแƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒ›แƒแƒ•แƒ” แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒฌแƒ”แƒ แƒ˜แƒ โ€žEmscripten แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒžแƒแƒ แƒขแƒแƒขแƒฃแƒšแƒ˜ C/C++ แƒ™แƒแƒ“แƒ˜ JavaScript-แƒจแƒ˜". แƒแƒœแƒฃ, แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ’แƒแƒœแƒฃแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒšแƒ˜ แƒฅแƒชแƒ”แƒ•แƒแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก x86-แƒ–แƒ” - แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ–แƒ” แƒฃแƒกแƒฌแƒแƒ แƒ›แƒแƒกแƒฌแƒแƒ แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒแƒ™แƒ แƒซแƒแƒšแƒฃแƒšแƒ˜แƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ–แƒ”. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“. , Qemu แƒแƒ แƒ˜แƒก แƒ™แƒ แƒแƒก-แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ“แƒ, แƒ›แƒ” แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ›แƒฏแƒ”แƒ แƒแƒ“แƒ”แƒก, แƒ“แƒ แƒ˜แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒ  แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ‘แƒ”แƒ•แƒ  แƒ’แƒแƒœแƒฃแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒš แƒฅแƒชแƒ”แƒ•แƒแƒก - แƒแƒ˜แƒฆแƒ”แƒ— แƒ“แƒ แƒจแƒ”แƒแƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒชแƒแƒขแƒแƒ—แƒ˜ แƒจแƒ”แƒแƒ”แƒ แƒ—แƒ”แƒ— JIT - แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒแƒกแƒ แƒฃแƒšแƒ”แƒ—! แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒฅแƒ›แƒ”...

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒกแƒชแƒแƒ“แƒ”แƒ—

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ›แƒ” แƒแƒ  แƒ•แƒแƒ  แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜, แƒ•แƒ˜แƒœแƒช แƒ’แƒแƒ›แƒแƒ˜แƒ’แƒแƒœแƒ Qemu-แƒก JavaScript-แƒจแƒ˜ แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒ. ReactOS แƒคแƒแƒ แƒฃแƒ›แƒ–แƒ” แƒ“แƒแƒ˜แƒกแƒ•แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ—แƒฃ แƒแƒ แƒ แƒ”แƒก Emscripten-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ“แƒ แƒ”แƒช แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ แƒญแƒแƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ› Fabrice Bellard-แƒ›แƒ แƒ”แƒก แƒžแƒ˜แƒ แƒแƒ“แƒแƒ“ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ“แƒ˜แƒ— jslinux-แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒแƒช แƒ•แƒ˜แƒชแƒ˜, แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ JS-แƒจแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ แƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒ แƒœแƒฃแƒšแƒ˜แƒ“แƒแƒœ. แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒ Virtual x86 - แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ“แƒ แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ แƒ˜ แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜ แƒ“แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒ—แƒฅแƒ•แƒ, แƒ”แƒ›แƒฃแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ›แƒ โ€žแƒ แƒ”แƒแƒšแƒ˜แƒ–แƒ›แƒโ€œ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒแƒฎแƒแƒ“แƒ SeaBIOS-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช firmware. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ˜แƒงแƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒ”แƒ แƒ—แƒ˜ แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ Qemu-แƒก แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ Emscripten-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— - แƒ›แƒ” แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒ” แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒฌแƒงแƒ•แƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒแƒช แƒ›แƒ” แƒ›แƒ”แƒกแƒ›แƒ˜แƒก, แƒ’แƒแƒงแƒ˜แƒœแƒฃแƒšแƒ˜ แƒ˜แƒงแƒ.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒแƒฅ แƒแƒ แƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜, แƒแƒฅ แƒแƒ แƒ˜แƒก Emscripten - แƒแƒ˜แƒฆแƒ”แƒ— แƒ“แƒ แƒจแƒ”แƒแƒ“แƒ’แƒ˜แƒœแƒ”แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ™แƒ”แƒ›แƒฃแƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ”แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ.แƒจ., แƒ“แƒ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜แƒ libffi, แƒ แƒแƒ›แƒ”แƒš แƒ’แƒšแƒ˜แƒ‘แƒ–แƒ”แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ แƒญแƒแƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ“ แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒแƒจแƒ˜ Emscripten-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒซแƒœแƒ”แƒšแƒ˜ แƒ“แƒแƒกแƒแƒฏแƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ: แƒฏแƒ”แƒ  แƒ”แƒ แƒ—แƒ˜, แƒ˜แƒก แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒ˜แƒ–แƒœแƒฃแƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜, แƒ›แƒ”แƒแƒ แƒ”แƒช, แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒ˜แƒงแƒ. แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ˜แƒฆแƒ แƒ“แƒ แƒจแƒ”แƒแƒ“แƒ’แƒ˜แƒœแƒแƒก JS-แƒจแƒ˜. แƒ“แƒ แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒฉแƒแƒœแƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜ - แƒแƒšแƒ‘แƒแƒ—, แƒ—แƒฃ แƒ›แƒแƒก แƒ’แƒแƒ“แƒแƒฃแƒฎแƒ•แƒ”แƒ•แƒ—, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒ•แƒ”แƒœแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒกแƒขแƒ”แƒ™แƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ›แƒแƒ— แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› Emscripten แƒแƒ แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒคแƒแƒ—แƒ แƒ แƒแƒ›: แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก JS แƒซแƒ แƒแƒ•แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒœแƒแƒชแƒœแƒแƒ‘แƒ˜ แƒ˜แƒงแƒแƒก, แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฎแƒ แƒ˜แƒ™แƒ˜. แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒ”แƒ’แƒ แƒ”แƒ— แƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ relooping - แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒš LLVM IR-แƒก, แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒขแƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ—, แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ“แƒแƒ›แƒแƒฏแƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ if-แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ.แƒจ. แƒแƒ‘แƒ, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก? แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช JS แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒแƒœแƒฃ, แƒ—แƒฃ แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒแƒ แƒ แƒกแƒขแƒ”แƒ™แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—.

แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ˜แƒงแƒ แƒ˜แƒ“แƒ”แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒ›แƒ”แƒฌแƒ”แƒ แƒ libffi-แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ JS-แƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒ›แƒ”แƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒœแƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ‘แƒแƒšแƒแƒก แƒ“แƒแƒ‘แƒœแƒ”แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ•แƒ˜, แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ›แƒ”แƒฅแƒ›แƒœแƒ แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒœแƒ”แƒœ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒ“แƒ—แƒแƒœ - แƒ แƒ แƒ•แƒฅแƒœแƒ? แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒ‘แƒแƒ‘แƒ”แƒœ, "แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒกแƒ” แƒ แƒ—แƒฃแƒšแƒ˜แƒ "แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ” แƒกแƒฃแƒšแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ•แƒแƒ แƒ—?" แƒ›แƒ” แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ libffi-แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ–แƒ” แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ, แƒแƒกแƒ” แƒ•แƒ—แƒฅแƒ•แƒแƒ— - แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, Emscripten-แƒก แƒแƒฅแƒ•แƒก แƒแƒ แƒ˜แƒ•แƒ” แƒ›แƒแƒ™แƒ แƒ inline แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒฏแƒแƒ•แƒแƒกแƒ™แƒ แƒ˜แƒžแƒขแƒจแƒ˜, แƒ“แƒ˜แƒแƒฎ - แƒ™แƒแƒ แƒ’แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒช แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ, แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ แƒ˜) แƒ“แƒ แƒคแƒ แƒ”แƒœแƒ˜แƒก แƒ“แƒ แƒแƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ” แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒš libffi แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒจแƒ”แƒฎแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ” แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜ แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒขแƒ”แƒกแƒขแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ›แƒฎแƒ•แƒ“แƒ. แƒฉแƒ”แƒ›แƒ“แƒ แƒ’แƒแƒกแƒแƒ™แƒ•แƒ˜แƒ แƒแƒ“, แƒขแƒ”แƒกแƒขแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ. แƒฉแƒ”แƒ›แƒ˜ แƒ’แƒ”แƒœแƒ˜แƒแƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒ— แƒ’แƒแƒแƒ’แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ - แƒฎแƒฃแƒ›แƒ แƒแƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜แƒ•แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ - แƒ›แƒ”, แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ  แƒ“แƒแƒ•แƒฃแƒฏแƒ”แƒ แƒ” แƒ—แƒ•แƒแƒšแƒ”แƒ‘แƒก, แƒฌแƒแƒ•แƒ”แƒ“แƒ˜ แƒ˜แƒกแƒ”แƒ• แƒ“แƒแƒ›แƒ”แƒœแƒแƒฎแƒ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ—แƒ แƒจแƒ”แƒ›แƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ˜แƒœแƒ, แƒกแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒแƒ›แƒแƒ—แƒฎแƒแƒ แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜. แƒแƒ˜, แƒ›แƒ”แƒแƒ แƒ”แƒ“ แƒ’แƒแƒ•แƒ’แƒ˜แƒŸแƒ“แƒ˜ - แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜, แƒ แƒแƒช แƒฉแƒ”แƒ›แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘, แƒ˜แƒงแƒ ffi_call - แƒ˜แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜. แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒ–แƒแƒ แƒ˜ แƒแƒ  แƒงแƒแƒคแƒ˜แƒšแƒ. แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒ” แƒ’แƒแƒ•แƒ’แƒ–แƒแƒ•แƒœแƒ” แƒฉแƒ”แƒ›แƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒ’แƒแƒ›แƒแƒแƒกแƒฌแƒแƒ แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒขแƒ”แƒกแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒœแƒแƒ—แƒ”แƒšแƒ˜แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒแƒšแƒ˜แƒ›แƒžแƒ˜แƒแƒ“แƒ˜แƒก แƒ›แƒแƒกแƒฌแƒแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒแƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ. a == b แƒ“แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒแƒ’แƒแƒ  a - b < EPS - แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ˜แƒ›แƒแƒฎแƒกแƒแƒ•แƒ แƒแƒ—, แƒ—แƒแƒ แƒ”แƒ› 0 แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒขแƒแƒšแƒ˜ 1/3-แƒ˜แƒก... แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, libffi-แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒขแƒ˜ แƒ›แƒแƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒก แƒ’แƒแƒ“แƒ˜แƒก แƒ“แƒ แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช glib แƒแƒ แƒ˜แƒก. แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ - แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”, แƒ แƒแƒ› แƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ, แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘. แƒฌแƒ˜แƒœ แƒ แƒแƒ› แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘, แƒ•แƒ˜แƒขแƒงแƒ•แƒ˜, แƒ แƒแƒ›, แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒฅแƒœแƒ, แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ›แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ™แƒแƒ“แƒจแƒ˜ libffi แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒช แƒ™แƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒขแƒแƒœแƒ.

แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒ•แƒ—แƒฅแƒ•แƒ˜, แƒแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒแƒœแƒฃแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒšแƒ˜ แƒฅแƒชแƒ”แƒ•แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒš แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒจแƒแƒ แƒ˜แƒก, แƒฃแƒคแƒ แƒ แƒฃแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ“แƒแƒ˜แƒ›แƒแƒšแƒ - แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— JavaScript แƒแƒ  แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒฎแƒแƒ แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒซแƒแƒšแƒ˜แƒแƒœแƒแƒ‘แƒแƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒแƒ›แƒแƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒฌแƒแƒ“แƒแƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒ˜แƒ“แƒ”แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒขแƒแƒœแƒแƒ“, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ แƒ›แƒ˜แƒ‘แƒ›แƒฃแƒšแƒ˜แƒ C แƒซแƒแƒคแƒ”แƒ‘แƒ—แƒแƒœ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, Firefox แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒ›แƒฃแƒจแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒแƒ–แƒ” แƒ“แƒ Emscripten-แƒก แƒแƒฅแƒ•แƒก แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒ—แƒ แƒ”แƒ“แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒแƒ  แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ. แƒœแƒ”แƒš-แƒœแƒ”แƒšแƒ แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ›แƒฃแƒšแƒขแƒ˜แƒ แƒ”แƒ“แƒ˜แƒœแƒ’แƒ˜แƒก แƒแƒ›แƒแƒซแƒ˜แƒ แƒ™แƒ•แƒ Qemu แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ - แƒแƒœแƒฃ แƒ’แƒแƒ›แƒ”แƒ’แƒ แƒกแƒแƒ“ แƒ’แƒแƒ“แƒ˜แƒก แƒซแƒแƒคแƒ”แƒ‘แƒ˜, แƒแƒ› แƒซแƒแƒคแƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ˜แƒก แƒกแƒฎแƒ”แƒฃแƒšแƒ˜ แƒชแƒแƒšแƒ™แƒ” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ”แƒขแƒแƒœแƒ แƒ“แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒแƒ—แƒ˜แƒ—แƒแƒแƒ“ แƒ’แƒแƒ›แƒแƒ›แƒ”แƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒœแƒ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒชแƒ˜แƒ™แƒšแƒ˜แƒ“แƒแƒœ.

แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ

แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ, แƒ แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ˜แƒฅ แƒ˜แƒงแƒ แƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ แƒจแƒ”แƒ›แƒ แƒงแƒแƒ•แƒแƒ แƒฏแƒœแƒ”แƒ‘แƒ˜แƒก แƒฃแƒแƒ–แƒ แƒ แƒขแƒ แƒ˜แƒแƒšแƒ˜ แƒแƒ แƒแƒœแƒแƒ˜แƒ  แƒ™แƒแƒ แƒ’แƒก แƒแƒ  แƒ›แƒแƒฐแƒงแƒ•แƒ”แƒ‘แƒแƒ“แƒ. แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ: แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ แƒแƒ’แƒแƒ แƒ›แƒ” แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ›แƒแƒ•แƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— แƒฎแƒ”แƒšแƒฏแƒแƒฎแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒแƒ˜แƒฆแƒ”แƒก 2.4.1 แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ› แƒ“แƒ แƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒงแƒ (แƒแƒ แƒ 2.5.0, แƒ แƒแƒ“แƒ’แƒแƒœ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ˜แƒชแƒ˜แƒ—, แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒแƒฎแƒแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ›แƒ” แƒ›แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜) แƒ“แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜, แƒ แƒแƒช แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”, แƒ˜แƒงแƒ แƒ›แƒ˜แƒกแƒ˜ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ thread-posix.c. แƒ˜แƒกแƒ”, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒกแƒ”แƒ—แƒ˜แƒ•แƒ” แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ: แƒ—แƒฃ แƒ•แƒ˜แƒœแƒ›แƒ” แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ’แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒ แƒ”แƒ‘แƒแƒ›แƒ“แƒ”, แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒแƒ“แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ abort() - แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ›แƒแƒœ แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒแƒ  แƒ’แƒแƒ“แƒแƒญแƒ แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒฃแƒคแƒ แƒ แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒ˜แƒงแƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒแƒ แƒแƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒจแƒ•แƒ˜แƒ“แƒแƒ“ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ.

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, Emscripten-แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ JS-แƒจแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒขแƒแƒœแƒแƒ“ -s ASSERTIONS=1 -s SAFE_HEAP=1 - แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒญแƒ”แƒ แƒ”แƒœ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒ’แƒแƒœแƒฃแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒš แƒฅแƒชแƒ”แƒ•แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜ แƒ’แƒแƒฃแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ”แƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ–แƒ” (แƒ แƒแƒช แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒšแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ HEAP32[addr >> 2] = 1) แƒแƒœ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ—.

แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ’แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒชแƒแƒšแƒ™แƒ” แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒ•แƒ—แƒฅแƒ•แƒ˜, Qemu-แƒก แƒแƒฅแƒ•แƒก โ€žแƒ“แƒ”แƒ’แƒ”แƒœแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜โ€œ แƒ˜แƒœแƒขแƒ”แƒ แƒžแƒ แƒ”แƒขแƒแƒชแƒ˜แƒ˜แƒก แƒฃแƒ™แƒแƒœแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก TCI-แƒกแƒ—แƒ•แƒ˜แƒก (แƒžแƒแƒขแƒแƒ แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒžแƒ แƒ”แƒขแƒแƒขแƒแƒ แƒ˜) แƒ“แƒ Qemu-แƒก แƒแƒฎแƒแƒš แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ–แƒ” แƒแƒกแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ’แƒแƒ’แƒ˜แƒ›แƒแƒ แƒ—แƒšแƒแƒ—, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ C แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒ”แƒ แƒ˜. แƒกแƒแƒ™แƒ•แƒแƒœแƒซแƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜. "แƒ—แƒฃ แƒ’แƒแƒ’แƒ˜แƒ›แƒแƒ แƒ—แƒšแƒ". แƒ›แƒ” แƒแƒ  แƒ’แƒแƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒšแƒ แƒ“แƒ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› TCI แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒฃแƒกแƒฌแƒแƒ แƒ›แƒแƒกแƒฌแƒแƒ แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก แƒ›แƒ˜แƒกแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒกแƒแƒก. แƒแƒœแƒฃ, แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฎแƒ˜แƒก ARM-แƒ–แƒ” แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ–แƒ”, แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒš แƒ“แƒแƒœแƒ”แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ—, Qemu แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒ— แƒแƒฅแƒ•แƒ— แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ TCG backend, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒ™แƒแƒ“แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒ—แƒ–แƒ” TCI, แƒกแƒฎแƒ•แƒ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒ. แƒ—แƒฃแƒ›แƒชแƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ, TCI-แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒ˜แƒงแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ™แƒแƒ“แƒก แƒ“แƒแƒ”แƒ›แƒแƒขแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ–แƒแƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒฃแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ”แƒก Qemu-แƒก แƒกแƒฎแƒ•แƒ แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜.

แƒ’แƒ แƒแƒ•แƒ˜แƒก แƒ’แƒแƒœแƒแƒ“แƒ’แƒฃแƒ แƒ”แƒ‘แƒ

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, TCI-แƒ–แƒ” แƒฃแƒกแƒฌแƒแƒ แƒ›แƒแƒกแƒฌแƒแƒ แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ, แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ• แƒฃแƒฌแƒแƒ“แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜, RCU แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒฌแƒ•แƒ แƒ˜แƒšแƒ›แƒแƒœแƒ”แƒ‘แƒ˜. แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒ” แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜ Qemu แƒแƒคแƒชแƒ˜แƒ˜แƒ— -d exec,in_asm,out_asm, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ—แƒฅแƒ•แƒแƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜ แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒ แƒ แƒ˜แƒงแƒ แƒกแƒขแƒฃแƒ›แƒ แƒ˜แƒก แƒ™แƒแƒ“แƒ˜, แƒ แƒ แƒ’แƒแƒฎแƒ“แƒ แƒฐแƒแƒกแƒขแƒ˜แƒก แƒ™แƒแƒ“แƒ˜ (แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜แƒ™แƒแƒ“แƒ˜). แƒ˜แƒก แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก, แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒก, แƒฌแƒ”แƒ แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ•แƒขแƒแƒ•แƒ”, แƒ แƒแƒ› RCU แƒแƒฎแƒšแƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ“แƒ... แƒแƒ•แƒแƒ แƒ˜แƒ abort() แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— free(). แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒ— free() แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ—, แƒ แƒแƒ› แƒ’แƒ แƒแƒ•แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒ”แƒ•แƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒ แƒ•แƒ แƒ‘แƒแƒ˜แƒขแƒจแƒ˜, แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒแƒœ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ˜แƒงแƒ แƒœแƒแƒ’แƒแƒ•แƒ˜.

แƒ’แƒ แƒแƒ•แƒ˜แƒก แƒ’แƒแƒœแƒแƒ“แƒ’แƒฃแƒ แƒ”แƒ‘แƒ - แƒ แƒ แƒกแƒแƒงแƒ•แƒแƒ แƒ”แƒšแƒ˜แƒ... แƒแƒกแƒ”แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒฌแƒแƒ›แƒแƒšแƒ˜ - (แƒ—แƒฃ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ) แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒแƒ™แƒ แƒ˜แƒคแƒ”แƒ— แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ‘แƒ˜แƒœแƒแƒ แƒ˜ แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ•แƒแƒšแƒ’แƒ แƒ˜แƒœแƒ“แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ. แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ‘แƒ˜แƒœแƒแƒ แƒ˜ แƒ›แƒ–แƒแƒ“ แƒ˜แƒงแƒ. แƒ›แƒ” แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒแƒคแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ— - แƒ˜แƒก แƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒกแƒแƒช แƒ™แƒ˜, แƒกแƒแƒœแƒแƒ› แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ›แƒ˜แƒแƒฆแƒฌแƒ”แƒ•แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก. แƒฃแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒแƒ, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ - แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒงแƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ”, แƒ แƒแƒช แƒ’แƒแƒกแƒแƒ™แƒ•แƒ˜แƒ แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒ› แƒแƒ“แƒœแƒแƒ• แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒแƒ•แƒšแƒ˜แƒœแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒ›แƒแƒฅแƒ•แƒก Valgrind - แƒฏแƒ”แƒ  แƒ’แƒแƒ›แƒแƒ•แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘ แƒแƒ› แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฃ แƒ’แƒแƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒšแƒ , แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒ˜. แƒ›แƒ” แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒก แƒ•แƒแƒขแƒแƒ แƒ”แƒ‘ Valgrind-แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜... Y-y-y, y-y-y, Uh-uh, แƒ“แƒแƒ˜แƒฌแƒงแƒ, แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ˜แƒแƒ แƒ แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒ–แƒ” แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ› แƒแƒฆแƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ•แƒ—แƒฅแƒ•แƒแƒ— แƒ“แƒแƒชแƒ”แƒ›แƒแƒ–แƒ”. แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒ›, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒ‘แƒแƒ‘แƒ”แƒœ, แƒแƒ  แƒ›แƒแƒ›แƒ˜แƒ›แƒ–แƒแƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒ™แƒ แƒแƒฎแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒ™แƒ แƒแƒฎแƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ Walgrind-แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ. แƒ แƒ แƒ˜แƒงแƒ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ. แƒฉแƒ”แƒ›แƒ˜ แƒฐแƒ˜แƒžแƒแƒ—แƒ”แƒ–แƒ แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒกแƒ˜แƒแƒฎแƒšแƒแƒ•แƒ”แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒก แƒแƒ•แƒแƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, gdb แƒแƒฉแƒ•แƒ”แƒœแƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ memset-a แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ˜ แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒ˜แƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ”แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— mmx, แƒแƒœ xmm แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒแƒšแƒ‘แƒแƒ— แƒ”แƒก แƒ˜แƒงแƒ แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ แƒ’แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒ—แƒฃแƒ›แƒชแƒ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒซแƒœแƒ”แƒšแƒ˜ แƒ“แƒแƒกแƒแƒฏแƒ”แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ.

แƒ™แƒแƒ แƒ’แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ•แƒแƒšแƒ’แƒ แƒ˜แƒœแƒ“แƒ˜ แƒแƒฅ แƒแƒ  แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ. แƒ“แƒ แƒแƒฅ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒ›แƒแƒ–แƒ แƒ–แƒ”แƒœแƒ˜ แƒ แƒแƒ› - แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ—แƒ˜แƒ—แƒฅแƒแƒก แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ•แƒแƒ แƒ˜แƒ แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒ˜แƒ› แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒแƒ“แƒ แƒ›แƒแƒ›แƒฎแƒ“แƒแƒ แƒ˜แƒงแƒ แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒ— แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒฌแƒ˜แƒœ. แƒ™แƒแƒ แƒ’แƒ แƒฎแƒแƒœแƒก แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒแƒฎแƒšแƒแƒ”แƒ‘แƒแƒ“แƒ. แƒ‘แƒแƒšแƒแƒก แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ“แƒแƒฏแƒ“แƒแƒ›แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ. แƒ“แƒแƒ‘แƒ”แƒญแƒ“แƒ•แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜ แƒ˜แƒงแƒ แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒแƒฉแƒ•แƒ”แƒœแƒ, แƒ แƒแƒ› แƒ˜แƒก แƒแƒ  แƒฐแƒ’แƒแƒ•แƒก แƒ แƒ˜แƒชแƒฎแƒ•แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ แƒแƒฆแƒแƒช แƒแƒ แƒแƒ‘แƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒก. แƒ“แƒ แƒแƒ˜, แƒ”แƒก แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ แƒœแƒแƒžแƒแƒ•แƒœแƒ˜ แƒ˜แƒฅแƒœแƒ BIOS แƒคแƒแƒ˜แƒšแƒจแƒ˜ - แƒแƒœแƒฃ, แƒแƒฎแƒšแƒ แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ’แƒแƒœแƒ˜แƒ•แƒ แƒฃแƒšแƒ˜ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒ—แƒฅแƒ•แƒ, แƒ แƒแƒ› แƒ”แƒก แƒ˜แƒงแƒ แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒชแƒฎแƒแƒ“แƒ˜แƒ, แƒ แƒแƒ› แƒ˜แƒก แƒแƒ› แƒ‘แƒฃแƒคแƒ”แƒ แƒ–แƒ” แƒ˜แƒงแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜. แƒ™แƒแƒ แƒ’แƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ› - Emscripten-แƒจแƒ˜, แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒ แƒแƒœแƒ“แƒแƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ›แƒแƒกแƒจแƒ˜ แƒแƒ แƒช แƒฎแƒ•แƒ แƒ”แƒšแƒ”แƒ‘แƒ˜แƒ, แƒแƒกแƒ” แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒกแƒแƒ“แƒฆแƒแƒช แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒฃแƒแƒจแƒ˜, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒ™แƒฃแƒ แƒกแƒแƒ แƒ–แƒ” แƒ‘แƒแƒšแƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ. แƒจแƒ”แƒฎแƒ”แƒ“แƒ”แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒจแƒ”แƒฎแƒ”แƒ“แƒ”แƒ— แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒก แƒ“แƒ, แƒ—แƒฃ แƒ˜แƒก แƒแƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ, แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒกแƒแƒคแƒ˜แƒฅแƒ แƒแƒšแƒ˜. แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ‘แƒ›แƒฃแƒšแƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒฃแƒ—แƒ˜ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ—? แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒœแƒแƒžแƒแƒ•แƒœแƒ˜ แƒ˜แƒฅแƒœแƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒฎแƒแƒ–แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ“แƒ BIOS-แƒก แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒกแƒขแƒฃแƒ›แƒ แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜ - แƒ“แƒ, แƒ›แƒแƒ แƒ—แƒšแƒแƒช, แƒ‘แƒฃแƒคแƒ”แƒ แƒจแƒ˜ แƒแƒ  แƒ˜แƒงแƒ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜. แƒแƒ› แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒ‘แƒฃแƒคแƒ”แƒ แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒžแƒแƒ•แƒœแƒแƒ› แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ qemu_anon_ram_alloc แƒคแƒแƒ˜แƒšแƒจแƒ˜ oslib-posix.c - แƒšแƒแƒ’แƒ˜แƒ™แƒ แƒ˜แƒงแƒ แƒแƒกแƒ”แƒ—แƒ˜: แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒ’แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ 2 แƒ›แƒ‘ แƒ–แƒแƒ›แƒ˜แƒก แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ  แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”, แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒ— mmap แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒชแƒแƒขแƒ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒก แƒ“แƒแƒ•แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ— แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— munmap. แƒ“แƒ แƒ—แƒฃ แƒแƒกแƒ”แƒ—แƒ˜ แƒ’แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ— แƒจแƒ”แƒ“แƒ”แƒ’แƒก 2 แƒ›แƒ‘-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ getpagesize() - mmap แƒ˜แƒก แƒ›แƒแƒ˜แƒœแƒช แƒ’แƒแƒ›แƒแƒกแƒชแƒ”แƒ›แƒก แƒ’แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก... แƒแƒกแƒ” แƒ แƒแƒ› Emscripten-แƒจแƒ˜ mmap แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ แƒ”แƒ™แƒแƒ•แƒก malloc, แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ˜แƒก แƒแƒ  แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ”. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ›แƒ”แƒ“แƒ’แƒแƒชแƒ แƒฃแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ•แƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— ะดะฒัƒั… แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜.

แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜

แƒแƒฎแƒšแƒ แƒ™แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜ แƒ แƒแƒฆแƒแƒชแƒแƒก แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก, Qemu แƒแƒ  แƒ˜แƒจแƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒ™แƒ แƒแƒœแƒ˜ แƒแƒ  แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒจแƒ˜, แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ•แƒ˜แƒ›แƒกแƒฏแƒ”แƒšแƒ”แƒ‘แƒ— -d exec,in_asm,out_asm. แƒ’แƒแƒฉแƒœแƒ“แƒ แƒฐแƒ˜แƒžแƒแƒ—แƒ”แƒ–แƒ: แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒ‘แƒ˜ (แƒแƒœ, แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ) แƒแƒ  แƒ›แƒแƒ“แƒ˜แƒก. แƒ“แƒ แƒ›แƒแƒ แƒ—แƒšแƒแƒช, แƒ—แƒฃ แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ— แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ, แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ›แƒกแƒ’แƒแƒ•แƒก แƒกแƒฃแƒ แƒแƒ—แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒ˜แƒงแƒ แƒžแƒแƒกแƒฃแƒฎแƒ˜: แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ—แƒแƒœ แƒ’แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒšแƒ˜แƒก แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒแƒ› แƒแƒฉแƒ•แƒ”แƒœแƒ, แƒ แƒแƒ› แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒขแƒ แƒแƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒแƒ“แƒ แƒ” แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ. แƒแƒฅแƒ•แƒ” แƒฃแƒœแƒ“แƒ แƒ˜แƒ—แƒฅแƒ•แƒแƒก, แƒ แƒแƒ› แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒช แƒฉแƒแƒ˜แƒฌแƒ”แƒ แƒ แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— emrun แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ—แƒแƒœ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜. แƒแƒ  แƒ•แƒ˜แƒชแƒ˜ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ แƒแƒ’แƒแƒ  แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ emrun, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ แƒ’แƒแƒ“แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ˜ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ—, แƒ แƒแƒ› แƒขแƒ แƒแƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ, แƒ แƒแƒ› แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— ljmpl แƒฎแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜ แƒซแƒ˜แƒ แƒ”แƒฃแƒšแƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ: แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒแƒก แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ›แƒ”แƒแƒ แƒ” แƒ™แƒ˜ แƒแƒ แƒ. แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒฃแƒ’แƒšแƒจแƒ˜ แƒ“แƒ แƒแƒ› แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ, แƒ แƒแƒ›, แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ แƒ›แƒ˜แƒก แƒฌแƒ˜แƒœ cr0 แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ - แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— - แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒ’แƒแƒ“แƒแƒ แƒ—แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜ แƒ“แƒแƒชแƒฃแƒš แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ“แƒ แƒ›แƒ”แƒแƒ แƒ”แƒช, แƒ แƒแƒ› js แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ แƒ“แƒแƒชแƒฃแƒš แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒคแƒแƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ› Emscripten-แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ—แƒแƒ•แƒจแƒ”แƒ™แƒแƒ•แƒ”แƒ‘แƒ แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒแƒ“แƒ›แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ. call TCI-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒขแƒ˜แƒžแƒก long long f(int arg0, .. int arg9) - แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒแƒœ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ—. แƒ—แƒฃ แƒ”แƒก แƒฌแƒ”แƒกแƒ˜ แƒ“แƒแƒ˜แƒ แƒฆแƒ•แƒ, แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒแƒœ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ (แƒ แƒแƒช แƒ™แƒแƒ แƒ’แƒ˜แƒ) แƒแƒœ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ  แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก (แƒ แƒแƒช แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ). แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ - แƒฉแƒแƒ แƒ—แƒ”แƒ— แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒœ/แƒแƒจแƒแƒ แƒ”แƒ‘แƒ”แƒœ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ‘แƒแƒจแƒ˜ แƒ”แƒก แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ˜แƒ“ แƒแƒ“แƒ’แƒ˜แƒšแƒก แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒ›แƒ” แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒกแƒ–แƒ” แƒชแƒแƒขแƒ แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ. แƒ›แƒแƒ แƒขแƒ แƒ”แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ แƒฃแƒคแƒ แƒ แƒกแƒ”แƒ แƒ˜แƒแƒ–แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ: wrapper แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒ“แƒจแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒ แƒ“แƒ แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒ— แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒฃแƒšแƒ˜ - แƒ˜แƒกแƒ”, แƒ˜แƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ”แƒ›แƒ˜ libffi แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ. แƒแƒœแƒฃ, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ  แƒ“แƒแƒฎแƒ•แƒ แƒ˜แƒขแƒ”แƒก.

แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, Qemu-แƒก แƒแƒฅแƒ•แƒก แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒ— แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“แƒ˜ แƒกแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ

DEF_HELPER_0(lock, void)
DEF_HELPER_0(unlock, void)
DEF_HELPER_3(write_eflags, void, env, tl, i32)

แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒกแƒแƒกแƒแƒชแƒ˜แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ: แƒฏแƒ”แƒ  แƒ”แƒ แƒ—แƒ˜, แƒ›แƒแƒ™แƒ แƒ แƒ’แƒแƒ“แƒแƒ˜แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒ’แƒ–แƒ˜แƒ— DEF_HELPER_nแƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ helper.h. แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒแƒช แƒ›แƒแƒ™แƒ แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒแƒ“ แƒ“แƒ แƒ›แƒซแƒ˜แƒ›แƒ˜แƒ—, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ - #include <helper.h> แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ›แƒแƒ›แƒ”แƒชแƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ›แƒ”แƒชแƒแƒ“แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒกแƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒจแƒ˜ แƒžแƒ˜แƒžแƒแƒ แƒกแƒ˜แƒœแƒ’แƒ˜แƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ”แƒ‘แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ”แƒก แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ”แƒ™แƒ แƒแƒœแƒ˜ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒงแƒแƒคแƒ˜แƒšแƒ แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ—แƒฃแƒ›แƒชแƒ memtest86+-แƒ›แƒ แƒจแƒ”แƒซแƒšแƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒแƒจแƒ˜. แƒแƒฅแƒ•แƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒ•แƒ›แƒแƒ แƒขแƒแƒ—, แƒ แƒแƒ› Qemu แƒ‘แƒšแƒแƒ™แƒ˜แƒก I/O แƒ™แƒแƒ“แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒ™แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—. Emscripten-แƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒ›แƒžแƒšแƒ”แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒ›แƒแƒ˜แƒœแƒช แƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒงแƒ Qemu แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒแƒฎแƒšแƒ: Qemu แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒก -kernel, -initrd, -append, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— Linux แƒแƒœ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, memtest86+, แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฅ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ: แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒแƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ— Linux-แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒแƒคแƒชแƒ˜แƒ˜แƒ— -nographic, แƒ“แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒแƒ›แƒ“แƒ”, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ˜แƒก แƒ˜แƒงแƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ emrun, แƒแƒ  แƒ›แƒแƒ•แƒ˜แƒ“แƒ. แƒแƒœแƒฃ, แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ แƒ˜แƒ: แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒœ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒแƒ–แƒ แƒแƒ“ แƒ›แƒแƒ›แƒ˜แƒ•แƒ˜แƒ“แƒ, แƒ แƒแƒ› แƒชแƒแƒขแƒ แƒ“แƒแƒ•แƒ”แƒšแƒแƒ“แƒ”. แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› "แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒก แƒแƒ  แƒกแƒซแƒ˜แƒœแƒแƒ•แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒœแƒ”แƒšแƒ แƒชแƒ˜แƒ›แƒชแƒ˜แƒ›แƒ”แƒ‘แƒก" แƒ“แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒฎแƒฃแƒ—แƒ˜ แƒฌแƒฃแƒ—แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ›แƒ แƒ’แƒแƒ“แƒแƒแƒ’แƒ“แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ˜แƒ’แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒกแƒแƒšแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒœแƒแƒ’แƒ แƒซแƒ แƒ“แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ. แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ, แƒ แƒแƒ› แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜, แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ™แƒแƒ“แƒ˜ SDL2-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒแƒ  แƒ•แƒ˜แƒชแƒ˜ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ แƒ”แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ. แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜, แƒšแƒฃแƒ แƒฏ แƒคแƒแƒœแƒ–แƒ” แƒ”แƒ™แƒ แƒแƒœแƒ–แƒ” แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“0 แƒฎแƒแƒ–แƒ˜ แƒ’แƒแƒ‘แƒ แƒฌแƒงแƒ˜แƒœแƒ“แƒ, แƒ แƒแƒช แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ–แƒ แƒก แƒ’แƒ•แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒ“แƒ. แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒ˜แƒงแƒ, แƒ แƒแƒ› Qemu แƒฎแƒกแƒœแƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒคแƒแƒœแƒฏแƒแƒ แƒแƒก แƒ”แƒ แƒ— แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒคแƒแƒœแƒฏแƒแƒ แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ“แƒแƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— Ctrl-Alt-n แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—: แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  build-แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ Emscripten-แƒจแƒ˜. แƒแƒ แƒแƒกแƒแƒญแƒ˜แƒ แƒ แƒคแƒแƒœแƒฏแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒจแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒคแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— -monitor none -parallel none -serial none แƒ“แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒฎแƒแƒ–แƒ”แƒ— แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ”แƒ™แƒ แƒแƒœแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒฉแƒแƒ แƒฉแƒแƒ–แƒ”, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒฃแƒšแƒแƒ“แƒœแƒ”แƒšแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ.

แƒ™แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ”แƒ‘แƒ˜

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒ”แƒ›แƒฃแƒšแƒแƒชแƒ˜แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒกแƒจแƒ˜ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ”แƒ แƒ—แƒฏแƒ”แƒ แƒแƒ“แƒ˜ แƒคแƒšแƒแƒžแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ  แƒแƒ แƒ˜แƒก I/O แƒ‘แƒšแƒแƒ™แƒ˜ - แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ™แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. Qemu-แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ˜แƒก แƒฃแƒ™แƒแƒœแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› JavaScript-แƒ˜แƒกแƒ แƒ“แƒ Emscripten แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— แƒ“แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒŸแƒแƒœแƒ’แƒšแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, "แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฌแƒแƒ•แƒ˜แƒ“แƒ, แƒ—แƒแƒ‘แƒแƒจแƒ˜แƒ แƒ˜ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ", แƒ›แƒแƒ’แƒ แƒแƒ› Emscripten-แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒฃแƒ™แƒ•แƒ” แƒ˜แƒ–แƒ แƒฃแƒœแƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ–แƒ”. แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒกแƒแƒกแƒแƒชแƒ˜แƒšแƒแƒ“ แƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜: แƒ›แƒแƒ“แƒ˜แƒ—, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ แƒ“แƒแƒ•แƒแƒ แƒฅแƒ•แƒแƒ— แƒกแƒแƒ”แƒญแƒ•แƒ emscripten_sleep แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒฎแƒ•แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ Asyncify แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒก, แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒ˜แƒก แƒ–แƒแƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒ–แƒแƒ แƒ”แƒ‘แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ”, แƒกแƒแƒ“แƒแƒช แƒฌแƒ˜แƒœแƒ แƒแƒ แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒก แƒกแƒขแƒ”แƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒ›แƒแƒ—. แƒแƒฎแƒšแƒ แƒ™แƒ˜, แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒกแƒแƒ”แƒญแƒ•แƒ แƒ–แƒแƒ แƒ˜แƒก แƒฌแƒ˜แƒœ, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒš แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒก แƒ“แƒ แƒ–แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ— แƒ›แƒแƒฎแƒ“แƒ แƒ—แƒฃ แƒแƒ แƒ แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜ แƒ“แƒ แƒ—แƒฃ แƒ›แƒแƒฎแƒ“แƒ, แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒ แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒชแƒ•แƒšแƒแƒ“แƒก แƒจแƒ”แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒแƒ› แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒš แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜, แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ. แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜ แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒชแƒ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒกแƒ•แƒšแƒ. แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ”แƒคแƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ’แƒแƒคแƒšแƒแƒœแƒ’แƒ•แƒ โ€” แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒกแƒแƒ”แƒญแƒ•แƒ แƒ–แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก โ€žแƒกแƒขแƒฃแƒ‘แƒ”แƒ‘แƒกโ€œ - แƒแƒกแƒ”: แƒ—แƒฃ แƒแƒ แƒ˜แƒก n แƒกแƒแƒ”แƒญแƒ•แƒ แƒ–แƒแƒ แƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒกแƒแƒ“แƒฆแƒแƒช n/2. แƒฏแƒ”แƒ  โ€” แƒ”แƒก แƒ›แƒแƒ˜แƒœแƒช แƒแƒ แƒ˜แƒก, แƒ—แƒฃ แƒแƒ แƒ. แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒฃแƒ แƒแƒ“ แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜. แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜, แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒช แƒ™แƒ˜ แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช, แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒฏแƒ’แƒฃแƒคแƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ โ€žแƒแƒ  แƒแƒซแƒšแƒ”แƒ•แƒ”แƒœ แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ˜แƒก แƒ’แƒแƒ•แƒšแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒกโ€œ (แƒแƒœแƒฃ แƒกแƒขแƒ”แƒ™แƒ˜แƒก แƒžแƒ แƒแƒ›แƒแƒฃแƒจแƒ”แƒœแƒ˜ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒแƒฎแƒšแƒ แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ”, แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ›แƒแƒ—แƒจแƒ˜), แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ–แƒแƒ แƒ”แƒ‘แƒก แƒžแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒจแƒ˜แƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒ”แƒ แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ  แƒฉแƒแƒ˜แƒ—แƒ•แƒแƒšแƒแƒก แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒแƒ“. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ 60 แƒ›แƒ‘-แƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ JS แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜แƒ - แƒ•แƒ—แƒฅแƒ•แƒแƒ— แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› 30. แƒ—แƒฃแƒ›แƒชแƒ, แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ›แƒ” แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ˜ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ’แƒแƒ•แƒงแƒแƒ แƒ” แƒšแƒ˜แƒœแƒ™แƒ”แƒ แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก แƒ˜แƒงแƒ -O3. แƒ›แƒ” แƒ•แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒ“แƒก แƒ“แƒ Chromium แƒญแƒแƒ›แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ. แƒ›แƒ”แƒ แƒ” แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒ” แƒ แƒ˜แƒก แƒ’แƒแƒ“แƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ... แƒแƒ‘แƒ, แƒ แƒ แƒ•แƒ—แƒฅแƒ•แƒ, แƒ›แƒ”แƒช แƒ’แƒแƒ•แƒ˜แƒงแƒ˜แƒœแƒ”แƒ‘แƒแƒ“แƒ˜, 500+ MB Javascript-แƒ˜แƒก แƒ’แƒแƒแƒ–แƒ แƒ”แƒ‘แƒฃแƒšแƒแƒ“ แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ แƒ“แƒ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ แƒแƒ› แƒ›แƒ—แƒฎแƒแƒ•แƒ”แƒก.

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, Asyncify-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒงแƒ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒฃแƒšแƒ˜ longjmp-แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒชแƒ˜แƒ แƒ” แƒžแƒแƒฉแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ•แƒก แƒแƒ› แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒก แƒ“แƒ แƒซแƒแƒšแƒ˜แƒ— แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ”แƒ‘แƒก, แƒ—แƒ˜แƒ—แƒฅแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ˜แƒงแƒ, แƒ™แƒแƒ“แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒ แƒแƒ› แƒ“แƒแƒ˜แƒฌแƒงแƒ: แƒฎแƒแƒœแƒ“แƒแƒฎแƒแƒœ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒแƒ“แƒ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ - แƒ˜แƒ’แƒ˜แƒ•แƒ”, แƒ แƒแƒช แƒแƒ แƒฆแƒ•แƒ”แƒ•แƒก แƒ™แƒแƒ“แƒก, แƒ—แƒฃ, แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ˜แƒ‘แƒšแƒแƒ™แƒแƒก - แƒ•แƒ˜แƒฆแƒแƒช แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ›แƒฃแƒขแƒ”แƒฅแƒกแƒ˜แƒก แƒ“แƒแƒญแƒ”แƒ แƒแƒก. แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, แƒ”แƒก แƒแƒ  แƒ˜แƒงแƒ แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒกแƒ”แƒ แƒ˜แƒฃแƒš แƒ™แƒแƒ“แƒจแƒ˜ - แƒ›แƒ” แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ˜ Emscripten-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜ แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒฎแƒกแƒœแƒ˜แƒ“แƒ แƒ“แƒแƒกแƒขแƒแƒก แƒ“แƒ แƒ˜แƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ˜แƒก แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ”แƒ‘แƒแƒ“แƒ. setTimeout แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ˜แƒ“แƒแƒœ - แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ•แƒ˜แƒ“แƒ แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ˜แƒก แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒฌแƒ˜แƒœแƒ แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒขแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ แƒฃแƒกแƒแƒกแƒ แƒฃแƒšแƒ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ–แƒ” แƒ“แƒ emscripten_sleepแƒ“แƒ แƒ›แƒฃแƒขแƒ”แƒฅแƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒฉแƒ”แƒ แƒ“แƒ. แƒ™แƒแƒ“แƒ˜ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ’แƒแƒฎแƒ“แƒ - แƒ‘แƒแƒšแƒแƒก แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ›แƒ” แƒแƒ  แƒ›แƒแƒฅแƒ•แƒก แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒœแƒ˜แƒ›แƒแƒชแƒ˜แƒฃแƒ  แƒฉแƒแƒ แƒฉแƒแƒก - แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒ แƒแƒฆแƒแƒชแƒแƒก แƒ“แƒ แƒ”แƒ™แƒ แƒแƒœแƒ˜ แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒฃแƒšแƒแƒ“ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ”แƒ‘แƒ. แƒ—แƒฃแƒ›แƒชแƒ, แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒฅ แƒแƒ  แƒฉแƒ”แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ: แƒฎแƒแƒœแƒ“แƒแƒฎแƒแƒœ แƒ™แƒ”แƒ›แƒฃแƒก แƒแƒฆแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฉแƒฃแƒ›แƒแƒ“ แƒฌแƒงแƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒงแƒแƒ•แƒ”แƒšแƒ’แƒ•แƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒœแƒแƒ™แƒšแƒ˜แƒกแƒ˜แƒก แƒ“แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ˜แƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ›แƒ” แƒฃแƒแƒ แƒ˜ แƒ•แƒ—แƒฅแƒ•แƒ˜ แƒ›แƒแƒกแƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ›, แƒฌแƒ˜แƒœ แƒ•แƒ˜แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜, แƒ•แƒ˜แƒขแƒงแƒ•แƒ˜, แƒ แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ”แƒก แƒ˜แƒงแƒ: แƒ™แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜, แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒแƒ  แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก setTimeout (แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒแƒ แƒช แƒ˜แƒกแƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ—): แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ emscripten_yield แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ“แƒ แƒแƒจแƒแƒก. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒกแƒแƒฅแƒ›แƒ” แƒ˜แƒ›แƒแƒจแƒ˜แƒ emscripten_coroutine_next แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ: แƒจแƒ˜แƒ’แƒœแƒ˜แƒ“แƒแƒœ แƒ˜แƒก แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ“แƒ แƒแƒจแƒแƒก, แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก แƒ›แƒแƒก แƒ“แƒ แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒก แƒ˜แƒฅ, แƒกแƒแƒ“แƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ. แƒแƒœแƒฃ แƒกแƒขแƒ”แƒ™แƒ˜แƒก แƒ“แƒแƒฌแƒ˜แƒœแƒแƒฃแƒ แƒ”แƒ‘แƒ แƒแƒฅ แƒ›แƒ—แƒแƒ•แƒ แƒ“แƒ”แƒ‘แƒ. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒ˜แƒงแƒ, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฃแƒคแƒแƒกแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ™แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ˜แƒก แƒคแƒแƒœแƒ“แƒ˜ แƒ’แƒแƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒ›แƒ” แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒžแƒ˜แƒ แƒ” แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฎแƒแƒ–แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ˜แƒก แƒคแƒแƒœแƒ˜แƒ“แƒแƒœ, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ qemu_in_coroutine แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ true, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒงแƒ false. แƒแƒ›แƒแƒœ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒ–แƒแƒ แƒ˜ emscripten_yield, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ–แƒ”แƒ›แƒแƒ—แƒแƒช แƒ“แƒแƒกแƒขแƒแƒ–แƒ” แƒแƒ แƒแƒ•แƒ˜แƒœ แƒ˜แƒงแƒ emscripten_coroutine_next, แƒ“แƒแƒกแƒขแƒ แƒ’แƒแƒ˜แƒจแƒแƒšแƒ แƒ–แƒ”แƒ•แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ setTimeoutแƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒ•แƒ—แƒฅแƒ•แƒ˜, แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒแƒคแƒ”แƒœแƒ˜แƒšแƒ˜.

JavaScript แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ

แƒ“แƒ แƒแƒ˜, แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒแƒ แƒ˜แƒก แƒ“แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ โ€žแƒ“แƒแƒคแƒฅแƒฃแƒšแƒ˜ แƒฎแƒแƒ แƒชแƒ˜แƒก แƒฃแƒ™แƒแƒœ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒโ€œ. แฒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒ . แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ—แƒฃ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒฉแƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ— Qemu-แƒก แƒ“แƒ แƒ›แƒแƒกแƒจแƒ˜ Node.js-แƒก, แƒ›แƒแƒจแƒ˜แƒœ, แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, Qemu-แƒจแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒแƒ แƒแƒกแƒฌแƒแƒ  JavaScript-แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช, แƒ แƒแƒฆแƒแƒช แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ แƒขแƒ แƒแƒœแƒกแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜, แƒชแƒแƒขแƒ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Qemu. แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ›แƒแƒžแƒแƒขแƒ˜แƒแƒ—: แƒ›แƒ” แƒแƒ  แƒ•แƒแƒ  แƒžแƒ แƒแƒคแƒ”แƒกแƒ˜แƒแƒœแƒแƒšแƒ˜ Qemu แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜ แƒ“แƒ แƒฉแƒ”แƒ›แƒ˜ แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ›แƒชแƒ“แƒแƒ แƒ˜ แƒ–แƒแƒ’แƒแƒœ. แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒ‘แƒแƒ‘แƒ”แƒœ, โ€žแƒ›แƒแƒกแƒฌแƒแƒ•แƒšแƒ˜แƒก แƒแƒ–แƒ แƒ˜ แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒแƒ“แƒ”แƒก แƒ›แƒแƒกแƒฌแƒแƒ•แƒšแƒ”แƒ‘แƒšแƒ˜แƒก แƒแƒ–แƒ แƒก, แƒžแƒ”แƒแƒœแƒแƒก แƒแƒฅแƒกแƒ˜แƒแƒ›แƒแƒขแƒ˜แƒ™แƒแƒก แƒ“แƒ แƒกแƒแƒฆแƒ˜ แƒแƒ–แƒ แƒ˜โ€œ. Qemu-แƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ แƒกแƒขแƒฃแƒ›แƒ แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ แƒ“แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ target-i386. แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒกแƒแƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒขแƒฃแƒ›แƒแƒ แƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ‘แƒ˜แƒœแƒแƒ แƒ˜. แƒกแƒขแƒฃแƒ›แƒแƒ แƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒก แƒ™แƒแƒ“แƒ˜, แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒจแƒ˜แƒ“แƒ Qemu แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช TCG (Tiny Code Generator) แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒชแƒ”แƒ•แƒก แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒฃแƒ  แƒ™แƒแƒ“แƒแƒ“. แƒ แƒแƒ’แƒแƒ แƒช tcg แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ” readme แƒคแƒแƒ˜แƒšแƒจแƒ˜แƒ แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜, แƒ˜แƒก แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ˜แƒงแƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ C แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒแƒ“แƒแƒžแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ JIT-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ แƒแƒ› แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ— แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒขแƒฃแƒ›แƒ แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ. แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜ - Tiny Code Interpreter (TCI), แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒก แƒ™แƒแƒ“แƒ˜ (แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒจแƒ˜แƒ“แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜) แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒฐแƒแƒกแƒขแƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜. แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒฌแƒ”แƒ แƒ˜แƒ, แƒ”แƒก แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ”แƒก แƒ˜แƒกแƒ”, แƒ แƒแƒ’แƒแƒ แƒช JIT แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜, แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“. แƒ—แƒฃแƒ›แƒชแƒ แƒแƒ  แƒ•แƒแƒ  แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ แƒกแƒ แƒฃแƒšแƒแƒ“ แƒแƒฅแƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜แƒ.

แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ•แƒชแƒแƒ“แƒ” แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœแƒ˜ TCG backend-แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒ•แƒ‘แƒœแƒ”แƒฃแƒšแƒ˜แƒงแƒแƒ•แƒ˜ แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒ“แƒ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒ›แƒ™แƒแƒคแƒ˜แƒ แƒแƒฆแƒฌแƒ”แƒ แƒแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒจแƒ”แƒ›แƒ”แƒ™แƒ แƒ TCI แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜. แƒแƒ›แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒ›แƒ˜แƒกแƒชแƒ:

  • แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ˜แƒกแƒแƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฎแƒ”แƒ“แƒแƒ— แƒแƒ แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒแƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒœแƒ˜แƒก แƒ™แƒแƒ“แƒก
  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ”แƒแƒกแƒ” แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’
  • แƒ—แƒฃ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ (แƒ“แƒ แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ—แƒฃ แƒ•แƒ˜แƒ›แƒกแƒฏแƒ”แƒšแƒ”แƒ‘แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒ˜แƒขแƒงแƒ•แƒ แƒžแƒแƒฉแƒก), แƒ›แƒ” แƒ“แƒแƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ JS แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒ’แƒ”แƒœแƒ”แƒ แƒแƒชแƒ˜แƒ.

แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒžแƒฃแƒœแƒฅแƒขแƒก, แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ  แƒ•แƒแƒ , แƒ แƒแƒ› แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ˜ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ.

แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“, แƒ™แƒแƒ“แƒ˜ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒแƒ•แƒ˜แƒฎแƒกแƒ”แƒœแƒ” แƒกแƒขแƒแƒขแƒ˜แƒ Emscripten-แƒ˜แƒก, แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ JS-แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒฎแƒ•แƒ”แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ›แƒ”แƒขแƒ˜ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ, แƒ›แƒ˜แƒ— แƒฃแƒ›แƒ”แƒขแƒ”แƒก, แƒ แƒแƒ› แƒ”แƒ›แƒžแƒ˜แƒ แƒ˜แƒฃแƒšแƒแƒ“ แƒ˜แƒก แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒจแƒ˜ แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒแƒ. แƒชแƒแƒขแƒ แƒฎแƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฅแƒ›แƒœแƒ˜แƒ“แƒ แƒ™แƒแƒ“แƒก if-แƒ”แƒ‘แƒ˜แƒ— (แƒ—แƒฃแƒ›แƒชแƒ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”). แƒ›แƒแƒ’แƒ แƒแƒ› แƒชแƒฃแƒ“แƒ˜ แƒ˜แƒฆแƒ‘แƒแƒšแƒ˜, แƒ˜แƒก แƒฉแƒแƒ›แƒแƒ•แƒแƒ แƒ“แƒ, แƒ แƒแƒช แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ“แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ› แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒงแƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒกแƒ˜แƒ’แƒ แƒซแƒ˜แƒก. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ‘แƒแƒšแƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒแƒ› แƒ แƒ”แƒ™แƒฃแƒ แƒกแƒ˜แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ” แƒ˜แƒงแƒ brcond. แƒ™แƒแƒ แƒ’แƒ˜, แƒ›แƒ” แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘ แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ  แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒแƒก แƒแƒ› แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ—แƒแƒแƒ‘แƒแƒ–แƒ” แƒ แƒ”แƒ™แƒฃแƒ แƒกแƒ˜แƒฃแƒšแƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒ... แƒแƒ แƒช แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒแƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› assert switch-แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒแƒ˜แƒœแƒช แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ. แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜, แƒ แƒแƒ› แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ แƒ“แƒแƒกแƒขแƒแƒ“แƒแƒœ แƒ“แƒ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ JavaScript แƒ™แƒแƒ“แƒ˜แƒ—. แƒ“แƒ แƒแƒกแƒ” แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ. แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ˜แƒ“แƒแƒœ แƒแƒ—แƒแƒ›แƒ“แƒ” แƒ’แƒแƒ–แƒ แƒ“แƒแƒก แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒฐแƒงแƒแƒšแƒ˜แƒ แƒ“แƒ แƒชแƒฎแƒแƒ“แƒ˜ แƒ’แƒแƒฎแƒ“แƒ, แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒฌแƒ แƒ”แƒ”แƒ‘แƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ. แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ’แƒ•แƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒœแƒ, แƒ แƒแƒ› แƒแƒ  แƒ’แƒแƒ•แƒกแƒฃแƒšแƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒขแƒฃแƒ‘แƒ”แƒ แƒ™แƒฃแƒšแƒแƒ–แƒ˜แƒก แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒ—แƒฃ แƒ’แƒแƒ•แƒ”แƒ“แƒ˜แƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒ’แƒแƒ›แƒแƒ•แƒชแƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒขแƒฃแƒ‘แƒ”แƒ แƒ™แƒฃแƒšแƒแƒ–แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒ›แƒ˜แƒœแƒฃแƒก แƒœแƒ˜แƒจแƒœแƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ•แƒแƒ’แƒ แƒซแƒแƒ— แƒแƒฆแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ”แƒก แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก "แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ—แƒฃ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜แƒก แƒ”แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ?" โ€” แƒ›แƒฎแƒแƒšแƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒแƒ› แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒก, แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒฅแƒ›แƒ“แƒ”แƒก. แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ•แƒแƒกแƒฌแƒแƒ แƒ” Chromium-แƒจแƒ˜ (แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ Firefox แƒ“แƒ แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒชแƒแƒšแƒ™แƒ” แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก), Firefox แƒ“แƒแƒ›แƒ”แƒฎแƒ›แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒ”แƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒœแƒ แƒจแƒ”แƒฃแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒšแƒแƒ‘แƒ asm.js แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ—แƒแƒœ, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ™แƒแƒ“แƒ˜ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ. แƒฅแƒ แƒแƒ›แƒ˜.

แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

Compiling 0x15b46d0:
CompiledTB[0x015b46d0] = function(stdlib, ffi, heap) {
"use asm";
var HEAP8 = new stdlib.Int8Array(heap);
var HEAP16 = new stdlib.Int16Array(heap);
var HEAP32 = new stdlib.Int32Array(heap);
var HEAPU8 = new stdlib.Uint8Array(heap);
var HEAPU16 = new stdlib.Uint16Array(heap);
var HEAPU32 = new stdlib.Uint32Array(heap);

var dynCall_iiiiiiiiiii = ffi.dynCall_iiiiiiiiiii;
var getTempRet0 = ffi.getTempRet0;
var badAlignment = ffi.badAlignment;
var _i64Add = ffi._i64Add;
var _i64Subtract = ffi._i64Subtract;
var Math_imul = ffi.Math_imul;
var _mul_unsigned_long_long = ffi._mul_unsigned_long_long;
var execute_if_compiled = ffi.execute_if_compiled;
var getThrew = ffi.getThrew;
var abort = ffi.abort;
var qemu_ld_ub = ffi.qemu_ld_ub;
var qemu_ld_leuw = ffi.qemu_ld_leuw;
var qemu_ld_leul = ffi.qemu_ld_leul;
var qemu_ld_beuw = ffi.qemu_ld_beuw;
var qemu_ld_beul = ffi.qemu_ld_beul;
var qemu_ld_beq = ffi.qemu_ld_beq;
var qemu_ld_leq = ffi.qemu_ld_leq;
var qemu_st_b = ffi.qemu_st_b;
var qemu_st_lew = ffi.qemu_st_lew;
var qemu_st_lel = ffi.qemu_st_lel;
var qemu_st_bew = ffi.qemu_st_bew;
var qemu_st_bel = ffi.qemu_st_bel;
var qemu_st_leq = ffi.qemu_st_leq;
var qemu_st_beq = ffi.qemu_st_beq;

function tb_fun(tb_ptr, env, sp_value, depth) {
  tb_ptr = tb_ptr|0;
  env = env|0;
  sp_value = sp_value|0;
  depth = depth|0;
  var u0 = 0, u1 = 0, u2 = 0, u3 = 0, result = 0;
  var r0 = 0, r1 = 0, r2 = 0, r3 = 0, r4 = 0, r5 = 0, r6 = 0, r7 = 0, r8 = 0, r9 = 0;
  var r10 = 0, r11 = 0, r12 = 0, r13 = 0, r14 = 0, r15 = 0, r16 = 0, r17 = 0, r18 = 0, r19 = 0;
  var r20 = 0, r21 = 0, r22 = 0, r23 = 0, r24 = 0, r25 = 0, r26 = 0, r27 = 0, r28 = 0, r29 = 0;
  var r30 = 0, r31 = 0, r41 = 0, r42 = 0, r43 = 0, r44 = 0;
    r14 = env|0;
    r15 = sp_value|0;
  START: do {
    r0 = HEAPU32[((r14 + (-4))|0) >> 2] | 0;
    r42 = 0;
    result = ((r0|0) != (r42|0))|0;
    HEAPU32[1445307] = r0;
    HEAPU32[1445321] = r14;
    if(result|0) {
    HEAPU32[1445322] = r15;
    return 0x0345bf93|0;
    }
    r0 = HEAPU32[((r14 + (16))|0) >> 2] | 0;
    r42 = 8;
    r0 = ((r0|0) - (r42|0))|0;
    HEAPU32[(r14 + (16)) >> 2] = r0;
    r1 = 8;
    HEAPU32[(r14 + (44)) >> 2] = r1;
    r1 = r0|0;
    HEAPU32[(r14 + (40)) >> 2] = r1;
    r42 = 4;
    r0 = ((r0|0) + (r42|0))|0;
    r2 = HEAPU32[((r14 + (24))|0) >> 2] | 0;
    HEAPU32[1445307] = r0;
    HEAPU32[1445308] = r1;
    HEAPU32[1445309] = r2;
    HEAPU32[1445321] = r14;
    HEAPU32[1445322] = r15;
    qemu_st_lel(env|0, r0|0, r2|0, 34, 22759218);
if(getThrew() | 0) abort();
    r0 = 3241038392;
    HEAPU32[1445307] = r0;
    r0 = qemu_ld_leul(env|0, r0|0, 34, 22759233)|0;
if(getThrew() | 0) abort();
    HEAPU32[(r14 + (24)) >> 2] = r0;
    r1 = HEAPU32[((r14 + (12))|0) >> 2] | 0;
    r2 = HEAPU32[((r14 + (40))|0) >> 2] | 0;
    HEAPU32[1445307] = r0;
    HEAPU32[1445308] = r1;
    HEAPU32[1445309] = r2;
    qemu_st_lel(env|0, r2|0, r1|0, 34, 22759265);
if(getThrew() | 0) abort();
    r0 = HEAPU32[((r14 + (24))|0) >> 2] | 0;
    HEAPU32[(r14 + (40)) >> 2] = r0;
    r1 = 24;
    HEAPU32[(r14 + (52)) >> 2] = r1;
    r42 = 0;
    result = ((r0|0) == (r42|0))|0;
    if(result|0) {
    HEAPU32[1445307] = r0;
    HEAPU32[1445308] = r1;
    }
    HEAPU32[1445307] = r0;
    HEAPU32[1445308] = r1;
    return execute_if_compiled(22759392|0, env|0, sp_value|0, depth|0) | 0;
    return execute_if_compiled(23164080|0, env|0, sp_value|0, depth|0) | 0;
    break;
  } while(1); abort(); return 0|0;
}
return {tb_fun: tb_fun};
}(window, CompilerFFI, Module.buffer)["tb_fun"]

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒแƒกแƒ” แƒ แƒแƒ›, แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒ•แƒ˜แƒฆแƒแƒšแƒ” แƒแƒ› แƒ’แƒ แƒซแƒ”แƒšแƒ•แƒแƒ“แƒ˜แƒแƒœแƒ˜ แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒคแƒแƒ แƒฃแƒšแƒแƒ“ แƒกแƒ แƒฃแƒšแƒงแƒแƒคแƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒงแƒ•แƒแƒœแƒ˜แƒ—. แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ’แƒแƒ›แƒแƒ›แƒ”แƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ˜แƒœแƒ แƒ˜แƒก, แƒ แƒแƒช แƒแƒฎแƒšแƒ แƒ›แƒแƒฅแƒ•แƒก. แƒ™แƒแƒ“แƒ˜ แƒ–แƒแƒ’แƒแƒœ แƒชแƒแƒขแƒ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜แƒ แƒ“แƒ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ แƒ˜แƒ แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก. แƒแƒšแƒ‘แƒแƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒฆแƒ˜แƒ แƒก แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒแƒขแƒแƒ›แƒฃแƒ แƒ˜ แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒชแƒ”แƒ›แƒ Qemu-แƒก แƒฃแƒคแƒ แƒ แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ—แƒแƒ•แƒ–แƒ”. แƒ˜แƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ’แƒ˜แƒขแƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ—แƒ”แƒ›แƒ แƒ‘แƒšแƒแƒ’แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜: แƒงแƒแƒ•แƒ”แƒšแƒ˜ "แƒ“แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก", แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ แƒแƒฆแƒแƒชแƒœแƒแƒ˜แƒ แƒแƒ“ แƒ›แƒแƒ˜แƒœแƒช แƒ’แƒแƒ˜แƒแƒ แƒ, แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜ แƒ แƒฃแƒกแƒฃแƒš แƒ”แƒœแƒแƒ–แƒ”. แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ“แƒ˜แƒ“แƒฌแƒ˜แƒšแƒแƒ“ แƒแƒ แƒ˜แƒก แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒ แƒแƒ‘แƒ git log.

แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒชแƒแƒ“แƒแƒ— แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒฅ (แƒฃแƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ“แƒ˜แƒ— แƒ›แƒแƒซแƒ แƒแƒแƒ‘แƒแƒก).

แƒ แƒแƒช แƒฃแƒ™แƒ•แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก:

  • x86 แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก
  • แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก JIT แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ JavaScript-แƒ›แƒ“แƒ”
  • แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒฎแƒ•แƒ 32-แƒ‘แƒ˜แƒขแƒ˜แƒแƒœแƒ˜ แƒกแƒขแƒฃแƒ›แƒ แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜: แƒแƒฎแƒšแƒแƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒฆแƒคแƒ แƒ—แƒแƒ•แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒงแƒแƒ•แƒ˜แƒ— Linux-แƒ˜แƒ— MIPS แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒ— แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ’แƒแƒงแƒ˜แƒœแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ

  • แƒ”แƒ›แƒฃแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒ. JIT แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜แƒช แƒ™แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒœแƒ”แƒšแƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ•แƒ˜แƒ“แƒ แƒ” Virtual x86 (แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒฃแƒ แƒแƒ“ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ Qemu แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒแƒ แƒแƒขแƒฃแƒ แƒ˜แƒ— แƒ“แƒ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒ—)
  • แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ - แƒ’แƒฃแƒšแƒฌแƒ แƒคแƒ”แƒšแƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ›แƒ” แƒแƒ  แƒ•แƒแƒ  แƒ™แƒแƒ แƒ’แƒ˜ แƒ•แƒ”แƒ‘ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜, แƒแƒกแƒ” แƒ แƒแƒ›, แƒแƒฎแƒšแƒ แƒ›แƒ” แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ Emscripten แƒ’แƒแƒ แƒกแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ
  • แƒจแƒ”แƒ”แƒชแƒแƒ“แƒ”แƒ— แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜ Qemu แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ - แƒฅแƒกแƒ”แƒšแƒ˜, VM แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ.แƒจ.
  • UPD: แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ แƒแƒ“แƒ’แƒ˜แƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ Emscripten-แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ“แƒœแƒ”แƒœ Qemu-แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒžแƒแƒ แƒขแƒ”แƒ แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒ›แƒแƒ—, แƒ แƒแƒ› แƒจแƒ”แƒซแƒšแƒ”แƒก แƒฃแƒžแƒ˜แƒ แƒแƒ‘แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ—แƒ˜ แƒฌแƒ•แƒšแƒ˜แƒšแƒ˜ Emscripten-แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ”แƒ›แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ