JIT เจธเจนเจพเจ‡เจคเจพ เจจเจพเจฒ Qemu.js: เจธเจŸเจซเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจตเจพเจชเจธ เจฎเฉ‹เฉœเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ

เจ•เฉเจ เจธเจพเจฒ เจชเจนเจฟเจฒเจพเจ‚ เจซเฉˆเจฌเจฐเจฟเจธ เจฌเฉ‡เจฒเจพเจฐเจก jslinux เจฆเฉเจ†เจฐเจพ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† JavaScript เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ‡เฉฑเจ• PC เจˆเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจนเฉˆเฅค เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจนเฉ‹เจฐ เจธเฉ€ เจตเจฐเจšเฉเจ…เจฒ x86. เจชเจฐ เจ‰เจน เจธเจพเจฐเฉ‡, เจœเจฟเฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจฎเฉˆเจจเฉ‚เฉฐ เจชเจคเจพ เจนเฉˆ, เจฆเฉเจญเจพเจธเจผเฉ€เจ เจธเจจ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจ•เจฟเจฎเฉ‚, เจ‰เจธเฉ‡ เจซเฉˆเจฌเจฐเจฟเจธ เจฌเฉ‡เจฒเจพเจฐเจก เจฆเฉเจ†เจฐเจพ เจฌเจนเฉเจค เจชเจนเจฟเจฒเจพเจ‚ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡, เจธเจผเจพเจ‡เจฆ, เจ•เฉ‹เจˆ เจตเฉ€ เจธเจตเฉˆ-เจฎเจพเจฃ เจตเจพเจฒเจพ เจ†เจงเฉเจจเจฟเจ• เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ, เจนเฉ‹เจธเจŸ เจธเจฟเจธเจŸเจฎ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ—เฉˆเจธเจŸ เจ•เฉ‹เจก เจฆเฉ‡ JIT เจธเฉฐเจ•เจฒเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฎเฉˆเจจเฉ‚เฉฐ เจœเจพเจชเจฆเจพ เจธเฉ€ เจ•เจฟ เจฌเฉเจฐเจพเจ‰เจœเจผเจฐ เจฆเฉเจ†เจฐเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจ‡เฉฑเจ• เจฆเฉ‡ เจธเจฌเฉฐเจง เจตเจฟเฉฑเจš เจ‰เจฒเจŸ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจ† เจ—เจฟเจ† เจนเฉˆ: JavaScript เจตเจฟเฉฑเจš เจฎเจธเจผเฉ€เจจ เจ•เฉ‹เจก เจฆเจพ JIT เจธเฉฐเจ•เจฒเจจ, เจœเจฟเจธ เจฒเจˆ เจ‡เจน เจ•เจฟเจฎเฉ‚ เจชเฉ‹เจฐเจŸ เจ•เจฐเจจ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจคเจฐเจ•เจชเฉ‚เจฐเจจ เจœเจพเจชเจฆเจพ เจธเฉ€เฅค เจ‡เจน เจœเจพเจชเจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚ เจ•เจฟเจฎเฉ‚, เจ‡เฉฑเจฅเฉ‡ เจธเจฐเจฒ เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ-เจ…เจจเฉเจ•เฉ‚เจฒ เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจนเจจ - เจ‰เจนเฉ€ เจตเจฐเจšเฉเจ…เจฒ เจฌเจพเจ•เจธ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ - เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ. เจชเจฐ เจ•เจฟเจฎเฉ‚ เจฆเฉ€เจ†เจ‚ เจ•เจˆ เจฆเจฟเจฒเจšเจธเจช เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเจจ

  • เจ“เจชเจจ เจธเฉ‹เจฐเจธ
  • เจ•เจฐเจจเจฒ เจกเจฐเจพเจˆเจตเจฐ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ
  • เจฆเฉเจญเจพเจธเจผเฉ€เจ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ
  • เจนเฉ‹เจธเจŸ เจ…เจคเฉ‡ เจ—เฉˆเจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเฉ€ เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฒเจˆ เจธเจฎเจฐเจฅเจจ

เจคเฉ€เจœเฉ‡ เจฌเจฟเฉฐเจฆเฉ‚ เจฆเฉ‡ เจธเฉฐเจฌเฉฐเจง เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจนเฉเจฃ เจ‡เจน เจตเจฟเจ†เจ–เจฟเจ† เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจŸเฉ€เจธเฉ€เจ†เจˆ เจฎเฉ‹เจก เจตเจฟเฉฑเจš, เจ‡เจน เจ—เฉˆเจธเจŸ เจฎเจธเจผเฉ€เจจ เจฆเฉ€เจ†เจ‚ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเจจ เจœเฉ‹ เจ–เฉเจฆ เจตเจฟเจ†เจ–เจฟเจ† เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจชเจฐ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจฌเจพเจˆเจŸเจ•เฉ‹เจก, เจชเจฐ เจ‡เจน เจคเฉฑเจค เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเจพ - เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ. เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ 'เจคเฉ‡ Qemu, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจค เจนเฉ‹, เจคเจพเจ‚ A C เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ•เจพเจซเจผเฉ€ เจนเฉˆ - เจ‡เฉฑเจ• เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจฒเจฟเจ–เจฃเจพ เจฎเฉเจฒเจคเจตเฉ€ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ…เจคเฉ‡ เจนเฉเจฃ, เจฎเฉ‡เจฐเฉ‡ เจ–เจพเจฒเฉ€ เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจ•เจฟเจฎเฉ‚ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจจเจพเจฒ เจฆเฉ‹ เจธเจพเจฒเจพเจ‚ เจฆเฉ‡ เจ†เจฐเจพเจฎ เจจเจพเจฒ เจŸเจฟเฉฐเจ•เจฐ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ†, เจœเจฟเจธ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เฉ‹เจฒเฉ€เจฌเจฐเฉ€ OS.

Emscripten เจ•เฉ€ เจนเฉˆ

เจ…เฉฑเจœ เจ•เฉฑเจฒเฉเจน, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ เจนเจจ, เจœเจฟเจธเจฆเจพ เจ…เฉฐเจคเจฎ เจจเจคเฉ€เจœเจพ JavaScript เจนเฉˆ. เจ•เฉเจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจŸเจพเจˆเจช เจธเจ•เฉเจฐเจฟเจชเจŸ, เจ…เจธเจฒ เจตเจฟเฉฑเจš เจตเฉˆเฉฑเจฌ เจฒเจˆ เจฒเจฟเจ–เจฃ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจคเจฐเฉ€เจ•เจพ เจนเฉ‹เจฃ เจฆเจพ เจ‡เจฐเจพเจฆเจพ เจธเฉ€เฅค เจ‡เจธ เจฆเฉ‡ เจจเจพเจฒ เจนเฉ€, Emscripten เจฎเฉŒเจœเฉ‚เจฆเจพ C เจœเจพเจ‚ C++ เจ•เฉ‹เจก เจฒเฉˆเจฃ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ-เจชเฉœเฉเจนเจจ เจฏเฉ‹เจ— เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจคเจฐเฉ€เจ•เจพ เจนเฉˆเฅค 'เจคเฉ‡ เจ‡เจน เจธเจซเจผเจพ เจ…เจธเฉ€เจ‚ เจฎเจธเจผเจนเฉ‚เจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจชเฉ‹เจฐเจŸ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเฉ‡ เจนเจจ: เจ‡เฉฑเจฅเฉ‡เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ PyPy เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ - เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, เจ‰เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ JIT เจนเฉ‹เจฃ เจฆเจพ เจฆเจพเจ…เจตเจพ เจ•เจฐเจฆเฉ‡ เจนเจจ. เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจนเจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ•เฉฐเจชเจพเจ‡เจฒ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจšเจฒเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ - เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจจเฉฐเจฌเจฐ เจนเจจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚, เจœเจฟเจธ เจจเฉ‚เฉฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฐเฉฑเจ–เจฃเจพ เจชเฉˆเจ‚เจฆเจพ เจนเฉˆ, เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‰เจธเฉ‡ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจธเจผเจฟเจฒเจพเจฒเฉ‡เจ– เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ "เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจจเฉ‚เฉฐ เจฒเจ—เจญเจ— เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ. เจชเฉ‹เจฐเจŸเฉ‡เจฌเจฒ เจœเจพเจตเจพ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจˆ C/C++ เจ•เฉ‹เจกเฅค เจญเจพเจต, เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเจจ เจœเฉ‹ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเจฟเจตเจนเจพเจฐ เจนเจจ, เจชเจฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ x86 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ - เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจฒเจˆ เจ…เจฃ-เจ…เจฒเจพเจˆเจจ เจชเจนเฉเฉฐเจš, เจœเฉ‹ เจ•เจฟ เจ•เฉเจ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ 'เจคเฉ‡ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเจจเจพเจนเฉ€ เจนเฉˆเฅค , Qemu เจ‡เฉฑเจ• เจ•เฉเจฐเจพเจธ-เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจนเฉˆ เจ…เจคเฉ‡ , เจฎเฉˆเจ‚ เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเจฟเจตเจนเจพเจฐ เจธเจผเจพเจฎเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ - เจ‡เจธเจจเฉ‚เฉฐ เจฒเจ“ เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเฉ‹, เจซเจฟเจฐ JIT เจจเจพเจฒ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจŸเจฟเฉฐเจ•เจฐ เจ•เจฐเฉ‹ - เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจชเฉ‚เจฐเจพ เจ•เจฐ เจฒเจฟเจ† เจนเฉˆ! เจชเจฐ เจ‡เจน เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เฉ‡เจธ...

เจชเจนเจฟเจฒเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพ เจตเจฟเจ…เจ•เจคเฉ€ เจจเจนเฉ€เจ‚ เจนเจพเจ‚ เจœเฉ‹ เจ•เจฟเจฎเฉ‚ เจจเฉ‚เฉฐ เจœเจพเจตเจพ เจธเจ•เฉเจฐเจฟเจชเจŸ 'เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจ•เจฐเจจ เจฆเฉ‡ เจตเจฟเจšเจพเจฐ เจจเจพเจฒ เจ†เจ‡เจ† เจนเจพเจ‚. ReactOS เจซเฉ‹เจฐเจฎ 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจตเจพเจฒ เจชเฉเฉฑเจ›เจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ•เจฟ เจ•เฉ€ เจ‡เจน Emscripten เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉฐเจญเจต เจธเฉ€เฅค เจชเจนเจฟเจฒเจพเจ‚ เจตเฉ€, เจ…เจซเจตเจพเจนเจพเจ‚ เจธเจจ เจ•เจฟ เจซเฉˆเจฌเจฐเจฟเจธ เจฌเฉ‡เจฒเจพเจฐเจก เจจเฉ‡ เจ‡เจน เจจเจฟเฉฑเจœเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉ€เจคเจพ เจธเฉ€, เจชเจฐ เจ…เจธเฉ€เจ‚ jslinux เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐ เจฐเจนเฉ‡ เจธเฉ€, เจœเฉ‹ เจ•เจฟ, เจœเจฟเฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจฎเฉˆเจจเฉ‚เฉฐ เจชเจคเจพ เจนเฉˆ, JS เจตเจฟเฉฑเจš เจนเฉฑเจฅเฉ€เจ‚ เจ•เจพเจซเจผเฉ€ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เฉ‹เจธเจผเจฟเจธเจผ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจ•เฉเจฐเฉˆเจš เจคเฉ‹เจ‚ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจตเจฐเจšเฉเจ…เจฒ x86 เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€ - เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ…เจชเฉเจฐเจคเฉฑเจ– เจธเจฐเฉ‹เจค เจชเฉ‹เจธเจŸ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ, เจ…เจคเฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟเจนเจพ เจ—เจฟเจ† เจนเฉˆ, เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจฆเฉ‡ เจตเฉฑเจกเฉ‡ "เจฏเจฅเจพเจฐเจฅเจตเจพเจฆ" เจจเฉ‡ SeaBIOS เจจเฉ‚เฉฐ เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฃเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‡เจ† เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจฟเจฎเฉ‚ เจจเฉ‚เฉฐ เจชเฉ‹เจฐเจŸ เจ•เจฐเจจ เจฆเฉ€ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจ•เฉ‹เจธเจผเจฟเจธเจผ เจธเฉ€ - เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจธเจพเจ•เจŸ เจœเฉ‹เฉœเจพ, เจชเจฐ เจตเจฟเจ•เจพเจธ, เจœเจฟเฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจฎเฉˆเจ‚ เจธเจฎเจเจฆเจพ เจนเจพเจ‚, เจœเฉฐเจฎ เจ—เจฟเจ† เจธเฉ€เฅค

เจ‡เจธ เจฒเจˆ, เจ‡เจน เจœเจพเจชเจฆเจพ เจนเฉˆ, เจ‡เฉฑเจฅเฉ‡ เจธเจฐเฉ‹เจค เจนเจจ, เจ‡เฉฑเจฅเฉ‡ Emscripten เจนเฉˆ - เจ‡เจธเจจเฉ‚เฉฐ เจฒเจ“ เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเฉ‹. เจชเจฐ เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจตเฉ€ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ 'เจคเฉ‡ เจ•เจฟเจฎเฉ‚ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจœเจฟเจจเฉเจนเจพเจ‚ 'เจคเฉ‡ เจ‰เจน เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจ†เจฆเจฟ, เจ…เจคเฉ‡ เจ‰เจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉˆ libffi, เจ•เจฟเจธ glib 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ. เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ 'เจคเฉ‡ เจ…เจซเจตเจพเจนเจพเจ‚ เจธเจจ เจ•เจฟ เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจฒเจˆ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจชเฉ‹เจฐเจŸเจพเจ‚ เจฆเฉ‡ เจตเฉฑเจกเฉ‡ เจธเฉฐเจ—เฉเจฐเจนเจฟ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉ€, เจชเจฐ เจ‡เจน เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเจจเจพ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจ”เจ–เจพ เจธเฉ€: เจชเจนเจฟเจฒเฉ€ เจ—เฉฑเจฒ, เจ‡เจน เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฌเจฃเจจ เจฆเจพ เจ‡เจฐเจพเจฆเจพ เจจเจนเฉ€เจ‚ เจธเฉ€, เจฆเฉ‚เจœเจพ, เจ‡เจน เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจชเฉฑเจงเจฐ เจฆเจพ เจธเฉ€เฅค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจนเฉเจฃเฉ‡ เจšเฉเฉฑเจ•เจฃ เจฒเจˆ, เจ…เจคเฉ‡ JS เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฒเจˆ. เจ…เจคเฉ‡ เจ‡เจน เจธเจฟเจฐเจซเจผ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจ‡เจจเจธเจฐเจŸเจธ เจฆเจพ เจฎเจพเจฎเจฒเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ - เจธเจผเจพเจ‡เจฆ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจฎเฉ‹เฉœเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ•เฉเจ เจ•เจพเจฒเจฟเฉฐเจ— เจธเฉฐเจฎเฉ‡เจฒเจจเจพเจ‚ เจฒเจˆ เจคเฉเจธเฉ€เจ‚ เจธเจŸเฉˆเจ• 'เจคเฉ‡ เจœเจผเจฐเฉ‚เจฐเฉ€ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจคเจฟเจ†เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจชเจฐ Emscripten เจ‡เฉฑเจ• เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจšเฉ€เจœเจผ เจนเฉˆ: เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ JS เจ‡เฉฐเจœเจจ เจ”เจชเจŸเฉ€เจฎเจพเจˆเจœเจผเจฐ เจจเฉ‚เฉฐ เจœเจพเจฃเฉ‚ เจฆเจฟเจ–เจฃ เจฒเจˆ, เจ•เฉเจ เจšเจพเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡, เจ…เจ–เฉŒเจคเฉ€ เจฐเฉ€เจฒเฉ‚เจชเจฟเฉฐเจ— - เจ•เฉเจ เจเจฌเจธเจŸเฉเจฐเฉˆเจ•เจŸ เจชเจฐเจฟเจตเจฐเจคเจจ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ LLVM IR เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‡เฉฑเจ• เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจชเฉเจฐเจธเจผเฉฐเจธเจพเจฏเฉ‹เจ— ifs, เจฒเฉ‚เจชเจธ, เจ†เจฆเจฟ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ–เฉˆเจฐ, เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจ•เจฟเจตเฉ‡เจ‚ เจชเจพเจธ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ? เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, เจœเฉ‡เจเจธ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡, เจœเฉ‹ เจ•เจฟ, เจœเฉ‡ เจธเฉฐเจญเจต เจนเฉ‹เจตเฉ‡, เจธเจŸเฉˆเจ• เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚เฅค

เจธเจผเฉเจฐเฉ‚เจ†เจค เจตเจฟเฉฑเจš เจœเฉ‡เจเจธ เจฆเฉ‡ เจจเจพเจฒ libffi เจฒเจˆ เจ‡เฉฑเจ• เจฌเจฆเจฒเจพเจต เจฒเจฟเจ–เจฃ เจ…เจคเฉ‡ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจŸเฉˆเจธเจŸ เจšเจฒเจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจตเจฟเจšเจพเจฐ เจธเฉ€, เจชเจฐ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ‰เจฒเจเจฃ เจตเจฟเฉฑเจš เจชเฉˆ เจ—เจฟเจ† เจ•เจฟ เจ†เจชเจฃเฉ€เจ†เจ‚ เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡ เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน เจฎเฉŒเจœเฉ‚เจฆเจพ เจ•เฉ‹เจก เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ - เจฎเฉˆเจ‚ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ, "เจ•เฉ€ เจ•เฉฐเจฎ เจ‡เฉฐเจจเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเจจ "เจ•เฉ€ เจ…เจธเฉ€เจ‚ เจ‡เฉฐเจจเฉ‡ เจฎเฉ‚เจฐเจ– เจนเจพเจ‚?" เจฎเฉˆเจจเฉ‚เฉฐ libffi เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจชเฉ‹เจฐเจŸ เจ•เจฐเจจเจพ เจชเจฟเจ†, เจ‡เจธ เจฒเจˆ เจฌเฉ‹เจฒเจฃ เจฒเจˆ - เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, Emscripten เจ•เฉ‹เจฒ เจ‡เจจเจฒเจพเจˆเจจ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฒเจˆ เจฆเฉ‹เจตเฉ‡เจ‚ เจฎเฉˆเจ•เจฐเฉ‹ เจนเจจ (เจœเจพเจตเจพเจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš, เจนเจพเจ‚ - เจ–เฉˆเจฐ, เจœเฉ‹ เจตเฉ€ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ, เจ‡เจธ เจฒเจˆ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ), เจ…เจคเฉ‡ เจซเจฒเจพเจˆ 'เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ-เจจเจฟเจฐเจญเจฐ เจฒเจฟเจฌเจซเฉ€ เจฆเฉ‡ เจŸเฉเจ•เฉœเจฟเจ†เจ‚ เจจเจพเจฒ เจŸเจฟเฉฐเจ•เจฐ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉเจ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฏเฉ‹เจ— เจ•เฉ‹เจก เจฎเจฟเจฒเจฟเจ† เจ…เจคเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ‡ เจŸเฉˆเจธเจŸ 'เจคเฉ‡ เจšเจฒเจพเจ‡เจ† เจœเฉ‹ เจฎเฉˆเจ‚ เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจ‡เจ† เจธเฉ€เฅค เจฎเฉ‡เจฐเฉ‡ เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจŸเฉˆเจธเจŸ เจธเจซเจฒ เจฐเจฟเจนเจพเฅค เจฎเฉ‡เจฐเฉ€ เจชเฉเจฐเจคเจฟเจญเจพ เจคเฉ‹เจ‚ เจนเฉˆเจฐเจพเจจ - เจ•เฉ‹เจˆ เจฎเจœเจผเจพเจ• เจจเจนเฉ€เจ‚, เจ‡เจน เจชเจนเจฟเจฒเฉ€ เจฒเจพเจ‚เจš เจคเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจธเฉ€ - เจฎเฉˆเจ‚, เจ…เจœเฉ‡ เจตเฉ€ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เฉฑเจ–เจพเจ‚ 'เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ, เจจเจคเฉ€เจœเจพ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจตเฉ‡เจ–เจฃ เจ—เจฟเจ†, เจ‡เจน เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจจ เจฒเจˆ เจ•เจฟ เจ…เฉฑเจ—เฉ‡ เจ•เจฟเฉฑเจฅเฉ‡ เจ–เฉ‹เจฆเจฃเจพ เจนเฉˆ. เจ‡เฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจฆเฉ‚เจœเฉ€ เจตเจพเจฐ เจฌเฉ‡เจนเฉ‹เจธเจผ เจนเฉ‹ เจ—เจฟเจ† - เจฎเฉ‡เจฐเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‡ เจธเจฟเจฐเจซ เจ‰เจนเฉ€ เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ เจธเฉ€ ffi_call - เจ‡เจธ เจจเฉ‡ เจ‡เฉฑเจ• เจธเจซเจฒ เจ•เจพเจฒ เจฆเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เฉ€เจคเฉ€เฅค เจ†เจช เจ•เฉ‹เจˆ เจ•เจพเจฒ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ€ เจชเจนเจฟเจฒเฉ€ เจชเฉเฉฑเจฒ เจฌเฉ‡เจจเจคเฉ€ เจญเฉ‡เจœเฉ€, เจœเจฟเจธ เจจเฉ‡ เจŸเฉˆเจธเจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจœเฉ‹ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ“เจฒเฉฐเจชเฉ€เจ†เจก เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€ เจฒเจˆ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ - เจ…เจธเจฒ เจจเฉฐเจฌเจฐเจพเจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ a == b เจ…เจคเฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจตเฉ€ a - b < EPS - เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจตเฉ€ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ 0 เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ 1/3 เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ... เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฎเฉˆเจ‚ libffi เจฆเฉ€ เจ‡เฉฑเจ• เจ–เจพเจธ เจชเฉ‹เจฐเจŸ เจฒเฉˆ เจ•เฉ‡ เจ†เจ‡เจ† เจนเจพเจ‚, เจœเฉ‹ เจธเจญ เจคเฉ‹เจ‚ เจธเจฐเจฒ เจŸเฉˆเจธเจŸ เจชเจพเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจœเจฟเจธ เจจเจพเจฒ glib เจนเฉˆ เจธเฉฐเจ•เจฒเจฟเจค - เจฎเฉˆเจ‚ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจ•เจฟ เจ‡เจน เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจพเจ‚เจ—เจพเฅค เจ…เฉฑเจ—เฉ‡ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉˆเจ‚ เจ•เจนเจพเจ‚เจ—เจพ เจ•เจฟ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจจเจฟเจ•เจฒเจฟเจ†, เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจจเฉ‡ เจ…เฉฐเจคเจฎ เจ•เฉ‹เจก เจตเจฟเฉฑเจš libffi เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจตเฉ€ เจธเจผเจพเจฎเจฒ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพเฅค

เจชเจฐ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจฟเจนเจพ เจนเฉˆ, เจ•เฉเจ เจธเฉ€เจฎเจพเจตเจพเจ‚ เจนเจจ, เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเจฟเจตเจนเจพเจฐ เจฆเฉ€ เจฎเฉเจซเจค เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ, เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ•เฉ‹เจเจพ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจฒเฉเจ•เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ - เจกเจฟเจœเจผเจพเจˆเจจ เจฆเฉเจ†เจฐเจพ JavaScript เจธเจผเฉ‡เจ…เจฐเจก เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจฎเจฒเจŸเฉ€เจฅเฉเจฐเฉˆเจกเจฟเฉฐเจ— เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ. เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, เจ‡เจธเจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจตเจฟเจšเจพเจฐ เจตเฉ€ เจ•เจฟเจนเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจชเฉ‹เจฐเจŸเจฟเฉฐเจ— เจ•เฉ‹เจก เจฒเจˆ เจจเจนเฉ€เจ‚ เจœเจฟเจธเจฆเจพ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ C เจฅเจฐเจฟเฉฑเจกเจพเจ‚ เจจเจพเจฒ เจฌเฉฐเจจเฉเจนเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจซเจพเจ‡เจฐเจซเจพเจ•เจธ เจธเจผเฉ‡เจ…เจฐเจก เจตเจฐเจ•เจฐเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจ เจฒเจˆ เจชเฉเจฐเจฏเฉ‹เจ— เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจจเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• pthread เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ‡เจธ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ•เจฟเจฎเฉ‚ เจ•เฉ‹เจก เจคเฉ‹เจ‚ เจฎเจฒเจŸเฉ€เจฅเฉเจฐเฉˆเจกเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจฐเฉ‚เจŸ เจ†เจŠเจŸ เจ•เจฐเจจเจพ เจชเจฟเจ† - เจฏเจพเจจเฉ€ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ“ เจ•เจฟ เจฅเจฐเจฟเฉฑเจก เจ•เจฟเฉฑเจฅเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจนเจจ, เจ‡เจธ เจฅเฉเจฐเฉˆเจก เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจฐเจนเฉ‡ เจฒเฉ‚เจช เจฆเฉ‡ เจธเจฐเฉ€เจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจฎเฉ‚เจต เจ•เจฐเฉ‹, เจ…เจคเฉ‡ เจ…เจœเจฟเจนเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉฑเจ– เจฒเฉ‚เจช เจคเฉ‹เจ‚ เจ‡เฉฑเจ•-เจ‡เฉฑเจ• เจ•เจฐเจ•เฉ‡ เจ•เจพเจฒ เจ•เจฐเฉ‹เฅค

เจฆเฉ‚เจœเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ

เจ•เฉเจ เจฌเจฟเฉฐเจฆเฉ‚ 'เจคเฉ‡, เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ เจธเจฎเฉฑเจธเจฟเจ† เจ…เจœเฉ‡ เจตเฉ€ เจ‰เฉฑเจฅเฉ‡ เจธเฉ€, เจ…เจคเฉ‡ เจ•เฉ‹เจก เจฆเฉ‡ เจฆเฉเจ†เจฒเฉ‡ เจฌเฉ‡เจนเฉ‹เจธเจผเฉ€ เจจเจพเจฒ เจนเจฟเจฒเจพเจ‰เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจฌเฉˆเจธเจพเจ–เฉ€เจ†เจ‚ เจฆเจพ เจ•เฉ‹เจˆ เจญเจฒเจพ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจธเจฟเฉฑเจŸเจพ: เจธเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจฌเฉˆเจธเจพเจ–เฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจธเฉฐเจธเจ•เจฐเจฃ 2.4.1, เจœเฉ‹ เจ‰เจธ เจธเจฎเฉ‡เจ‚ เจคเจพเจœเจผเจพ เจธเฉ€, เจฒเจฟเจ† เจ—เจฟเจ† เจธเฉ€ (2.5.0 เจจเจนเฉ€เจ‚, เจ•เจฟเจ‰เจ‚เจ•เจฟ, เจ•เฉŒเจฃ เจœเจพเจฃเจฆเจพ เจนเฉˆ, เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเฉ‡ เจฌเฉฑเจ— เจนเฉ‹เจฃเจ—เฉ‡ เจœเฉ‹ เจ…เจœเฉ‡ เจคเฉฑเจ• เจซเฉœเฉ‡ เจจเจนเฉ€เจ‚ เจ—เจ เจนเจจ, เจ…เจคเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจฎเฉ‡เจฐเฉ‡ เจ†เจชเจฃเฉ‡ เจฌเฉฑเจ— เจ•เจพเจซเจผเฉ€ เจนเจจ ), เจ…เจคเฉ‡ เจชเจนเจฟเจฒเฉ€ เจ—เฉฑเจฒ เจ‡เจน เจธเฉ€ เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจขเฉฐเจ— เจจเจพเจฒ เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจ–เจฃเจพ thread-posix.c. เจ–เฉˆเจฐ, เจ‡เจน เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจนเฉˆ: เจœเฉ‡ เจ•เจฟเจธเฉ‡ เจจเฉ‡ เจฌเจฒเฉŒเจ• เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ“เจชเจฐเฉ‡เจธเจผเจจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€, เจคเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจฌเฉเจฒเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€ abort() - เจฌเฉ‡เจธเจผเฉฑเจ•, เจ‡เจธ เจจเฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ, เจชเจฐ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ‡เจน เจšเฉเฉฑเจชเจšเจพเจช เจ…เจธเฉฐเจ—เจค เจกเฉ‡เจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจจเจพเจฒเฉ‹เจ‚ เจ•เจฟเจคเฉ‡ เจœเจผเจฟเจ†เจฆเจพ เจธเฉเจนเจพเจตเจฃเจพ เจธเฉ€.

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจตเจฟเจ•เจฒเจช JS เจจเฉ‚เฉฐ เจ•เฉ‹เจก เจชเฉ‹เจฐเจŸ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจฎเจฆเจฆเจ—เจพเจฐ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ -s ASSERTIONS=1 -s SAFE_HEAP=1 - เจ‰เจน เจ•เฉเจ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ‡ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเจฟเจตเจนเจพเจฐ เจจเฉ‚เฉฐ เจซเฉœเจฆเฉ‡ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจ…เจฒเจพเจˆเจจ เจชเจคเฉ‡ 'เจคเฉ‡ เจ•เจพเจฒเจพเจ‚ (เจœเฉ‹ เจ•เจฟ เจŸเจพเจˆเจช เจ•เฉ€เจคเฉ‡ เจเจฐเฉ‡ เจฒเจˆ เจ•เฉ‹เจก เจจเจพเจฒ เจฌเจฟเจฒเจ•เฉเจฒ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ HEAP32[addr >> 2] = 1) เจœเจพเจ‚ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจ—เจฒเจค เจธเฉฐเจ–เจฟเจ† เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจจเจพเฅค

เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, เจ…เจฒเจพเจˆเจจเจฎเฉˆเจ‚เจŸ เจ—เจฒเจคเฉ€เจ†เจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจฎเฉเฉฑเจฆเจพ เจนเฉˆเฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจฟเจนเจพ เจนเฉˆ, Qemu เจ•เฉ‹เจฒ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจธเจผเจจ TCI (เจ›เฉ‹เจŸเฉ‡ เจ•เฉ‹เจก เจ‡เฉฐเจŸเจฐเจชเฉเจฐเฉ‡เจŸเจฐ) เจฒเจˆ "เจกเจฟเจœเจจเจฐเฉ‡เจŸ" เจตเจฟเจ†เจ–เจฟเจ†เจคเจฎเจ• เจฌเฉˆเจ•เจเจ‚เจก เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ 'เจคเฉ‡ เจ•เจฟเจฎเฉ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจค เจนเฉ‹, เจคเจพเจ‚ เจ‡เฉฑเจ• C เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ•เจพเจซเจผเฉ€ เจนเฉˆเฅค เจ•เฉ€เจตเจฐเจก "เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจค เจนเฉ‹". เจฎเฉˆเจ‚ เจฌเจฆเจ•เจฟเจธเจฎเจค เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจน เจชเจคเจพ เจšเจฒเจฟเจ† เจ•เจฟ TCI เจ†เจชเจฃเฉ‡ เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจ…เจฒเจพเจˆเจจ เจเจ•เจธเฉˆเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจญเจพเจต, เจนเจฐ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจเจ†เจฐเจเจฎ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจขเจพเจ‚เจšเจฟเจ†เจ‚ 'เจคเฉ‡ เจœเจผเจฐเฉ‚เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉฑเจงเจฐเฉ€ เจชเจนเฉเฉฐเจš เจฆเฉ‡ เจจเจพเจฒ, เจ•เจฟเจฎเฉ‚ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจจเฉเจนเจพเจ‚ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ†เจฎ TCG เจฌเฉˆเจ•เจเจ‚เจก เจนเฉˆ เจœเฉ‹ เจจเฉ‡เจŸเจฟเจต เจ•เฉ‹เจก เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ•เฉ€ TCI เจ‰เจนเจจเจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ เจœเจพเจ‚ เจจเจนเฉ€เจ‚ เจ‡เจน เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจตเจพเจฒ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจน เจจเจฟเจ•เจฒเจฟเจ†, TCI เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉเจ เจ…เจœเจฟเจนเจพ เจนเฉ€ เจธเฉฐเจ•เฉ‡เจค เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจ…เจฃ-เจ…เจฒเจพเจˆเจจ เจฐเฉ€เจกเจฟเฉฐเจ— เจฒเจˆ เจซเฉฐเจ•เจธเจผเจจ เจ•เจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจ•เจฟเจฎเฉ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจชเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€เฅค

เจขเฉ‡เจฐ เจคเจฌเจพเจนเฉ€

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, TCI เจคเฉฑเจ• เจ…เจธเฉฐเจ—เจ เจฟเจค เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจ‡เฉฑเจ• เจฎเฉเฉฑเจ– เจฒเฉ‚เจช เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€ เจœเจฟเจธเจจเฉ‚เฉฐ เจฌเจฆเจฒเฉ‡ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ, RCU เจ…เจคเฉ‡ เจ•เฉเจ เจนเฉ‹เจฐ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจธเฉ€เฅค เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจจเจพเจฒ เจ•เจฟเจฎเฉ‚ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเจพเจ‚ -d exec,in_asm,out_asm, เจœเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฆเฉฑเจธเจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจ•เจฟ เจ•เฉ‹เจก เจฆเฉ‡ เจ•เจฟเจนเฉœเฉ‡ เจฌเจฒเจพเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‡เจ† เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจชเฉเจฐเจธเจพเจฐเจฃ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เจน เจตเฉ€ เจฒเจฟเจ–เจฃ เจฒเจˆ เจ•เจฟ เจ—เฉˆเจธเจŸ เจ•เฉ‹เจก เจ•เฉ€ เจธเฉ€, เจ•เฉ€ เจนเฉ‹เจธเจŸ เจ•เฉ‹เจก เจฌเจฃ เจ—เจฟเจ† (เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจฌเจพเจˆเจŸเจ•เฉ‹เจก)เฅค เจ‡เจน เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ•เจˆ เจ…เจจเฉเจตเจพเจฆ เจฌเจฒเจพเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจกเฉ€เจฌเจ—เจฟเฉฐเจ— เจธเฉเจจเฉ‡เจนเจพ เจฒเจฟเจ–เจฆเจพ เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจ‚ เจ›เฉฑเจกเจฟเจ† เจธเฉ€ เจ•เจฟ RCU เจนเฉเจฃ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ เจ…เจคเฉ‡... เจ•เจฐเฉˆเจธเจผ abort() เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ free(). เจซเฉฐเจ•เจธเจผเจจ เจจเจพเจฒ เจ›เฉ‡เฉœเจ›เจพเฉœ เจ•เจฐเจ•เฉ‡ free() เจ…เจธเฉ€เจ‚ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจนเฉ‹เจ เจ•เจฟ เจนเฉ€เจช เจฌเจฒเจพเจ• เจฆเฉ‡ เจธเจฟเจฐเจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจœเฉ‹ เจ•เจฟ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ…เฉฑเจ  เจฌเจพเจˆเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจนเฉˆ, เจฌเจฒเจพเจ• เจฆเฉ‡ เจ†เจ•เจพเจฐ เจœเจพเจ‚ เจ•เฉเจ เจธเจฎเจพเจจ เจฆเฉ€ เจฌเจœเจพเจ, เจ•เฉ‚เฉœเจพ เจธเฉ€เฅค

เจขเฉ‡เจฐ เจฆเจพ เจตเจฟเจจเจพเจธเจผ - เจ•เจฟเฉฐเจจเจพ เจชเจฟเจ†เจฐเจพ... เจ…เจœเจฟเจนเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจ‰เจชเจพเจ… เจนเฉˆ - (เจœเฉ‡ เจธเฉฐเจญเจต เจนเฉ‹เจตเฉ‡) เจ‰เจธเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจคเฉ‹เจ‚, เจ‡เฉฑเจ• เจฎเฉ‚เจฒ เจฌเจพเจˆเจจเจฐเฉ€ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจตเจพเจฒเจ—เฉเจฐเจฟเฉฐเจก เจฆเฉ‡ เจ…เจงเฉ€เจจ เจšเจฒเจพเจ“เฅค เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฌเจพเจ…เจฆ, เจฌเจพเจˆเจจเจฐเฉ€ เจคเจฟเจ†เจฐ เจธเฉ€เฅค เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‰เจธเฉ‡ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจจเจพเจฒ เจฒเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเจพเจ‚ - เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจคเฉฑเจ• เจชเจนเฉเฉฐเจšเจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจธเจผเฉเจฐเฉ‚เจ†เจค เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจตเฉ€ เจ•เจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ. เจ‡เจน เจ•เฉ‹เจเจพ เจนเฉˆ, เจฌเฉ‡เจธเจผเฉฑเจ• - เจœเจผเจพเจนเจฐ เจคเฉŒเจฐ 'เจคเฉ‡, เจธเจฐเฉ‹เจค เจฌเจฟเจฒเจ•เฉเจฒ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ‡ เจจเจนเฉ€เจ‚ เจธเจจ, เจœเฉ‹ เจ•เจฟ เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเฉ‡ เจฅเฉ‹เฉœเฉ‡ เจตเฉฑเจ–เจฐเฉ‡ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจจเฉ‚เฉฐ เจ–เฉ‹เจœเจฟเจ† เจนเฉˆ, เจชเจฐ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจตเฉˆเจฒเจ—เฉเจฐเจฟเฉฐเจก เจนเฉˆ - เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉˆเจ‚ เจ‡เจธ เจฌเฉฑเจ— เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจพเจ‚เจ—เจพ, เจ…เจคเฉ‡ เจซเจฟเจฐ, เจœเฉ‡ เจฎเฉˆเจ‚ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจค เจนเจพเจ‚ , เจ…เจธเจฒเฉ€ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจฎเฉˆเจ‚ Valgrind เจฆเฉ‡ เจ…เจงเฉ€เจจ เจ‰เจนเฉ€ เจšเฉ€เจœเจผ เจšเจฒเจพ เจฐเจฟเจนเจพ เจนเจพเจ‚... Y-y-y, y-y-y, uh-uh, เจ‡เจน เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ†, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจค เจคเฉ‹เจ‚ เจฒเฉฐเจ˜เจฟเจ† เจ…เจคเฉ‡ เจ—เจฒเจค เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจชเจนเฉเฉฐเจš เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจตเฉ€ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจฆเฉ‡ เจฌเจฟเจจเจพเจ‚ เจฎเฉ‚เจฒ เจฌเฉฑเจ— เจจเฉ‚เฉฐ เจชเจฟเฉฑเจ›เฉ‡ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ, เจกเจฟเฉฑเจ—เจฃ เจฆเจพ เจœเจผเจฟเจ•เจฐ เจจเจพ เจ•เจฐเจจเจพเฅค เจœเฉ€เจตเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ, เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจธ เจฒเจˆ เจคเจฟเจ†เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ - เจ‡เฉฑเจ• เจ•เจฐเฉˆเจธเจผเจฟเฉฐเจ— เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจœเจฆเฉ‹เจ‚ เจตเจพเจฒเจ—เฉเจฐเจฟเฉฐเจก เจฆเฉ‡ เจ…เจงเฉ€เจจ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจคเจพเจ‚ เจ•เจฐเฉˆเจธเจผ เจนเฉ‹เจฃเจพ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ•เฉ€ เจธเฉ€ เจ‡เฉฑเจ• เจฐเจนเฉฑเจธ เจนเฉˆเฅค เจฎเฉ‡เจฐเฉ€ เจชเจฐเจฟเจ•เจฒเจชเจจเจพ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจตเจพเจฐ เจธเจผเฉเจฐเฉ‚เจ†เจค เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจ‡เฉฑเจ• เจ•เจฐเฉˆเจธเจผ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฎเฉŒเจœเฉ‚เจฆเจพ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡-เจคเฉ‡เฉœเฉ‡, gdb เจจเฉ‡ เจ•เฉฐเจฎ เจฆเจฟเจ–เจพเจ‡เจ† memset-a เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจตเฉˆเจง เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจจเจพเจฒ mmx, เจœเจพเจ‚ xmm เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจซเจฟเจฐ เจธเจผเจพเจ‡เจฆ เจ‡เจน เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ€ เจ…เจฒเจพเจˆเจจเจฎเฉˆเจ‚เจŸ เจ—เจฒเจคเฉ€ เจธเฉ€, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจธ 'เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเจจเจพ เจ…เจœเฉ‡ เจตเฉ€ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆเฅค

เจ เฉ€เจ• เจนเฉˆ, Valgrind เจ‡เฉฑเจฅเฉ‡ เจฎเจฆเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจœเจพเจชเจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจ˜เจฟเจฃเจพเจ‰เจฃเฉ€ เจšเฉ€เจœเจผ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจˆ - เจนเจฐ เจšเฉ€เจœเจผ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเฉ€ เจœเจพเจชเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจ‡เฉฑเจ• เจ˜เจŸเจจเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ เจฌเจฟเจฒเจ•เฉเจฒ เจ…เจฃเจœเจพเจฃ เจ•เจพเจฐเจจเจพเจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉเจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเฉ‹ เจฒเฉฑเจ–เจพเจ‚ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจธเฉ€เฅค เจ•เจพเจซเฉ€ เจฆเฉ‡เจฐ เจคเฉฑเจ• เจ‡เจน เจตเฉ€ เจธเจฎเจ เจจเจนเฉ€เจ‚ เจ† เจฐเจฟเจนเจพ เจธเฉ€ เจ•เจฟ เจ•เจฟเจธ เจคเจฐเฉเจนเจพเจ‚ เจชเจนเฉเฉฐเจšเจฃเจพ เจนเฉˆเฅค เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจฌเฉˆเจ  เจ•เฉ‡ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐเจจเจพ เจชเจฟเจ†เฅค เจธเจฟเจฐเจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจœเจฟเจธ เจจเจพเจฒ เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ‰เจธ เจจเฉ‚เฉฐ เจ›เจพเจชเจฃ เจคเฉ‹เจ‚ เจชเจคเจพ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เจฟเจธเฉ‡ เจธเฉฐเจ–เจฟเจ† เจตเจฐเจ—เจพ เจจเจนเฉ€เจ‚ เจธเฉ€, เจธเจ—เฉ‹เจ‚ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเจพ เจฌเจพเจˆเจจเจฐเฉ€ เจกเฉ‡เจŸเจพ เจนเฉˆเฅค เจ…เจคเฉ‡, เจตเฉ‡เจ–เฉ‹ เจ…เจคเฉ‡ เจตเฉ‡เจ–เฉ‹, เจ‡เจน เจฌเจพเจˆเจจเจฐเฉ€ เจธเจคเจฐ BIOS เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฒเฉฑเจญเฉ€ เจ—เจˆ เจธเฉ€ - เจญเจพเจต, เจนเฉเจฃ เจ‡เจน เจตเจพเจœเจฌ เจญเจฐเฉ‹เจธเฉ‡ เจจเจพเจฒ เจ•เจนเจฟเจฃเจพ เจธเฉฐเจญเจต เจธเฉ€ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจฌเจซเจฐ เจ“เจตเจฐเจซเจฒเฉ‹ เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจน เจตเฉ€ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‡เจธ เจฌเจซเจฐ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจ–เฉˆเจฐ, เจซเจฟเจฐ เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ - Emscripten เจตเจฟเฉฑเจš, เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจเจกเจฐเฉˆเฉฑเจธ เจธเจชเฉ‡เจธ เจฆเจพ เจ•เฉ‹เจˆ เจฐเฉˆเจ‚เจกเจฎเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจ›เฉ‡เจ• เจตเฉ€ เจจเจนเฉ€เจ‚ เจนเจจ, เจ‡เจธเจฒเจˆ เจคเฉเจธเฉ€เจ‚ เจ†เจ–เจฐเฉ€ เจฒเจพเจ‚เจš เจคเฉ‹เจ‚ เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจฆเฉเจ†เจฐเจพ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจก เจฆเฉ‡ เจฎเฉฑเจง เจตเจฟเฉฑเจš เจ•เจฟเจคเฉ‡ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹, เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹, เจ…เจคเฉ‡, เจœเฉ‡เจ•เจฐ เจ‡เจน เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจตเจฟเจšเจพเจฐ เจฒเจˆ เจญเฉ‹เจœเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹เฅค เจ‡เจน เจธเฉฑเจš เจนเฉˆ เจ•เจฟ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฌเจฆเฉ€เจฒเฉ€ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฒเจฟเฉฐเจ• เจนเฉ‹เจฃ เจฒเจˆ เจ•เฉเจ เจฎเจฟเฉฐเจŸ เจฒเฉฑเจ—เจฆเฉ‡ เจนเจจ, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹? เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจ‡เฉฑเจ• เจ–เจพเจธ เจฒเจพเจˆเจจ เจฒเฉฑเจญเฉ€ เจ—เจˆ เจธเฉ€ เจœเฉ‹ เจ…เจธเจฅเจพเจˆ เจฌเจซเจฐ เจคเฉ‹เจ‚ เจ—เฉˆเจธเจŸ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš BIOS เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆ - เจ…เจคเฉ‡, เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจฌเจซเจฐ เจตเจฟเฉฑเจš เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจฅเจพเจ‚ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค เจ‰เจธ เจ…เจœเฉ€เจฌ เจฌเจซเจฐ เจชเจคเฉ‡ เจฆเฉ‡ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจนเฉ‹เจ‡เจ† qemu_anon_ram_alloc เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš oslib-posix.c - เจ‡เฉฑเจฅเฉ‡ เจคเจฐเจ• เจ‡เจน เจธเฉ€: เจ•เจˆ เจตเจพเจฐ เจชเจคเฉ‡ เจจเฉ‚เฉฐ 2 MB เจ†เจ•เจพเจฐ เจฆเฉ‡ เจตเฉฑเจกเฉ‡ เจชเฉฐเจจเฉ‡ เจจเจพเจฒ เจ‡เจ•เจธเจพเจฐ เจ•เจฐเจจเจพ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจชเฉเฉฑเจ›เจพเจ‚เจ—เฉ‡ mmap เจชเจนเจฟเจฒเจพเจ‚ เจฅเฉ‹เฉœเจพ เจนเฉ‹เจฐ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจฎเจฆเจฆ เจจเจพเจฒ เจตเจพเจงเฉ‚ เจตเจพเจชเจธ เจ•เจฐเจพเจ‚เจ—เฉ‡ munmap. เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ…เจœเจฟเจนเฉ€ เจ…เจฒเจพเจˆเจจเจฎเฉˆเจ‚เจŸ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ 2 MB เจฆเฉ€ เจฌเจœเจพเจ เจจเจคเฉ€เจœเจพ เจฆเจฐเจธเจพเจตเจพเจ‚เจ—เฉ‡ getpagesize() - mmap เจ‡เจน เจ…เจœเฉ‡ เจตเฉ€ เจ‡เฉฑเจ• เจ…เจฒเจพเจˆเจจ เจเจกเจฐเฉˆเฉฑเจธ เจฆเฉ‡เจตเฉ‡เจ—เจพ... เจ‡เจธ เจฒเจˆ Emscripten เจตเจฟเฉฑเจš mmap เจฌเจธ เจ•เจพเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ malloc, เจชเจฐ เจฌเฉ‡เจธเจผเฉฑเจ• เจ‡เจน เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจ‡เจ•เจธเจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เฉฑเจ• เจฌเฉฑเจ— เจœเจฟเจธ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉเจ เจฎเจนเฉ€เจจเจฟเจ†เจ‚ เจฒเจˆ เจจเจฟเจฐเจพเจธเจผ เจ•เฉ€เจคเจพ เจธเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเจฌเจฆเฉ€เจฒเฉ€ เจฆเฉเจ†เจฐเจพ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ ะดะฒัƒั… เจฒเจพเจˆเจจเจพเจ‚

เจ•เจพเจฒเจฟเฉฐเจ— เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚

เจ…เจคเฉ‡ เจนเฉเจฃ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ•เฉเจ เจ—เจฟเจฃ เจฐเจฟเจนเจพ เจนเฉˆ, เจ•เจฟเจฎเฉ‚ เจ•เฉเจฐเฉˆเจธเจผ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ, เจชเจฐ เจธเจ•เฉเจฐเฉ€เจจ เจšเจพเจฒเฉ‚ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€, เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฒเฉ‚เจช เจตเจฟเฉฑเจš เจšเจฒเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจฃเจพ เจ•เจฐเจฆเจพ เจนเฉˆ -d exec,in_asm,out_asm. เจ‡เฉฑเจ• เจชเจฐเจฟเจ•เจฒเจชเจจเจพ เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจˆ เจนเฉˆ: เจŸเจพเจˆเจฎเจฐ เจฐเฉเจ•เจพเจตเจŸเจพเจ‚ (เจœเจพเจ‚, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจธเจพเจฐเฉ‡ เจฐเฉเจ•เจพเจตเจŸเจพเจ‚) เจจเจนเฉ€เจ‚ เจชเจนเฉเฉฐเจšเจฆเฉ€เจ†เจ‚เฅค เจ…เจคเฉ‡ เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฎเฉ‚เจฒ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจคเฉ‹เจ‚ เจฐเฉเจ•เจพเจตเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจนเจฆเฉ‡ เจนเฉ‹, เจœเฉ‹ เจ•เจฟเจธเฉ‡ เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจคเจธเจตเฉ€เจฐ เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆ. เจชเจฐ เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจœเจตเจพเจฌ เจจเจนเฉ€เจ‚ เจธเฉ€: เจ‰เจชเจฐเฉ‹เจ•เจค เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจจเจพเจฒ เจœเจพเจฐเฉ€ เจ•เฉ€เจคเฉ‡ เจŸเจฐเฉ‡เจธ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจŸเฉเจฐเฉˆเจœเฉˆเจ•เจŸเจฐเฉ€เจœเจผ เจฌเจนเฉเจค เจœเจฒเจฆเฉ€ เจตเฉฑเจ– เจนเฉ‹ เจ—เจ เจธเจจเฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจ•เจฟเจนเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจฒเจพเจ‚เจšเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฐเจฟเจ•เจพเจฐเจก เจ•เฉ€เจคเฉ‡ เจ—เจ เจฆเฉ€ เจคเฉเจฒเจจเจพ emrun เจฎเฉ‚เจฒ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเจพเจฒ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฎเจ•เฉˆเจจเฉ€เจ•เจฒ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจฌเจฟเจฒเจ•เฉเจฒ เจจเจนเฉ€เจ‚ เจชเจคเจพ เจ•เจฟ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจ•เจฟเจตเฉ‡เจ‚ เจœเฉเฉœเจฆเจพ เจนเฉˆ emrun, เจชเจฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเจฟเฉฑเจš เจ•เฉเจ เจฒเจพเจˆเจจเจพเจ‚ เจฎเฉเฉœ เจตเจฟเจตเจธเจฅเจฟเจค เจนเฉ‹เจฃ เจฒเจˆ เจจเจฟเจ•เจฒเจฆเฉ€เจ†เจ‚ เจนเจจ, เจ‡เจธเจฒเจˆ เจกเจฟเจซ เจตเจฟเฉฑเจš เจ…เฉฐเจคเจฐ เจ…เจœเฉ‡ เจ‡เจน เจฎเฉฐเจจเจฃ เจฆเจพ เจ•เฉ‹เจˆ เจ•เจพเจฐเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจŸเฉเจฐเฉˆเจœเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจตเฉฑเจ– เจนเฉ‹ เจ—เจˆเจ†เจ‚ เจนเจจเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจ…เจจเฉเจธเจพเจฐ ljmpl เจตเฉฑเจ–-เจตเฉฑเจ– เจชเจคเจฟเจ†เจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจคเจฌเจฆเฉ€เจฒเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉฑเจ–เจฐเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ: เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจธเจนเจพเจ‡เจ• เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจนเจฆเจพเจ‡เจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจฆเฉ‚เจœเฉ‡ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ—เฉ‚เจ—เจฒ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ•เฉ‹เจก เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจœเฉ‹ เจ‡เจนเจจเจพเจ‚ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจฆเจพ เจ…เจจเฉเจตเจพเจฆ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ, เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจฐเจœเจฟเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ‡เจธ เจคเฉ‹เจ‚ เจคเฉเจฐเฉฐเจค เจชเจนเจฟเจฒเจพเจ‚ cr0 เจ‡เฉฑเจ• เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€ - เจ‡เฉฑเจ• เจธเจนเจพเจ‡เจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ - เจœเจฟเจธ เจจเฉ‡ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ, เจ‡เจน เจ•เจฟ js เจธเฉฐเจธเจ•เจฐเจฃ เจ•เจฆเฉ‡ เจตเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฟเจ†เฅค เจชเจฐ เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจฆเฉ€ เจ‡เจ• เจนเฉ‹เจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฌเจฐเจฆเจพเจธเจผเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เจธเจฆเฉ€ เจเจฟเจœเจ• เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ call TCI เจตเจฟเฉฑเจš, เจœเฉ‹ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจซเฉฐเจ•เจธเจผเจจ เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจŸเจพเจˆเจช เจนเฉเฉฐเจฆเจพ เจนเฉˆ long long f(int arg0, .. int arg9) - เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจธเจนเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเจพเจฒ เจฌเฉเจฒเจพเจ‡เจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ‡เจธ เจจเจฟเจฏเจฎ เจฆเฉ€ เจ‰เจฒเฉฐเจ˜เจฃเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจœเจพเจ‚ เจคเจพเจ‚ เจ•เฉเจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ (เจœเฉ‹ เจ•เจฟ เจšเฉฐเจ—เจพ เจนเฉˆ) เจœเจพเจ‚ เจ—เจฒเจค เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจœเจพเจตเฉ‡เจ—เจพ (เจœเฉ‹ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐเจจ เจฒเจˆ เจ‰เจฆเจพเจธ เจนเฉ‹เจตเฉ‡เจ—เจพ)เฅค เจ‡เฉฑเจ• เจคเฉ€เจœเจพ เจตเจฟเจ•เจฒเจช เจตเฉ€ เจนเฉˆ - เจฐเฉˆเจชเจฐเจพเจ‚ เจฆเฉ€ เจชเฉ€เฉœเฉเจนเฉ€ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“ เจœเฉ‹ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฆเฉ‡/เจนเจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจชเจฐ เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡ เจ‡เจน เจฐเฉˆเจชเจฐ เจฌเจนเฉเจค เจธเจพเจฐเฉ€ เจฅเจพเจ‚ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจจ, เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ•เจฟ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฎเฉˆเจจเฉ‚เฉฐ เจธเจฟเจฐเจซ เจธเฉŒ เจคเฉ‹เจ‚ เจตเฉฑเจง เจฐเฉˆเจชเจฐเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจน เจ‡เจ•เฉฑเจฒเจพ เจฌเจนเฉเจค เจฆเฉเจ–เจฆเจพเจˆ เจนเฉˆ, เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ—เฉฐเจญเฉ€เจฐ เจธเจฎเฉฑเจธเจฟเจ† เจจเจฟเจ•เจฒเฉ€: เจฐเฉˆเจชเจฐ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš, เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฟเจ† เจ…เจคเฉ‡ เจฌเจฆเจฒเจฟเจ† เจ—เจฟเจ†, เจชเจฐ เจ•เจˆ เจตเจพเจฐ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจตเจพเจฒเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจธเฉ€ - เจ เฉ€เจ• เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจตเจฟเฉฑเจš เจฎเฉ‡เจฐเฉ€ libffi เจฒเจพเจ—เฉ‚เจ•เจฐเจจ. เจญเจพเจต, เจ•เฉเจ เจธเจนเจพเจ‡เจ•เจพเจ‚ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจšเจฒเจพเจ‡เจ† เจจเจนเฉ€เจ‚ เจ—เจฟเจ† เจธเฉ€.

เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ•เจฟเจฎเฉ‚ เจ•เฉ‹เจฒ เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฎเจฆเจฆเจ—เจพเจฐเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจฎเจธเจผเฉ€เจจ-เจชเฉœเฉเจนเจจเจฏเฉ‹เจ— เจธเฉ‚เจšเฉ€เจ†เจ‚ เจนเจจ

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> เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจฎเฉˆเจจเฉ‚เฉฐ เจ†เจ–เจฐเจ•เจพเจฐ เจ•เฉฐเจฎ 'เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพ เจฎเจฟเจฒเจฟเจ† pyparsing, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ–เฉ€ เจ—เจˆ เจธเฉ€ เจœเฉ‹ เจฌเจฟเจฒเจ•เฉเจฒ เจ‰เจนเจจเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจฐเฉˆเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจœเจฟเจนเจจเจพเจ‚ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ, เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจœเจพเจชเจฆเจพ เจธเฉ€. เจ‡เจน เจ‡เจธ เจฒเจˆ เจœเจพเจชเจฆเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจ•เฉเจฐเฉ€เจจ เจจเฉ‚เฉฐ เจ•เจฆเฉ‡ เจตเฉ€ เจธเจผเฉเจฐเฉ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจนเจพเจฒเจพเจ‚เจ•เจฟ memtest86+ เจฎเฉ‚เจฒ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจตเจฟเฉฑเจš เจšเฉฑเจฒเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจธเฉ€เฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจ•เจฐเจจเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉˆ เจ•เจฟ Qemu เจฌเจฒเจพเจ• I/O เจ•เฉ‹เจก เจ•เฉ‹เจฐเฉ‹เจŸเฉ€เจจ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค Emscripten เจฆเจพ เจ†เจชเจฃเจพ เจฌเจนเฉเจค เจนเฉ€ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจนเฉˆ, เจชเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ Qemu เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจธเจฎเจฐเจฅเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: Qemu เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ -kernel, -initrd, -append, เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจฒเฉ€เจจเจ•เจธ เจจเฉ‚เฉฐ เจฌเฉ‚เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจพเจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, memtest86+, เจฌเจฒเจพเจ• เจœเฉฐเจคเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚เฅค เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ: เจฎเฉ‚เจฒ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ -nographic, เจ…เจคเฉ‡ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจคเฉ‹เจ‚ เจŸเจฐเจฎเฉ€เจจเจฒ เจคเฉฑเจ• เจ•เฉ‹เจˆ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเจนเฉ€เจ‚ เจœเจฟเฉฑเจฅเฉ‹เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ emrun, เจจเจนเฉ€เจ‚ เจ†เจ‡เจ†เฅค เจญเจพเจต, เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ: เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจœเจพเจ‚ เจ—เฉเจฐเจพเจซเจฟเจ•เจธ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจน เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจฅเฉ‹เฉœเจพ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจจ เจฒเจˆ เจ†เจ‡เจ†. เจ‡เจน เจชเจคเจพ เจšเจฒเจฟเจ† เจ•เจฟ "เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจธเฉŒเจ‚ เจจเจนเฉ€เจ‚ เจฐเจฟเจนเจพ เจนเฉˆ, เจชเจฐ เจฌเจธ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจเจชเจ• เจฐเจฟเจนเจพ เจนเฉˆ," เจ…เจคเฉ‡ เจฒเจ—เจญเจ— เจชเฉฐเจœ เจฎเจฟเฉฐเจŸเจพเจ‚ เจฌเจพเจ…เจฆ เจ•เจฐเจจเจฒ เจจเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจ•เฉฐเจธเฉ‹เจฒ เจ‰เฉฑเจคเฉ‡ เจธเฉเฉฑเจŸ เจฆเจฟเฉฑเจคเจพ เจ…เจคเฉ‡ เจฒเจŸเจ•เจฃเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฟเจ†เฅค เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจพเจจเฉ‚เฉฐ SDL2 เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ–เฉ‹เจฆเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ. เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจฎเฉˆเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจชเจคเจพ เจ•เจฟ เจ‡เจธ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ•เฉเจ เจฅเจพเจตเจพเจ‚ 'เจคเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจชเจฟเจ†เฅค เจ•เจฟเจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจฒเจพเจˆเจจ parallel0 เจ‡เฉฑเจ• เจจเฉ€เจฒเฉ‡ เจฌเฉˆเจ•เจ—เฉเจฐเจพเจ‰เจ‚เจก 'เจคเฉ‡ เจธเจ•เฉเจฐเฉ€เจจ 'เจคเฉ‡ เจซเจฒเฉˆเจธเจผ เจนเฉ‹เจˆ, เจœเจฟเจธ เจจเฉ‡ เจ•เฉเจ เจตเจฟเจšเจพเจฐ เจธเฉเจเจพเจเฅค เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ‡เจน เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจ‡เจ† เจ•เจฟ เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจธเฉ€ เจ•เจฟ เจ•เจฟเจฎเฉ‚ เจ‡เฉฑเจ• เจญเฉŒเจคเจฟเจ• เจตเจฟเฉฐเจกเฉ‹ เจตเจฟเฉฑเจš เจ•เจˆ เจตเจฐเจšเฉเจ…เจฒ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจ–เฉ‹เจฒเฉเจนเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ Ctrl-Alt-n เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจ‡เจน เจจเฉ‡เจŸเจฟเจต เจฌเจฟเจฒเจก เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ Emscripten เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚เฅค เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเฉ‡เจฒเฉ‹เฉœเฉ€ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจคเฉ‹เจ‚ เจ›เฉเจŸเจ•เจพเจฐเจพ เจชเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ -monitor none -parallel none -serial none เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• เจซเฉเจฐเฉ‡เจฎ 'เจคเฉ‡ เจชเฉ‚เจฐเฉ€ เจธเจ•เฉเจฐเฉ€เจจ เจจเฉ‚เฉฐ เจœเจผเจฌเจฐเจฆเจธเจคเฉ€ เจจเจพเจฒ เจฆเฉเจฌเจพเจฐเจพ เจ–เจฟเฉฑเจšเจฃ เจฆเฉ€เจ†เจ‚ เจนเจฆเจพเจ‡เจคเจพเจ‚, เจธเจญ เจ•เฉเจ เจ…เจšเจพเจจเจ• เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ•เฉ‹เจฐเฉ‹เจŸเฉ€เจจ

เจ‡เจธ เจฒเจˆ, เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจตเฉ€ เจฆเจฟเจฒเจšเจธเจช เจธเจฟเฉฐเจ—เจฒ-เจซเจฒเจพเจชเฉ€ เจจเจนเฉ€เจ‚ เจšเจฒเจพ เจธเจ•เจฆเฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจ•เฉ‹เจˆ เจฌเจฒเจพเจ• I/O เจจเจนเฉ€เจ‚ เจนเฉˆ - เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจฐเจŸเฉ€เจจ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ•เจฟเจฎเฉ‚ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจˆ เจ•เฉ‹เจฐเจŸเฉ€เจจ เจฌเฉˆเจ•เจเจ‚เจก เจนเจจ, เจชเจฐ เจœเจพเจตเจพ เจธเจ•เฉเจฐเจฟเจชเจŸ เจ…เจคเฉ‡ เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจคเฉ€ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจคเฉเจธเฉ€เจ‚ เจธเจŸเฉˆเจ• เจจเฉ‚เฉฐ เจœเฉเจ—เจฒ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ "เจธเจญ เจ•เฉเจ เจ–เจคเจฎ เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆ, เจชเจฒเจพเจธเจŸเจฐ เจนเจŸเจพเจ‡เจ† เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ," เจชเจฐ เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเจฐ เจšเฉ€เจœเจผ เจฆเจพ เจงเจฟเจ†เจจ เจฐเฉฑเจ–เจฟเจ† เจนเฉˆ. เจ‡เจน เจ•เจพเจซเจผเฉ€ เจฎเจœเจผเจพเจ•เฉ€เจ† เจคเฉŒเจฐ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ: เจ†เจ“ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจธเจผเฉฑเจ•เฉ€ เจซเฉฐเจ•เจธเจผเจจ เจ•เจพเจฒ เจ•เจฐเฉ€เจ emscripten_sleep เจ…เจคเฉ‡ เจ•เจˆ เจนเฉ‹เจฐ Asyncify เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจจเจพเจฒ เจนเฉ€ เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจ•เจพเจฒเจพเจ‚ เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจซเฉฐเจ•เจธเจผเจจ เจฒเจˆ เจ•เจพเจฒเจพเจ‚ เจœเจฟเฉฑเจฅเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจฆเฉ‹ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจŸเฉˆเจ• เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจนเฉเจฃ, เจนเจฐ เจ‡เฉฑเจ• เจธเจผเฉฑเจ•เฉ€ เจ•เจพเจฒ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ…เจธเจฟเฉฐเจ• เจธเฉฐเจฆเจฐเจญ เจšเฉเจฃเจพเจ‚เจ—เฉ‡, เจ…เจคเฉ‡ เจ•เจพเจฒ เจคเฉ‹เจ‚ เจคเฉเจฐเฉฐเจค เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจœเจพเจ‚เจš เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ•เจฟ เจ•เฉ€ เจ‡เฉฑเจ• เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจ•เจพเจฒ เจ†เจˆ เจนเฉˆ, เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ‡เจน เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจธเจพเจฐเฉ‡ เจธเจฅเจพเจจเจ• เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจ…เจธเจฟเฉฐเจ• เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ‡เจน เจฆเจฐเจธเจพเจเจ—เจพ เจ•เจฟ เจ•เจฟเจนเฉœเจพ เจซเฉฐเจ•เจธเจผเจจ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจจเฉ‚เฉฐ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจจ เจฒเจˆ เจœเจฆเฉ‹เจ‚ เจธเจพเจจเฉ‚เฉฐ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจซเฉฐเจ•เจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจจเจฟเจ•เจฒเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจชเฉเจฐเจญเจพเจต เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจฆเฉ€ เจ—เฉเฉฐเจœเจพเจ‡เจธเจผ เจนเฉˆ เจฌเจฐเจฌเจพเจฆเฉ€ - เจ‡เฉฑเจ• เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจ•เจพเจฒ เจคเฉ‹เจ‚ เจตเจพเจชเจธ เจ†เจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃ เจฆเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจฒเจˆ, เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ‡เฉฑเจ• เจธเจผเฉฑเจ•เฉ€ เจ•เจพเจฒ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ‡ "เจธเจŸเฉฑเจฌเจธ" เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ โ€” เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ: เจœเฉ‡เจ•เจฐ n เจธเจผเฉฑเจ•เฉ€ เจ•เจพเจฒเจพเจ‚ เจนเจจ, เจคเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ n/2 เจตเจฟเฉฑเจš เจซเฉˆเจฒเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค เจตเจพเจฐ โ€” เจ‡เจน เจ…เจœเฉ‡ เจตเฉ€ เจนเฉˆ, เจœเฉ‡เจ•เจฐ เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจ‡เจน เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‹ เจ•เจฟ เจนเจฐเฉ‡เจ• เจธเฉฐเจญเจพเจตเฉ€ เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจ•เจพเจฒ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจ•เฉเจ เจฒเฉ‹เจ•เจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจชเจพเจˆเจฅเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเฉ€ เจฒเจฟเจ–เจฃเฉ€ เจชเจˆ, เจœเฉ‹ เจ•เจฟ เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจตเจฐเจคเฉ‡ เจ—เจ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจฆเจฟเฉฑเจคเฉ‡ เจธเฉˆเฉฑเจŸ เจฆเฉ‡ เจ…เจงเจพเจฐ 'เจคเฉ‡ เจœเฉ‹ เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ "เจ…เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเฉ€ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจจเจนเฉ€เจ‚ เจฆเจฟเฉฐเจฆเฉ‡" (เจ…เจฐเจฅเจพเจค, เจธเจŸเฉˆเจ• เจชเฉเจฐเฉ‹เจฎเฉ‹เจธเจผเจจ เจ…เจคเฉ‡ เจ‰เจน เจธเจญ เจ•เฉเจ เจœเฉ‹ เจฎเฉˆเจ‚ เจนเฉเจฃเฉ‡ เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจนเฉˆ, เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ), เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ•เจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉเจ†เจฐเจพ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจฃเจกเจฟเฉฑเจ  เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ‡เจนเจจเจพเจ‚ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจธ เจจเจพ เจฎเฉฐเจจเจฟเจ† เจœเจพเจตเฉ‡เฅค เจ…เจคเฉ‡ เจซเจฟเจฐ 60 MB เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ JS เจซเจพเจˆเจฒเจพเจ‚ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจนเจจ - เจ†เจ“ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ 30 เจ•เจนเฉ€เจ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจธเจฅเจพเจชเจค เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€, เจ…เจคเฉ‡ เจ…เจšเจพเจจเจ• เจฒเจฟเฉฐเจ•เจฐ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจพเจนเจฐ เจธเฉเฉฑเจŸ เจฆเจฟเฉฑเจคเจพ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเฉ€. -O3. เจฎเฉˆเจ‚ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ•เฉ‹เจก เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเจพเจ‚, เจ…เจคเฉ‡ Chromium เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจ–เจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจซเจฟเจฐ เจ—เจฒเจคเฉ€ เจจเจพเจฒ เจฆเฉ‡เจ–เจฟเจ† เจ•เจฟ เจ‰เจน เจ•เฉ€ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€... เจ–เฉˆเจฐ, เจฎเฉˆเจ‚ เจ•เฉ€ เจ•เจนเจฟ เจธเจ•เจฆเจพ เจนเจพเจ‚, เจœเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ 500+ MB เจœเจพเจตเจพเจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจธเฉ‹เจš-เจธเจฎเจ เจ•เฉ‡ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เจฟเจนเจพ เจ—เจฟเจ† เจนเฉเฉฐเจฆเจพ เจคเจพเจ‚ เจฎเฉˆเจ‚ เจตเฉ€ เจซเฉเจฐเฉ€เจœเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเจพเฅค

เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, Asyncify เจธเจฎเจฐเจฅเจจ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจšเฉˆเจ• เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจพเจฒ เจฆเฉ‹เจธเจคเจพเจจเจพ เจจเจนเฉ€เจ‚ เจธเจจ longjmp-s เจœเฉ‹ เจตเจฐเจšเฉเจ…เจฒ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจชเจฐ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ‡ เจชเฉˆเจš เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจœเฉ‹ เจ‡เจนเจจเจพเจ‚ เจœเจพเจ‚เจšเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเฉฐเจฆเจฐเจญเจพเจ‚ เจจเฉ‚เฉฐ เจœเจผเจฌเจฐเจฆเจธเจคเฉ€ เจฐเฉ€เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจธเฉ€, เจ•เฉ‹เจก เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เฉฑเจ• เจ…เจœเฉ€เจฌ เจšเฉ€เจœเจผ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจˆ: เจ•เจˆ เจตเจพเจฐ เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจœเจพเจ‚เจš เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจธเฉ€ - เจ‰เจนเฉ€ เจœเฉ‹ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ•เฉเจฐเฉˆเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‡เจ•เจฐ, เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจคเจฐเจ• เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ‡เจธเจจเฉ‚เฉฐ เจฌเจฒเฉŒเจ• เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ - เจ•เจฟเจธเฉ‡ เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉˆเจชเจšเจฐ เจ•เฉ€เจคเฉ‡ เจฎเจฟเจŠเจŸเฉ‡เจ•เจธ เจจเฉ‚เฉฐ เจซเฉœเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€. เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจน เจธเฉ€เจฐเฉ€เจ…เจฒเจพเจˆเจœเจผเจก เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเจฐเจ•เจชเฉ‚เจฐเจจ เจธเจฎเฉฑเจธเจฟเจ† เจจเจนเฉ€เจ‚ เจธเฉ€ - เจฎเฉˆเจ‚ เจธเจฟเจฐเจซเจผ Emscripten เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฎเฉเฉฑเจ– เจฒเฉ‚เจช เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€, เจชเจฐ เจ•เจˆ เจตเจพเจฐ เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจ•เจพเจฒ เจธเจŸเฉˆเจ• เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ–เฉ‹เจฒเฉเจน เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เจธ เจธเจฎเฉ‡เจ‚ เจ‡เจน เจ…เจธเจซเจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค setTimeout เจฎเฉเฉฑเจ– เจฒเฉ‚เจช เจคเฉ‹เจ‚ - เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ•เฉ‹เจก เจชเจฟเจ›เจฒเฉ€ เจฆเฉเจนเจฐเจพเจ… เจจเฉ‚เฉฐ เจ›เฉฑเจกเฉ‡ เจฌเจฟเจจเจพเจ‚ เจฎเฉเฉฑเจ– เจฒเฉ‚เจช เจฆเฉเจนเจฐเจพเจ… เจตเจฟเฉฑเจš เจฆเจพเจ–เจฒ เจนเฉ‹เจ‡เจ†เฅค เจ‡เฉฑเจ• เจ…เจจเฉฐเจค เจฒเฉ‚เจช 'เจคเฉ‡ เจฎเฉเฉœ เจฒเจฟเจ–เจฟเจ† เจ…เจคเฉ‡ emscripten_sleep, เจ…เจคเฉ‡ mutexes เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฌเฉฐเจฆ เจนเฉ‹ เจ—เจˆเจ†เจ‚เฅค เจ•เฉ‹เจก เจนเฉ‹เจฐ เจตเฉ€ เจฒเจพเจœเจผเฉ€เจ•เจฒ เจฌเจฃ เจ—เจฟเจ† เจนเฉˆ - เจ†เจ–เจฐเจ•เจพเจฐ, เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ•เฉเจ เจ•เฉ‹เจก เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจ…เจ—เจฒเฉ‡ เจเจจเฉ€เจฎเฉ‡เจธเจผเจจ เจซเจฐเฉ‡เจฎ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ - เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจธเจฟเจฐเจซ เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจ•เฉเจฐเฉ€เจจ เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ เจคเฉ‡ เจ…เจชเจกเฉ‡เจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจ‡เฉฑเจฅเฉ‡ เจจเจนเฉ€เจ‚ เจฐเฉเจ•เฉ€เจ†เจ‚: เจ•เจˆ เจตเจพเจฐ เจ•เจฟเจฎเฉ‚ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจ…เจชเจตเจพเจฆ เจœเจพเจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจšเฉเฉฑเจชเจšเจพเจช เจธเจฎเจพเจชเจค เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‰เจธ เจชเจฒ 'เจคเฉ‡ เจฎเฉˆเจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ, เจชเจฐ, เจ…เฉฑเจ—เฉ‡ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉˆเจ‚ เจ•เจนเจพเจ‚เจ—เจพ เจ•เจฟ เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจธเฉ€: เจ•เฉ‹เจฐเจŸเฉ€เจจ เจ•เฉ‹เจก, เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจตเจฐเจคเจฆเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ setTimeout (เจœเจพเจ‚ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ“เจจเฉ€ เจตเจพเจฐ เจจเจนเฉ€เจ‚ เจœเจฟเฉฐเจจเฉ€ เจคเฉเจธเฉ€เจ‚ เจธเฉ‹เจš เจธเจ•เจฆเฉ‡ เจนเฉ‹): เจซเฉฐเจ•เจธเจผเจจ emscripten_yield เจฌเจธ เจ…เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจธ เจ•เจพเจฒ เจซเจฒเฉˆเจ— เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจธเจพเจฐเฉ€ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ emscripten_coroutine_next เจ‡เฉฑเจ• เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจซเฉฐเจ•เจธเจผเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ: เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจซเจฒเฉˆเจ— เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจธเจจเฉ‚เฉฐ เจฐเฉ€เจธเฉˆเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจจเฉ‚เฉฐ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ‰เฉฑเจฅเฉ‡ เจคเจฌเจฆเฉ€เจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฏเจพเจจเฉ€ เจธเจŸเฉˆเจ• เจฆเจพ เจชเฉเจฐเจšเจพเจฐ เจ‰เฉฑเจฅเฉ‡ เจนเฉ€ เจ–เจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจธเฉ€ เจ•เจฟ เจตเจฐเจคเฉ‹เจ‚-เจฌเจพเจ…เจฆ-เจฎเฉเจ•เจค เจฆเฉ‡ เจ•เจพเจฐเจจ, เจœเฉ‹ เจ•เจฟ เจ‰เจฆเฉ‹เจ‚ เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ† เจœเจฆเฉ‹เจ‚ เจ•เฉ‹เจฐเฉ‹เจŸเฉ€เจจ เจชเฉ‚เจฒ เจจเฉ‚เฉฐ เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ…เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€ เจ•เจฟ เจฎเฉˆเจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจ•เฉ‹เจฐเฉ‹เจŸเฉ€เจจ เจฌเฉˆเจ•เจเจ‚เจก เจคเฉ‹เจ‚ เจ•เฉ‹เจก เจฆเฉ€ เจ‡เฉฑเจ• เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจฒเจพเจˆเจจ เจฆเฉ€ เจจเจ•เจฒ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€, เจซเฉฐเจ•เจธเจผเจจ. qemu_in_coroutine เจธเฉฑเจš เจตเจพเจชเจธ เจ†เจ‡เจ† เจœเจฆเฉ‹เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เจธเจจเฉ‚เฉฐ เจ—เจฒเจค เจตเจพเจชเจธ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€เฅค เจ‡เจธ เจ•เจพเจฐเจจ เจ‡เฉฑเจ• เจ•เจพเจฒ เจนเฉ‹เจˆ emscripten_yield, เจœเจฟเจธ เจฆเฉ‡ เจ‰เฉฑเจชเจฐ เจธเจŸเฉˆเจ• 'เจคเฉ‡ เจ•เฉ‹เจˆ เจจเจนเฉ€เจ‚ เจธเฉ€ emscripten_coroutine_next, เจธเจŸเฉˆเจ• เจฌเจนเฉเจค เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ†, เจชเจฐ เจจเจนเฉ€เจ‚ setTimeout, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจฟเจนเจพ เจนเฉˆ, เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€.

JavaScript เจ•เฉ‹เจก เจฌเจฃเจพเจ‰เจฃเจพ

เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡, เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจตเจพเจ…เจฆเจพ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ "เจ•เฉ€เจฎเฉ‡ เจนเฉ‹เจ เจฎเฉ€เจŸ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจฎเฉ‹เฉœเจจเจพ." เจธเจš เจตเจฟเฉฑเจš เจจเจนเฉ€. เจฌเฉ‡เจธเจผเฉฑเจ•, เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš Qemu เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš Node.js, เจคเจพเจ‚, เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, Qemu เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจพเจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ—เจฒเจค JavaScript เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจชเจฐ เจซเจฟเจฐ เจตเฉ€, เจ•เฉเจ เจ•เจฟเจธเจฎ เจฆเจพ เจ‰เจฒเจŸเจพ เจชเจฐเจฟเจตเจฐเจคเจจ.

เจชเจนเจฟเจฒเจพเจ‚, เจ•เจฟเจฎเฉ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพเฅค เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจฎเจพเจซเจผ เจ•เจฐเฉ‹: เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจชเฉ‡เจธเจผเฉ‡เจตเจฐ Qemu เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเจนเฉ€เจ‚ เจนเจพเจ‚ เจ…เจคเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจธเจฟเฉฑเจŸเฉ‡ เจ•เฉเจ เจฅเจพเจตเจพเจ‚ 'เจคเฉ‡ เจ—เจฒเจค เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ, "เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€ เจฆเฉ€ เจฐเจพเจ เจฆเจพ เจ…เจงเจฟเจ†เจชเจ• เจฆเฉ€ เจฐเจพเจ, เจชเฉ€เจจเฉ‹ เจฆเฉ‡ เจธเจตเฉˆ-เจตเจฟเจ—เจฟเจ†เจจ เจ…เจคเฉ‡ เจ†เจฎ เจธเจฎเจ เจจเจพเจฒ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเจพเฅค" Qemu เจ•เฉ‹เจฒ เจธเจฎเจฐเจฅเจฟเจค เจฎเจนเจฟเจฎเจพเจจ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเฉ€ เจ‡เฉฑเจ• เจจเจฟเจธเจผเจšเจฟเจค เจ—เจฟเจฃเจคเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• เจฒเจˆ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ target-i386. เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจคเฉเจธเฉ€เจ‚ เจ•เจˆ เจ—เฉˆเจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจจเจคเฉ€เจœเจพ เจธเจฟเจฐเจซ เจ•เจˆ เจฌเจพเจˆเจจเจฐเฉ€เจ†เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจ—เฉˆเจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจ เจตเจพเจฒเจพ เจ•เฉ‹เจก, เจฌเจฆเจฒเฉ‡ เจตเจฟเฉฑเจš, เจ•เฉเจ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจ•เจฟเจฎเฉ‚ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ TCG (เจŸเจฟเฉฐเจจเฉ€ เจ•เฉ‹เจก เจœเฉ‡เจจเจฐเฉ‡เจŸเจฐ) เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเฉ‹เจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฎเจธเจผเฉ€เจจ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเฉˆเฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ tcg เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจฐเฉ€เจกเจฎเฉ€ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค C เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจธเฉ€, เจœเจฟเจธเจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš JIT เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจ‡เจธ เจฒเจˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจธ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจŸเจพเจฐเจ—เฉ‡เจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจนเฉเจฃ เจ‡เฉฑเจ• เจ—เฉˆเจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ‡เฉฑเจ• เจนเฉ‹เจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจนเฉˆเฅค เจ•เจฟเจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ† - เจŸเจฟเฉฐเจจเฉ€ เจ•เฉ‹เจก เจ‡เฉฐเจŸเจฐเจชเฉเจฐเฉ‡เจŸเจฐ (เจŸเฉ€เจธเฉ€เจ†เจˆ), เจœเจฟเจธ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจนเฉ‹เจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจ…เจฃเจนเฉ‹เจ‚เจฆ เจตเจฟเฉฑเจš เจ•เฉ‹เจก (เจฒเจ—เจญเจ— เจ‰เจนเฉ€ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚) เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เจธเจฆเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจตเจฟเฉฑเจš เจ•เจฟเจนเจพ เจ—เจฟเจ† เจนเฉˆ, เจ‡เจน เจฆเฉเจญเจพเจธเจผเฉ€เจ เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจ‡เฉฑเจ• JIT เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจจเจพ เจธเจฟเจฐเจซ เจ—เจคเฉ€ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจธเจ—เฉ‹เจ‚ เจ—เฉเจฃเจพเจคเจฎเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉ€เฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ‰เจธเจฆเจพ เจตเจฐเจฃเจจ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆเฅค

เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจพ เจŸเฉ€เจธเฉ€เจœเฉ€ เจฌเฉˆเจ•เจเจ‚เจก เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€, เจชเจฐ เจœเจฒเจฆเฉ€ เจนเฉ€ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ‰เจฒเจเจฃ เจตเจฟเฉฑเจš เจชเฉˆ เจ—เจฟเจ† เจ…เจคเฉ‡ เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเจพ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจชเฉฑเจธเจผเจŸ เจจเจนเฉ€เจ‚ เจฆเฉฑเจธเจฟเจ†, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ TCI เจฆเฉเจญเจพเจธเจผเฉ€เจ เจจเฉ‚เฉฐ เจฒเจชเฉ‡เจŸเจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพเฅค เจ‡เจธ เจจเฉ‡ เจ•เจˆ เจซเจพเจ‡เจฆเฉ‡ เจฆเจฟเฉฑเจคเฉ‡:

  • เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจคเฉเจธเฉ€เจ‚ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‡ เจตเจฐเจฃเจจ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚, เจชเจฐ เจฆเฉเจญเจพเจธเจผเฉ€เจ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹
  • เจคเฉเจธเฉ€เจ‚ เจนเจฐ เจ…เจจเฉเจตเจพเจฆ เจฌเจฒเจพเจ• เจฒเจˆ เจซเฉฐเจ•เจธเจผเจจ เจคเจฟเจ†เจฐ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเฉŒเจตเฉ‡เจ‚ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ
  • เจœเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ•เฉ‹เจก เจฌเจฆเจฒเจฆเจพ เจนเฉˆ (เจ…เจคเฉ‡ เจ‡เจน เจธเฉฐเจญเจต เจœเจพเจชเจฆเจพ เจนเฉˆ, เจธเจผเจฌเจฆ เจชเฉˆเจš เจตเจพเจฒเฉ‡ เจจเจพเจตเจพเจ‚ เจตเจพเจฒเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ), เจฎเฉˆเจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ JS เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€, เจชเจฐ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ‡เจธเจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เฉเจ เจนเฉ‹เจตเฉ‡เจ—เจพ

เจคเฉ€เจœเฉ‡ เจฌเจฟเฉฐเจฆเฉ‚ เจฆเฉ‡ เจธเฉฐเจฌเฉฐเจง เจตเจฟเฉฑเจš, เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเฉˆเจšเจฟเฉฐเจ— เจธเฉฐเจญเจต เจนเฉˆ, เจชเจฐ เจชเจนเจฟเจฒเฉ‡ เจฆเฉ‹ เจชเฉเจ†เจ‡เฉฐเจŸ เจ•เจพเจซเจผเฉ€ เจนเจจ.

เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš, เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจฆเฉ‡ เจชเจคเฉ‡ 'เจคเฉ‡ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ‡ เจธเจตเจฟเฉฑเจš เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจชเจฐ เจซเจฟเจฐ, เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจฌเจพเจฐเฉ‡ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจฏเจพเจฆ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ‰เจคเจชเฉฐเจจ เจœเฉ‡เจเจธ เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจ…เจคเฉ‡ เจฐเฉ€เจฒเฉ‚เจชเจฟเฉฐเจ—, เจฎเฉˆเจ‚ เจนเฉ‹เจฐ เจฎเจจเฉเฉฑเจ–เฉ€ เจ•เฉ‹เจก เจคเจฟเจ†เจฐ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ, เจ–เจพเจธ เจ•เจฐเจ•เฉ‡ เจ…เจจเฉเจญเจตเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจ‡เจน เจชเจคเจพ เจšเจฒเจฟเจ† เจ•เจฟ เจ…เจจเฉเจตเจพเจฆ เจฌเจฒเจพเจ• เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจชเฉเจฐเจตเฉ‡เจธเจผ เจฌเจฟเฉฐเจฆเฉ‚ เจ‡เจธเจฆเจพ เจธเจผเฉเจฐเฉ‚เจ†เจค เจนเฉˆเฅค เจœเจฒเจฆเฉ€ เจนเฉ€ เจ•เจฟเจนเจพ เจ—เจฟเจ†, เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฌเจพเจ…เจฆ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจธเฉ€ เจœเฉ‹ ifs เจจเจพเจฒ เจ•เฉ‹เจก เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจธเฉ€ (เจนเจพเจฒเจพเจ‚เจ•เจฟ เจฒเฉ‚เจชเจธ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚)เฅค เจชเจฐ เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€, เจ‡เจน เจ•เฉเจฐเฉˆเจธเจผ เจนเฉ‹ เจ—เจฟเจ†, เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉ‹เจ‡เจ† เจ•เจฟ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจ•เฉเจ เจ—เจฒเจค เจฒเฉฐเจฌเจพเจˆ เจฆเฉ‡ เจธเจจเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจธ เจ†เจตเจฐเจคเฉ€ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจ†เจ–เจฐเฉ€ เจนเจฆเจพเจ‡เจค เจธเฉ€ brcond. เจ เฉ€เจ• เจนเฉˆ, เจฎเฉˆเจ‚ เจ†เจตเจฐเจคเฉ€ เจ•เจพเจฒ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ…เจคเฉ‡ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจธ เจนเจฆเจพเจ‡เจค เจฆเฉ€ เจชเฉ€เฉœเฉเจนเฉ€ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจœเจพเจ‚เจš เจธเจผเจพเจฎเจฒ เจ•เจฐเจพเจ‚เจ—เจพ เจ…เจคเฉ‡... เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเฉ‚เฉฐ เจตเฉ€ เจฒเจพเจ—เฉ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจชเจฐ เจ…เจธเจฐเจŸ เจธเจตเจฟเฉฑเจš เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‰เจน เจ…เจœเฉ‡ เจตเฉ€ เจ…เจธเจซเจฒ เจฐเจนเฉ‡เฅค เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ•เฉ‹เจก เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจนเจฟเจธเจพเจธ เจนเฉ‹เจ‡เจ† เจ•เจฟ เจธเจตเจฟเฉฑเจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉŒเจœเฉ‚เจฆเจพ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจฆเจพ เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจธเจŸเฉˆเจ• เจคเฉ‹เจ‚ เจฐเฉ€เจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเฉฐเจญเจต เจคเฉŒเจฐ 'เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ JavaScript เจ•เฉ‹เจก เจฆเฉเจ†เจฐเจพ เจ“เจตเจฐเจฐเจพเจˆเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ เจ‡เจน เจฌเจพเจนเจฐ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ. เจฌเจซเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเฉˆเจ—เจพเจฌเจพเจˆเจŸ เจคเฉ‹เจ‚ เจฆเจธ เจคเฉฑเจ• เจตเจงเจพเจ‰เจฃ เจจเจพเจฒ เจ•เฉเจ เจตเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ†, เจ…เจคเฉ‡ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจšเฉฑเจ•เจฐเจพเจ‚ เจตเจฟเฉฑเจš เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจธเฉ€. เจธเจพเจจเฉ‚เฉฐ เจ‡เจน เจœเจพเจ‚เจš เจ•เจฐเจจเฉ€ เจชเจˆ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจŸเฉ€เจฌเฉ€ เจฆเฉ€เจ†เจ‚ เจธเฉ€เจฎเจพเจตเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจจเจนเฉ€เจ‚ เจ—เจ, เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจ…เจœเจฟเจนเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ‡เฉฑเจ• เจ˜เจŸเจพเจ“ เจฆเฉ‡ เจšเจฟเฉฐเจจเฉเจน เจจเจพเจฒ เจ…เจ—เจฒเฉ€ เจŸเฉ€เจฌเฉ€ เจฆเจพ เจชเจคเจพ เจœเจพเจฐเฉ€ เจ•เจฐเฉ‹ เจคเจพเจ‚ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ…เจฎเจฒ เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจฐเฉฑเจ– เจธเจ•เฉ€เจเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจนเฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ "เจœเฉ‡ เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจฆเจพ เจ‡เจน เจŸเฉเจ•เฉœเจพ เจฌเจฆเจฒ เจ—เจฟเจ† เจนเฉˆ เจคเจพเจ‚ เจ•เจฟเจนเฉœเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ?" โ€” เจธเจฟเจฐเจซเจผ เจ‰เจน เจซเฉฐเจ•เจธเจผเจจ เจœเฉ‹ เจ‡เจธ เจ…เจจเฉเจตเจพเจฆ เจฌเจฒเจพเจ• เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจตเฉˆเจธเฉ‡, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจฎเฉˆเจ‚ Chromium เจตเจฟเฉฑเจš เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เฉ€เจคเจพ เจนเฉˆ (เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉˆเจ‚ เจซเจพเจ‡เจฐเจซเจพเจ•เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจฏเฉ‹เจ—เจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฐเจคเจฃเจพ เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจธเฉŒเจ–เจพ เจนเฉˆ), เจซเจพเจ‡เจฐเจซเจพเจ•เจธ เจจเฉ‡ 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"]

เจธเจฟเฉฑเจŸเจพ

เจ‡เจธ เจฒเจˆ, เจ•เฉฐเจฎ เจ…เจœเฉ‡ เจตเฉ€ เจชเฉ‚เจฐเจพ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ—เฉเจชเจค เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เจธ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ‰เจธเจพเจฐเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจชเฉ‚เจฐเจจเจคเจพ เจตเจฟเฉฑเจš เจฒเจฟเจ†เจ‰เจฃ เจคเฉ‹เจ‚ เจฅเฉฑเจ• เจ—เจฟเจ† เจนเจพเจ‚เฅค เจ‡เจธ เจฒเจˆ, เจฎเฉˆเจ‚ เจนเฉเจฃเฉ‡ เจฒเจˆ เจœเฉ‹ เจ•เฉเจ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจนเฉˆ เจ‰เจธเจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ•เฉ‹เจก เจธเจฅเจพเจจเจพเจ‚ เจตเจฟเฉฑเจš เจฅเฉ‹เฉœเจพ เจกเจฐเจพเจ‰เจฃเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจชเฉเจฐเจฏเฉ‹เจ— เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจชเฉฑเจธเจผเจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจธเจผเจพเจ‡เจฆ, เจซเจฟเจฐ เจ•เจฟเจฎเฉ‚ เจฆเฉ‡ เจ•เฉเจ เจนเฉ‹เจฐ เจ†เจงเฉเจจเจฟเจ• เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจธเจงเจพเจฐเจฃ เจชเจฐเจฎเจพเจฃเฉ‚ เจ•เจฎเจฟเจŸ เจœเจพเจฐเฉ€ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆเฅค เจ‡เจธ เจฆเฉŒเจฐเจพเจจ, เจ‡เฉฑเจ• เจฌเจฒเฉŒเจ— เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจ—เฉ€เจคเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฅเจฐเจฟเฉฑเจก เจนเฉˆ: เจนเจฐเฉ‡เจ• "เจชเฉฑเจงเจฐ" เจฒเจˆ เจœเฉ‹ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจชเจพเจธ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจฐเฉ‚เจธเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจฟเจธเจคเฉเจฐเจฟเจค เจŸเจฟเฉฑเจชเจฃเฉ€ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ‡เจน เจฒเฉ‡เจ– เจ•เจพเจซเฉ€ เจนเฉฑเจฆ เจคเฉฑเจ• เจธเจฟเฉฑเจŸเฉ‡ เจฆเจพ เจชเฉเจจเจฐ-เจจเจฟเจฐเจฎเจพเจฃ เจนเฉˆ git log.

เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจธเจญ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡ (เจŸเฉเจฐเฉˆเจซเจฟเจ• เจคเฉ‹เจ‚ เจธเจพเจตเจงเจพเจจ เจฐเจนเฉ‹)

เจ•เฉ€ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ:

  • x86 เจตเจฐเจšเฉเจ…เจฒ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ
  • เจฎเจธเจผเฉ€เจจ เจ•เฉ‹เจก เจคเฉ‹เจ‚ JavaScript เจคเฉฑเจ• เจ‡เฉฑเจ• JIT เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจฆเจพ เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจนเฉˆ
  • เจนเฉ‹เจฐ 32-เจฌเจฟเฉฑเจŸ เจ—เฉˆเจธเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจจเฉ‚เฉฐ เจ…เจธเฉˆเจ‚เจฌเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจนเฉˆ: เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ เจฒเฉ‹เจก เจนเฉ‹เจฃ เจฆเฉ‡ เจชเฉœเจพเจ… 'เจคเฉ‡ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš MIPS เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจจเฉ‚เฉฐ เจซเฉเจฐเฉ€เจœเจผ เจ•เจฐเจจ เจฒเจˆ เจฒเฉ€เจจเจ•เจธ เจฆเฉ€ เจชเฉเจฐเจธเจผเฉฐเจธเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจคเฉเจธเฉ€เจ‚ เจนเฉ‹เจฐ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹

  • เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเฉ‹เฅค เจœเฉ‡เจ†เจˆเจŸเฉ€ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจตเฉ€ เจ‡เจน เจตเจฐเจšเฉเจ…เจฒ x86 เจจเจพเจฒเฉ‹เจ‚ เจนเฉŒเจฒเฉ€ เจšเฉฑเจฒเจฆเจพ เจœเจพเจชเจฆเจพ เจนเฉˆ (เจชเจฐ เจธเฉฐเจญเจพเจตเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจก เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ…เจคเฉ‡ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจพ เจ•เจฟเจฎเฉ‚ เจนเฉˆ)
  • เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ - เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจตเฉˆเฉฑเจฌ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเจนเฉ€เจ‚ เจนเจพเจ‚, เจ‡เจธ เจฒเจˆ เจนเฉเจฃ เจฒเจˆ เจฎเฉˆเจ‚ เจฎเจฟเจ†เจฐเฉ€ เจเจฎเจธเจ•เฉเจฐเจฟเจชเจŸเจจ เจธเจผเฉˆเฉฑเจฒ เจจเฉ‚เฉฐ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจขเฉฐเจ— เจจเจพเจฒ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‡เจ† เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚
  • เจนเฉ‹เจฐ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ Qemu เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹ - เจจเฉˆเฉฑเจŸเจตเจฐเจ•เจฟเฉฐเจ—, VM เจฎเจพเจˆเจ—เฉเจฐเฉ‡เจธเจผเจจ, เจ†เจฆเจฟเฅค
  • เจฏเฉ‚เจชเฉ€เจกเฉ€: เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ•เฉเจ เจตเจฟเจ•เจพเจธ เจ…เจคเฉ‡ เจฌเฉฑเจ— เจฐเจฟเจชเฉ‹เจฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ Emscripten เจ…เฉฑเจชเจธเจŸเฉเจฐเฉ€เจฎ เจตเจฟเฉฑเจš เจœเจฎเฉเจนเจพเจ‚ เจ•เจฐเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ Qemu เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจฆเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจชเฉ‹เจฐเจŸเจฐเจพเจ‚ เจจเฉ‡ เจ•เฉ€เจคเจพ เจธเฉ€เฅค เจฎเฉ‡เจฐเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจœเฉ‹เจ‚ Emscripten เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจฏเฉ‹เจ—เจฆเจพเจจ เจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเจฐเจคเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจงเฉฐเจจเจตเจพเจฆเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹