QEMU.js: เด‡เดชเตเดชเต‹เตพ เด—เตเดฐเตเดคเดฐเดตเตเด‚ WASM-เดจเตŠเดชเตเดชเด‚

เด’เดฐเดฟเด•เตเด•เตฝ เดžเดพเตป เดตเดฟเดจเต‹เดฆเดคเตเดคเดฟเดจเดพเดฏเดฟ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเดŸเต† เดฑเดฟเดตเต‡เดดเตเดธเดฟเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ เดคเต†เดณเดฟเดฏเดฟเด•เตเด•เตเด• เด•เต‚เดŸเดพเดคเต† เดฎเต†เดทเต€เตป เด•เต‹เดกเดฟเตฝ เดจเดฟเดจเตเดจเต JavaScript (เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ, Asm.js) เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเด™เตเด™เดจเต†เดฏเต†เดจเตเดจเต เด…เดฑเดฟเดฏเตเด•. เดชเดฐเต€เด•เตเดทเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ QEMU เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดนเดฌเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด’เดฐเต เดฒเต‡เด–เดจเด‚ เดŽเดดเตเดคเดชเตเดชเต†เดŸเตเดŸเต. เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ, เดตเต†เดฌเต เด…เดธเด‚เดฌเตเดฒเดฟเดฏเดฟเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฑเต€เดฎเต‡เด•เตเด•เต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดธเตเดตเดฏเด‚ เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เดพเดจเตเด‚ เดŽเดจเตเดจเต† เด‰เดชเดฆเต‡เดถเดฟเดšเตเดšเต. เดเดคเดพเดฃเตเดŸเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ เดŽเดจเดฟเด•เตเด•เต เดŽเด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดตเต‡เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต ... เดœเต‹เดฒเดฟ เดจเดŸเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดตเดณเดฐเต† เดธเดพเดตเดงเดพเดจเดคเตเดคเดฟเดฒเดพเดฃเต, เด‡เดชเตเดชเต‹เตพ, เด…เดŸเตเดคเตเดคเดฟเดŸเต† เด† เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต เด•เดฎเดจเตเดฑเดฑเดฟ "เด…เดชเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพเด‚ เดŽเด™เตเด™เดจเต† เด…เดตเดธเดพเดจเดฟเดšเตเดšเต?" เดŽเดจเตเดจ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดŽเดจเตเดฑเต† เดตเดฟเดถเดฆเดฎเดพเดฏ เด‰เดคเตเดคเดฐเดคเตเดคเดฟเดจเตเดณเตเดณ เดฎเดฑเตเดชเดŸเดฟเดฏเดพเดฏเดฟ, "เด‡เดคเตŠเดฐเต เดฒเต‡เด–เดจเด‚ เดชเต‹เดฒเต† เดคเต‹เดจเตเดจเตเดจเตเดจเต" เดŽเดจเตเดจเต เดžเดพเตป เด•เต‡เดŸเตเดŸเต. เดถเดฐเดฟ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเตเดฎเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดฒเต‡เด–เดจเด‚ เด‰เดฃเตเดŸเดพเด•เตเด‚. เด’เดฐเตเดชเด•เตเดทเต‡ เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚. QEMU เด•เต‹เดกเต เดœเดจเดฑเต‡เดทเตป เดฌเดพเด•เตเด•เต†เตปเดกเตเด•เดณเตเดŸเต† เดฐเต‚เดชเด•เตฝเดชเตเดชเดจเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เด’เดฐเต เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดฟ เด’เดฐเต เดœเดธเตเดฑเตเดฑเต-เด‡เตป-เดŸเตˆเด‚ เด•เด‚เดชเตˆเดฒเตผ เดŽเด™เตเด™เดจเต† เดŽเดดเตเดคเดพเดฎเต†เดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดพเดฏเดจเด•เตเด•เดพเดฐเตป เดšเดฟเดฒ เดตเดธเตเดคเตเดคเด•เตพ เดชเด เดฟเด•เตเด•เตเด‚.

เดšเตเดฎเดคเดฒเด•เตพ

เดœเดพเดตเดพเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เตเดฏเตเด‡เดŽเด‚เดฏเต เดŽเด™เตเด™เดจเต† เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดชเด เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด‡เดคเตเดคเดตเดฃ เด…เดคเต เดตเดฟเดตเต‡เด•เดคเตเดคเต‹เดŸเต† เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดชเดดเดฏ เดคเต†เดฑเตเดฑเตเด•เตพ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต.

เดชเดฟเดถเด•เต เดจเดฎเตเดชเตผ เด’เดจเตเดจเต: เดชเต‹เดฏเดฟเดจเตเดฑเต เดฑเดฟเดฒเต€เดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดถเดพเด–

เด…เดชเตโ€ŒเดธเตเดŸเตเดฐเต€เด‚ เดชเดคเดฟเดชเตเดชเต 2.4.1-เตฝ เดจเดฟเดจเตเดจเต เดŽเดจเตเดฑเต† เดชเดคเดฟเดชเตเดชเต เดซเต‹เตผเด•เตเด•เต เดšเต†เดฏเตเดคเดคเดพเดฃเต เดŽเดจเตเดฑเต† เด†เดฆเตเดฏเดคเตเดคเต† เดคเต†เดฑเตเดฑเต. เด…เดชเตเดชเต‹เตพ เดŽเดจเดฟเด•เตเด•เต เด‡เดคเต เด’เดฐเต เดจเดฒเตเดฒ เด†เดถเดฏเดฎเดพเดฏเดฟ เดคเต‹เดจเตเดจเดฟ: เดชเต‹เดฏเดฟเดจเตเดฑเต เดฑเดฟเดฒเต€เดธเต เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดฒเดณเดฟเดคเดฎเดพเดฏ 2.4-เดจเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเตฝ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณเดคเดพเดฃเต, เด…เดคเดฟเดฒเตเดชเดฐเดฟเดฏเดพเดฏเดฟ เดฌเตเดฐเดพเดžเตเดšเต master. เดŽเดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เดฌเด—เตเด•เดณเตเดŸเต† เดจเตเดฏเดพเดฏเดฎเดพเดฏ เดคเตเด• เดšเต‡เตผเด•เตเด•เดพเตป เดžเดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดฐเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดŽเดจเดฟเด•เตเด•เต เดฎเดฑเตเดฑเดพเดฐเตเดŸเต†เดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เด…เด™เตเด™เดจเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚ เด…เดคเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต. เดŽเดจเตเดจเดพเตฝ เด‡เดตเดฟเดŸเต† เด•เดพเดฐเตเดฏเด‚ เด‡เดคเดพเดฃเต: QEMU เดจเดฟเดถเตเดšเดฒเดฎเดพเดฏเดฟ เดจเดฟเตฝเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เดšเดฟเดฒ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ เด…เดตเตผ เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค เด•เต‹เดกเดฟเดจเตเดฑเต† 10 เดถเดคเดฎเดพเดจเด‚ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต. "เด…เดคเต†, เด‡เดชเตเดชเต‹เตพ เดžเดพเตป เดฎเดฐเดตเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดชเต‹เด•เตเดจเตเดจเต," เดžเดพเตป เดšเดฟเดจเตเดคเดฟเดšเตเดšเต เดคเด•เตผเดจเตเดจเต. เด‡เดตเดฟเดŸเต† เดจเดฎเตเดฎเตพ เด’เดฐเต เดตเตเดฏเดคเดฟเดšเดฒเดจเด‚ เดจเดŸเดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต: QEMU.js-เดจเตเดฑเต† เดธเดฟเด‚เด—เดฟเตพ-เดคเตเดฐเต†เดกเดกเต เดธเตเดตเดญเดพเดตเดตเตเด‚ เดฏเดฅเดพเตผเดคเตเดฅ QEMU เดฎเตพเดŸเตเดŸเดฟ-เดคเตเดฐเต†เดกเดฟเด‚เด—เดฟเดจเตเดฑเต† เด…เดญเดพเดตเดคเตเดคเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเตเด‚ (เด…เดคเดพเดฏเดคเต, เดฌเดจเตเดงเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดจเดฟเดฐเดตเดงเดฟ เด•เต‹เดกเต เดชเดพเดคเด•เตพ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต, เด•เต‚เดŸเดพเดคเต† "เดŽเดฒเตเดฒเดพ เด•เต‡เตผเดฃเดฒเตเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•" เดŽเดจเตเดจเดฒเตเดฒ) เด‡เดคเดฟเดจเต เดจเดฟเตผเดฃเตเดฃเดพเดฏเด•เดฎเดพเดฃเต, เดคเตเดฐเต†เดกเตเด•เดณเตเดŸเต† เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดชเตเดฑเดคเตเดคเต เดจเดฟเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต "เด…เดคเต เดฎเดพเดฑเตเดฑเดฃเด‚". เด‡เดคเต เดฒเดฏเดจเดธเดฎเดฏเดคเตเดคเต เดšเดฟเดฒ เดธเตเดตเดพเดญเดพเดตเดฟเด• เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฌเตเดฐเดพเดžเตเดšเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดšเดฟเดฒ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดธเตเดคเตเดคเดฏเดพเดฃเต master, เดžเดพเตป เดŽเดจเตเดฑเต† เด•เต‹เดกเต เดฒเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเดคเตเด‚ เดชเต‹เดฏเดฟเดจเตเดฑเต เดฑเดฟเดฒเต€เดธเดฟเตฝ (เด…เดคเดฟเดจเดพเตฝ เดŽเดจเตเดฑเต† เดฌเตเดฐเดพเดžเตเดšเดฟเตฝ) เดšเต†เดฑเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดคเตเด‚ เด’เดฐเตเดชเด•เตเดทเต‡ เดธเต—เด•เดฐเตเดฏเด‚ เด•เต‚เดŸเตเดŸเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดชเตŠเดคเตเดตเต‡, เดชเตเดฐเต‹เดŸเตเดŸเต‹เดŸเตˆเดชเตเดชเต เดตเดฒเดฟเดšเตเดšเต†เดฑเดฟเดฏเตเดจเตเดจเดคเตเด‚ เดญเดพเด—เด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดกเดฟเดธเตเด…เดธเด‚เดฌเตเดฒเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดชเตเดคเตเดฎเดฏเตเดณเตเดณเดคเตเดฎเดพเดฏ เด’เดจเตเดจเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เด†เดฆเตเดฏเด‚ เดฎเตเดคเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เด‡เดชเตเดชเต‹เดดเตเด‚ เด…เตผเดคเตเดฅเดฎเตเดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. master.

เดคเต†เดฑเตเดฑเต เดจเดฎเตเดชเตผ เดฐเดฃเตเดŸเต: TLP เดฐเต€เดคเดฟเดถเดพเดธเตเดคเตเดฐเด‚

เดธเดพเดฐเดพเด‚เดถเดคเตเดคเดฟเตฝ, เด‡เดคเต เด’เดฐเต เดคเต†เดฑเตเดฑเดฒเตเดฒ, เดชเตŠเดคเตเดตเต‡, "เดŽเดตเดฟเดŸเต†, เดŽเด™เตเด™เดจเต† เดจเต€เด™เตเด™เดฃเด‚?", เดชเตŠเดคเตเดตเต† "เดจเดฎเตเดฎเตพ เด…เดตเดฟเดŸเต† เดŽเดคเตเดคเตเดฎเต‹?" เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดคเต†เดฑเตเดฑเดฟเดฆเตเดงเดพเดฐเดฃเดฏเตเดŸเต† เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเดตเดฟเดถเต‡เดทเดค เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด‡เดคเต. เดˆ เด…เดตเดธเตเดฅเด•เดณเดฟเตฝ เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดจเตเดฏเดพเดฏเดฎเดพเดฏ เด’เดฐเต เด“เดชเตเดทเดจเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเด•เตเดทเต‡, เดธเตเดตเดพเดญเดพเดตเดฟเด•เดฎเดพเดฏเตเด‚, เด…เดคเต เด…เดจเดพเดตเดถเตเดฏเดฎเดพเดฏเดฟ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเดฟเดฒเตเดฒ. เด‡เดคเตเดคเดตเดฃ เดžเดพเตป เด…เดคเต เดฌเตเดฆเตเดงเดฟเดชเต‚เตผเดตเตเดตเด‚ เดšเต†เดฏเตเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต: เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เด•เดฎเตเดฎเดฟเดฑเตเดฑเตเด•เตพ, เดฌเต‹เดงเดชเต‚เตผเดตเดฎเดพเดฏ เด•เต‹เดกเต เดฎเดพเดฑเตเดฑเด™เตเด™เตพ (เด•เต‚เดŸเดพเดคเต† "เด…เดคเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเดตเดฐเต† เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดคเต€เด•เด™เตเด™เตพ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดšเต‡เตผเด•เตเด•เดฐเตเดคเต (เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเต‹เดŸเต†)", เดฒเดฟเดจเดธเต เดŸเต‹เตผเดตเดพเตพเดกเตเดธเต เด’เดฐเดฟเด•เตเด•เตฝ เด’เดฐเดพเดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต†, เดตเดฟเด•เตเด•เดฟ เด‰เดฆเตเดงเดฐเดฃเดฟ เดชเตเดฐเด•เดพเดฐเด‚) เดฎเตเดคเดฒเดพเดฏเดต.

เดคเต†เดฑเตเดฑเต เดจเดฎเตเดชเตผ เดฎเต‚เดจเตเดจเต: เดซเต‹เตผเดกเต เด…เดฑเดฟเดฏเดพเดคเต† เดตเต†เดณเตเดณเดคเตเดคเดฟเตฝ เด‡เดฑเด™เตเด™เตเด•

เดžเดพเตป เด‡เดชเตเดชเต‹เดดเตเด‚ เด‡เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดฎเตเด•เตเดคเดจเดพเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด‡เดชเตเดชเต‹เตพ เดžเดพเตป เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เดชเตเดฐเดคเดฟเดฐเต‹เดงเดคเตเดคเดฟเดจเตเดฑเต† เดชเดพเดค เดชเดฟเดจเตเดคเตเดŸเดฐเต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒเต†เดจเตเดจเตเด‚ โ€œเดฎเตเดคเดฟเตผเดจเตเดจเดฏเดพเดณเต†เดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝโ€ เด…เดคเต เดšเต†เดฏเตเดฏเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต, เด…เดคเดพเดฏเดคเต, เด†เดฆเตเดฏเด‚ เดฎเตเดคเตฝ เดŽเดจเตเดฑเต† TCG เดฌเดพเด•เตเด•เต†เตปเดกเต เดŽเดดเตเดคเตเด•. เดชเดฟเดจเตเดจเต€เดŸเต เดชเดฑเดฏเต‡เดฃเตเดŸเดฟ เดตเดฐเตเด‚, "เด…เดคเต†, เด‡เดคเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดธเดพเดตเดงเดพเดจเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เดŽเดจเดฟเด•เตเด•เต เดŽเดฒเตเดฒเดพเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ - เด…เด™เตเด™เดจเต†เดฏเดพเดฃเต เดŸเดฟเดธเดฟเด เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต..." เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด‡เดคเต เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฏเดฟ เดคเต‹เดจเตเดจเดฟ เดžเดพเตป เดฌเตˆเดจเดฑเดฟ เด•เต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดตเตผ เดชเดฑเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, โ€œเด—เต†เดจเตเดฑเต เด’เดคเตเดคเตเด•เต‚เดŸเดฟัƒ, เดชเด•เตเดทเต‡ เด…เดคเตŠเดจเตเดจเตเดฎเดฒเตเดฒโ€: เด•เต‹เดกเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดฌเตˆเดจเดฑเดฟเดฏเดพเดฃเต, เดชเด•เตเดทเต‡ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เด…เดคเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ - เด‡เดคเต เด•เด‚เดชเตˆเดฒเต‡เดทเดจเดพเดฏเดฟ เดฌเตเดฐเต—เดธเดฑเดฟเดฒเต‡เด•เตเด•เต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดคเดณเตเดณเดฃเด‚, เด…เดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ JS เดฒเต‹เด•เดคเตเดคเต เดจเดฟเดจเตเดจเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดฒเดญเดฟเด•เตเด•เตเด‚, เด…เดคเต เด‡เดชเตเดชเต‹เดดเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดฐเด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเดพเดงเดพเดฐเดฃ RISC เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเตเด•เดณเดฟเตฝ, เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเดคเตเดคเต‹เดณเด‚, เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เด•เต‹เดกเดฟเดจเดพเดฏเดฟ เดจเดฟเตผเดฆเตเดฆเต‡เดถ เด•เดพเดทเต† เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดชเตเดจเดƒเดธเดœเตเดœเดฎเดพเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดคเดฏเดพเดฃเต เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดธเดพเดนเดšเดฐเตเดฏเด‚ - เด‡เดคเต เดžเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดเดคเต เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด‚, เด…เดคเต เด…เดŸเตเดคเตเดคเดพเดฃเต. เด•เต‚เดŸเดพเดคเต†, เดŽเดจเตเดฑเต† เด…เดตเดธเดพเดจ เดถเตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต, เดตเดฟเดตเตผเดคเตเดคเดจ เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเตเดฑเต† เดฎเดงเตเดฏเดญเดพเด—เดคเตเดคเต‡เด•เตเด•เต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ, เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด“เดซเตโ€Œเดธเต†เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เตเดจเตเดจ เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เดŸเดฟเดฌเดฟเดฏเดฟเดฒเต† เดซเด‚เด—เตโ€Œเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด‡เดคเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. .

เด…เดตเตผ เดตเดจเตเดจเต เดšเดตเดฟเดŸเตเดŸเดฟ

เดœเต‚เดฒเตˆเดฏเดฟเตฝ เดžเดพเตป เด•เต‹เดกเต เดตเต€เดฃเตเดŸเตเด‚ เดŽเดดเตเดคเดพเตป เดคเตเดŸเด™เตเด™เดฟเดฏเต†เด™เตเด•เดฟเดฒเตเด‚, เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดชเตเดชเต†เดŸเดพเดคเต† เด’เดฐเต เดฎเดพเดœเดฟเด•เต เด•เดฟเด•เตเด•เต เด•เดŸเดจเตเดจเตเดตเดจเตเดจเต: เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ GitHub-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เดคเตเดคเตเด•เตพ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ, เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เตเดณเตเดณ เดชเตเดฐเดคเดฟเด•เดฐเดฃเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเดพเดฏเดฟ เดŽเดคเตเดคเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด‡เดตเดฟเดŸเต†, เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดคเตเดฐเต†เดกเดฟเตฝ เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเด• เด’เดฐเต เด•เตเดฏเตเดฎเต เดฌเดพเด•เตเด•เตโ€ŒเดŽเตปเดกเดพเดฏเดฟ เดฌเดฟเดจเดพเดฐเต†เตป เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ, "เด…เดตเตป เด…เด™เตเด™เดจเต† เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดคเต, เด’เดฐเตเดชเด•เตเดทเต‡ เด…เดตเตป เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดฑเดžเตเดžเต‡เด•เตเด•เดพเด‚." เดŽเด‚เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดจเตเดฑเต† เด…เดจเตเดฌเดจเตเดง เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดžเด™เตเด™เตพ เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเดคเต เดฌเดฟเดจเดพเดฐเต†เตป WASM JIT เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป. เดถเดฐเดฟ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดตเดฟเดŸเต† เด…เดชเตเดชเดพเดšเตเดšเต† 2.0 เดฒเตˆเดธเตปเดธเต เด‰เดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เดชเดฑเดžเตเดžเต, เด•เต‚เดŸเดพเดคเต† QEMU เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ GPLv2 เดจเต เด•เต€เดดเดฟเตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดต เดตเดณเดฐเต† เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ. เด’เดฐเต เดฒเตˆเดธเตปเดธเต เด†เด•เดพเด‚ เดŽเดจเตเดจเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟ เดŽเด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดถเดฐเดฟเดฏเดพเด•เตเด•เตเด• (เดŽเดจเดฟเด•เตเด•เดฑเดฟเดฏเดฟเดฒเตเดฒ: เด’เดฐเตเดชเด•เตเดทเต‡ เด…เดคเต เดฎเดพเดฑเตเดฑเดพเด‚, เดšเดฟเดฒเดชเตเดชเต‹เตพ เด‡เดฐเดŸเตเดŸ เดฒเตˆเดธเตปเดธเดฟเด‚เด—เต, เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ ...). เด‡เดคเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดŽเดจเตเดจเต† เดธเดจเตเดคเต‹เดทเดฟเดชเตเดชเดฟเดšเตเดšเต, เด•เดพเดฐเดฃเด‚ เด…เดชเตเดชเต‹เดดเต‡เด•เตเด•เตเด‚ เดžเดพเตป เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดจเต‹เด•เตเด•เดฟเดฏเดฟเดฐเตเดจเตเดจเต เดฌเตˆเดจเดฑเดฟ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต WebAssembly, เดžเดพเตป เดŽเด™เตเด™เดจเต†เดฏเต‹ เดฆเตเดƒเด–เดฟเดคเดจเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดพเดคเตเดคเดตเดจเตเด‚ เด†เดฏเดฟเดฐเตเดจเตเดจเต. เดŸเตเดฐเดพเตปเดธเดฟเดทเตป เด—เตเดฐเดพเดซเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ เดตเดฟเดดเตเด™เตเด™เตเด•เดฏเตเด‚ เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเดฑเดฟเตฝ เดคเดจเตเดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดชเดฟเดจเตเดจเต† เด•เต‚เดŸเตเดคเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต เด’เดฐเต เด•เดคเตเดคเต QEMU เดฎเต†เดฏเดฟเดฒเดฟเด‚เด—เต เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เดšเต‹เดฆเตเดฏเดฎเดพเดฃเต, "เด†เตผเด•เตเด•เต†เด™เตเด•เดฟเดฒเตเด‚ เด‡เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต?" เด…เดคเตเด‚ เดชเต†เดŸเตเดŸเต†เดจเตเดจเต, เด…เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดคเต†เดณเดฟเดžเตเดžเต. เด•เตเดฑเดžเตเดžเดคเต, เด•เต‚เดŸเตเดคเดฒเต‹ เด•เตเดฑเดตเต‹ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดชเดฏเต‹เด— เดธเดพเดงเตเดฏเดคเด•เตพ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดธเตเด•เตเดฐเดพเดชเตเดชเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

  • เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด‡เดฒเตเดฒเดพเดคเต† เดตเดฟเดฆเตเดฏเดพเดญเตเดฏเดพเดธเดชเดฐเดฎเดพเดฏ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต
  • iOS-เดฒเต† เดตเต†เตผเดšเตเดตเดฒเตˆเดธเต‡เดทเตป, เดŽเดตเดฟเดŸเต†, เด•เดฟเด‚เดตเดฆเดจเตเดคเดฟเด•เตพ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต, เดˆเดšเตเดšเดฏเดฟเตฝ เด•เต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด…เดตเด•เดพเดถเดฎเตเดณเตเดณ เด’เดฐเต‡เดฏเตŠเดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด’เดฐเต JS เดŽเดžเตเดšเดฟเตป เด†เดฃเต (เด‡เดคเต เดถเดฐเดฟเดฏเดพเดฃเต‹?)
  • เดฎเดฟเดจเดฟ-เด’เดŽเดธเดฟเดจเตเดฑเต† เดชเตเดฐเดฆเตผเดถเดจเด‚ - เดธเดฟเด‚เด—เดฟเตพ-เดซเตเดฒเต‹เดชเตเดชเดฟ, เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป, เดŽเดฒเตเดฒเดพเดคเตเดคเดฐเด‚ เดซเต‡เด‚เดตเต†เดฏเดฑเตเด•เดณเตเด‚ เดฎเตเดคเดฒเดพเดฏเดต...

เดฌเตเดฐเต—เดธเตผ เดฑเตบเดŸเตˆเด‚ เดซเต€เดšเตเดšเดฑเตเด•เตพ

เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต†, QEMU เดฎเตพเดŸเตเดŸเดฟ เดคเตเดฐเต†เดกเดฟเด‚เด—เตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดฌเตเดฐเต—เดธเดฑเดฟเตฝ เด…เดคเต เด‡เดฒเตเดฒ. เดถเดฐเดฟ, เด…เดคเดพเดฏเดคเต, เด‡เดฒเตเดฒ... เด†เดฆเตเดฏเด‚ เด…เดคเต เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒ, เดชเดฟเดจเตเดจเต€เดŸเต เดตเต†เดฌเต เดตเตผเด•เตเด•เตผเดฎเดพเตผ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต - เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเดคเตเดคเต‹เดณเด‚, เด‡เดคเต เดธเดจเตเดฆเต‡เดถเด‚ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดฎเตพเดŸเตเดŸเดฟเดคเตเดฐเต†เดกเดฟเด‚เด—เต เด†เดฃเต เดชเด™เตเด•เดฟเดŸเตเดŸ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‡เดฒเตเดฒเดพเดคเต†. เดธเตเดตเดพเดญเดพเดตเดฟเด•เดฎเดพเดฏเตเด‚, เดชเด™เตเด•เดฟเดŸเตเดŸ เดฎเต†เดฎเตเดฎเดฑเดฟ เดฎเต‹เดกเดฒเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด•เต‹เดกเต เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด‡เดคเต เด•เดพเดฐเตเดฏเดฎเดพเดฏ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เดชเดฟเดจเตเดจเต†, เดœเดจเด•เต€เดฏ เดธเดฎเตเดฎเตผเดฆเดคเตเดคเดฟเดจเต เดตเดดเด™เตเด™เดฟ เด…เดคเตเด‚ เดชเต‡เดฐเดฟเตฝ เดจเดŸเดชเตเดชเดพเด•เตเด•เดฟ SharedArrayBuffers. เด‡เดคเต เด•เตเดฐเดฎเต‡เดฃ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเต, เด…เดตเตผ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฌเตเดฐเต—เดธเดฑเตเด•เดณเดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เดฒเต‹เดžเตเดšเต เด†เด˜เต‹เดทเดฟเดšเตเดšเต, เดชเดฟเดจเตเดจเต† เด…เดตเตผ เดชเตเดคเตเดตเดคเตเดธเดฐเด‚ เด†เด˜เต‹เดทเดฟเดšเตเดšเต, เดชเดฟเดจเตเดจเต† เดฎเต†เตฝเดฑเตเดฑเตเดกเต—เตบ... เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด…เดตเตผ เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด…เดณเดตเตเด•เต‹เตฝ เดชเดฐเตเด•เตเด•เตป เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฐเตเด•เตเด•เตป เดŽเดจเตเดจ เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเดฒเต†เดคเตเดคเดฟ, เดŽเดจเตเดจเดพเตฝ เดชเด™เตเด•เดฟเดŸเตเดŸ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเดŸเต† เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต† เดคเตเดฐเต†เดกเต เด•เต—เดฃเตเดŸเตผ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดฒเตเดฒเดพเด‚ เด’เดจเตเดจเตเดคเดจเตเดจเต†เดฏเดพเดฃเต เด…เดคเต เดตเดณเดฐเต† เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚. เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ เดชเด™เตเด•เดฟเดŸเตเดŸ เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเตพเดŸเตเดŸเดฟเดคเตเดฐเต†เดกเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟ. เด…เดตเตผ เดชเดฟเดจเตเดจเต€เดŸเต เด…เดคเต เดตเต€เดฃเตเดŸเตเด‚ เด“เดฃเดพเด•เตเด•เดฟเดฏเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต, เดชเด•เตเดทเต‡, เด†เดฆเตเดฏ เดชเดฐเต€เด•เตเดทเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เด…เดคเดฟเดฒเตเดฒเดพเดคเต† เด’เดฐเต เดœเต€เดตเดฟเดคเดฎเตเดฃเตเดŸเต, เด…เด™เตเด™เดจเต†เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฎเตพเดŸเตเดŸเดฟเดคเตเดฐเต†เดกเดฟเด‚เด—เดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเด•เตเด•เดพเดคเต† เดžเด™เตเด™เตพ เด…เดคเต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด‚.

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดธเดตเดฟเดถเต‡เดทเดค, เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ เด•เตƒเดคเตเดฐเดฟเดฎเดคเตเดตเด‚ เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต: เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดŽเดŸเตเด•เตเด•เดพเดจเตเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เดธเดจเตเดฆเตผเดญเด‚ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดพเดจเตเด‚ เดชเตเดคเดฟเดฏ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดคเดฟเดฏเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเดพเดจเตเด‚ เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เด•เต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต JS เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเดพเดฃเต. เดฎเตเดฎเตเดชเดคเตเดคเต† เด’เดดเตเด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเตเดตเดฎเต‡เดงเดฏเดพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเดคเดฟเดจเดพเตฝ เดŽเดจเตเดคเดพเดฃเต เดชเตเดฐเดถเตโ€Œเดจเด‚ เดŽเดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต? เด•เตเดฏเตเด‡เดŽเด‚เดฏเตเดตเดฟเดฒเต† เดฌเตเดฒเต‹เด•เตเด•เต I/O เด•เต‹เดฑเต‚เดŸเตเดŸเดฟเดจเตเด•เดณเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค, เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต เดฒเต‹-เดฒเต†เดตเตฝ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด•เตƒเดคเตเดฐเดฟเดฎเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเดจเตเดจเดคเต. เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, Emscipten-เตฝ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เด’เดฐเต เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดฐเดฃเตเดŸเต†เดฃเตเดฃเด‚ เดชเต‹เดฒเตเด‚: เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเด• ะธ เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต. เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดค JavaScript เด•เต‹เดกเดฟเดฒเต† เด•เดพเดฐเตเดฏเดฎเดพเดฏ เดฌเตเดฒเต‹เดŸเตเดŸเดฟเดฒเต‚เดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เด‡เดจเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เดฟเดฒเตเดฒ. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เดจเดฟเดฒเดตเดฟเดฒเต† "เดถเดฐเดฟเดฏเดพเดฏ เดตเดดเดฟ" เด†เดฃเต, เด•เต‚เดŸเดพเดคเต† เดจเต‡เดฑเตเดฑเต€เดตเต เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเดฑเดฟเดจเดพเดฏเดฟ เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเต เดœเดจเดฑเต‡เดทเตป เดตเดดเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดธเดพเดตเดงเดพเดจเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด‡เดคเต เด•เต‹เดกเต เดตเต€เตผเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดถเดฐเดฟเดฏเดพเดฃเต, เดˆ เดฎเต†เด•เตเด•เดพเดจเดฟเดธเดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณ coroutines-เดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฏเดฟ เดธเด‚เดญเดพเดตเดจ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต (Asyncify-เดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† coroutines เดŽเดดเตเดคเดฟเดฏเดฟเดฐเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† Emterpreter-เดจเต เดเด•เดฆเต‡เดถเด‚ เด’เดฐเต‡ API เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต, เดจเดฟเด™เตเด™เตพ เด…เดตเดฏเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต).

เด‡เดชเตเดชเต‹เตพ, WASM-เตฝ เดธเดฎเดพเดนเดฐเดฟเดšเตเดšเดคเตเด‚ Emterpreter เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเดšเตเดšเดคเตเดฎเดพเดฏ เด•เต‹เดกเต เดตเดฟเดญเดœเดฟเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต เด‡เดคเตเดตเดฐเต† เด•เดดเดฟเดžเตเดžเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดฌเตเดฒเต‹เด•เตเด•เต เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด‡เดคเตเดตเดฐเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ (เด…เดตเตผ เดชเดฑเดฏเตเดจเตเดจเดคเต เดชเต‹เดฒเต† เด…เดŸเตเดคเตเดค เดถเตเดฐเต‡เดฃเดฟเดฏเดฟเตฝ เด•เดพเดฃเตเด•...). เด…เดคเดพเดฏเดคเต, เด…เดตเดธเดพเดจเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เดฐเดธเด•เดฐเดฎเดพเดฏ เดฒเต‡เดฏเต‡เตผเดกเต เด•เดพเดฐเตเดฏเด‚ เดฒเดญเดฟเด•เตเด•เดฃเด‚:

  • เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเดšเตเดš เดฌเตเดฒเต‹เด•เตเด•เต I/O. เดถเดฐเดฟ, เดจเต‡เดฑเตเดฑเต€เดตเต เดชเตเดฐเด•เดŸเดจเดคเตเดคเต‹เดŸเต†เดฏเตเดณเตเดณ เดŽเตปเดตเดฟเดŽเด‚เดฏเต† เดจเดฟเด™เตเด™เตพ เดถเดฐเดฟเด•เตเด•เตเด‚ เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเต‹? ๐Ÿ™‚
  • เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เดธเดฎเดพเดนเดฐเดฟเดšเตเดš เดชเตเดฐเดงเดพเดจ QEMU เด•เต‹เดกเต (เดตเดฟเดตเตผเดคเตเดคเด•เตป, เดฎเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดกเต เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เดฎเตเดคเดฒเดพเดฏเดต)
  • WASM-เดฒเต‡เด•เตเด•เต เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เดธเดฎเดพเดนเดฐเดฟเดšเตเดš เด…เดคเดฟเดฅเดฟ เด•เต‹เดกเต

QEMU เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเดŸเต† เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ

เดจเดฟเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เดŠเดนเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เด—เดธเตเดฑเตเดฑเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเตเด•เตพ เด…เดจเตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดกเตเด‚ เดนเต‹เดธเตเดฑเตเดฑเต เดฎเต†เดทเต€เตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดกเตเด‚ QEMU-เตฝ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เด‡เดคเต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดคเดจเตเดคเตเดฐเดชเดฐเดฎเดพเดฃเต:

  • เด…เดคเดฟเดฅเดฟ เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเด•เตพ เด‰เดฃเตเดŸเต
  • เด†เด•เตเดจเตเดจเต เด†เด•เตเดธเดฟเดฒเดฑเต‡เดฑเตเดฑเดฑเตเด•เตพ, เด…เดคเดพเดฏเดคเต, Linux-เดฒเต† เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดตเดฟเตผเดšเตเดšเตเดตเดฒเตˆเดธเต‡เดทเดจเดพเดฏเตเดณเตเดณ KVM (เดชเดฐเดธเตโ€Œเดชเดฐเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เด…เดคเดฟเดฅเดฟ, เดนเต‹เดธเตเดฑเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เต), เดŽเดตเดฟเดŸเต†เดฏเตเด‚ JIT เด•เต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ TCG. QEMU 2.9 เดฎเตเดคเตฝ, เดตเดฟเตปเดกเต‹เดธเดฟเตฝ HAXM เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดตเดฟเตผเดšเตเดšเตเดตเดฒเตˆเดธเต‡เดทเตป เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเดฟเดจเตเดณเดณ เดชเดฟเดจเตเดคเตเดฃ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต (เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ)
  • เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดตเดฟเตผเดšเตเดšเตเดตเดฒเตˆเดธเต‡เดทเตป เด…เดฒเตเดฒ TCG เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเดจเต เด“เดฐเต‹ เดนเต‹เดธเตเดฑเตเดฑเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเดฟเดจเตเด‚ เดธเดพเตผเดตเดคเตเดฐเดฟเด• เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดŸเตเดŸเดฑเดฟเดจเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เด•เต‹เดกเต เดœเดจเดฑเต‡เดทเตป เดชเดฟเดจเตเดคเตเดฃเดฏเตเดฃเตเดŸเต.
  • ... เด•เต‚เดŸเดพเดคเต† เด‡เดคเดฟเดจเต†เดฒเตเดฒเดพเด‚ เดšเตเดฑเตเดฑเตเด‚ - เด…เดจเตเด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸ เดชเต†เดฐเดฟเดซเดฑเดฒเตเด•เตพ, เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด‡เดจเตเดฑเตผเดซเต‡เดธเต, เดฎเตˆเด—เตเดฐเต‡เดทเตป, เดฑเต†เด•เตเด•เต‹เตผเดกเต-เดฑเต€เดชเตเดฒเต‡ เดฎเตเดคเดฒเดพเดฏเดต.

เดตเดดเดฟเดฏเดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเดฎเต‹: QEMU เดตเดฟเดจเต เดฎเตเดดเตเดตเตป เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเดจเต†เดฏเตเด‚ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดนเต‹เดธเตเดฑเตเดฑเต เด•เต‡เตผเดฃเดฒเดฟเดฒเต† เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ เดชเตเดฐเต‹เดธเดธเดฑเตเด‚ เด…เดจเตเด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฌเตˆเดจเดฑเดฟ เด‡เตปเดธเตเดŸเตเดฐเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดพเดฏเดฟ AFL เดซเดธเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. QEMU-เดจเตเดฑเต† เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจ เดฐเต€เดคเดฟ JS-เดฒเต‡เด•เตเด•เต เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹? ๐Ÿ˜‰

เดฆเต€เตผเด˜เด•เดพเดฒ เดธเตเดตเดคเดจเตเดคเตเดฐ เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเดฑเตเด•เตพ เดชเต‹เดฒเต†, เด•เต‹เตพ เดตเดดเดฟเดฏเดพเดฃเต QEMU เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต configure ะธ make. เดจเดฟเด™เตเด™เตพ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต‡เตผเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเตเดตเต†เดจเตเดจเดฟเดฐเดฟเด•เตเด•เดŸเตเดŸเต†: เด’เดฐเต TCG เดฌเดพเด•เตเด•เต†เตปเดกเต, เดคเตเดฐเต†เดกเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ, เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚. Autoconf-เดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดคเดฏเดฟเตฝ เดธเดจเตเดคเต‹เดทเดฟเด•เตเด•เดพเตป/เดญเดฏเดชเตเดชเต†เดŸเดพเตป เดคเดฟเดฐเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฐเตเดคเต (เด‰เดšเดฟเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด…เดŸเดฟเดตเดฐเดฏเดฟเดŸเตเด•) - เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, configure QEMU-เด•เตพ เดชเตเดฐเดคเตเดฏเด•เตเดทเดคเตเดคเดฟเตฝ เดธเตเดตเดฏเด‚ เดŽเดดเตเดคเดฟเดฏเดคเดพเดฃเต, เด…เดต เด’เดจเตเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดคเดฒเตเดฒ.

เดตเต†เดฌเต เด…เดธเด‚เดฌเตเดฒเดฟ

เด…เดชเตเดชเต‹เตพ เดŽเดจเตเดคเดพเดฃเต เดตเต†เดฌเต เด…เดธเด‚เดฌเตเดฒเดฟ (WASM) เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเต? เด‡เดคเต Asm.js-เดจเต เดชเด•เดฐเดฎเดพเดฃเต, เดธเดพเดงเตเดตเดพเดฏ JavaScript เด•เต‹เดกเดพเดฏเดฟ เด‡เดจเดฟ เดจเดŸเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดจเต‡เดฐเต†เดฎเดฑเดฟเดšเตเดšเต, เด‡เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดฌเตˆเดจเดฑเดฟเดฏเตเด‚ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดคเดคเตเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เด…เดคเดฟเตฝ เด’เดฐเต เดชเต‚เตผเดฃเตเดฃเดธเด‚เด–เตเดฏ เดŽเดดเตเดคเตเดจเตเดจเดคเต เดชเต‹เดฒเตเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดฒเตเดฒ: เด’เดคเตเด•เตเด•เดคเตเดคเดฟเดจเดพเดฏเดฟ, เด‡เดคเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. LEB128.

Asm.js-เดจเตเดณเตเดณ เดฑเต€เดฒเต‚เดชเตเดชเดฟเด‚เด—เต เด…เตฝเด—เต‹เดฐเดฟเดคเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพ เด•เต‡เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เดพเด‚ - เด‡เดคเต "เด‰เดฏเตผเดจเตเดจ เดฒเต†เดตเตฝ" เดซเตเดฒเต‹ เด•เตบเดŸเตเดฐเต‹เตพ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† (เด…เดคเดพเดฏเดคเต, เดŽเด™เตเด•เดฟเตฝ-เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดฒเต‚เดชเตเดชเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต) เดชเตเดจเดƒเดธเตเดฅเดพเดชเดฟเด•เตเด•เดฒเดพเดฃเต, เด‡เดคเดฟเดจเดพเดฏเดฟ JS เดŽเดžเตเดšเดฟเดจเตเด•เตพ เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฒเต‹-เดฒเต†เดตเตฝ LLVM IR, เดชเตเดฐเต‹เดธเดธเตเดธเตผ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดฎเต†เดทเต€เตป เด•เต‹เดกเดฟเดจเต เด…เดŸเตเดคเตเดคเต. เดธเตเดตเดพเดญเดพเดตเดฟเด•เดฎเดพเดฏเตเด‚, QEMU เดจเตเดฑเต† เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏเด‚ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเดฟเดจเต เด…เดŸเตเดคเตเดคเดพเดฃเต. เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเต, เดชเต€เดขเดจเดคเตเดคเดฟเตปเตเดฑเต† เด…เดจเตเดคเตเดฏเด‚ เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเดฟเดชเตเดชเต‹เด•เตเด‚... เดชเดฟเดจเตเดจเต† เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเด‚, เดŽเด™เตเด•เดฟเตฝ-เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดฒเต‚เดชเตเดชเตเด•เดณเตเด‚!..

เดฌเดฟเดจเดพเดฐเดฟเตป เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเตŠเดฐเต เด•เดพเดฐเดฃเด‚ เด‡เดคเดพเดฃเต: WASM-เตฝ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต‹เดŸเต เดšเต‡เตผเดจเตเดจเตเดณเตเดณ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ เด‡เดคเดฟเดจเต เดธเตเดตเดพเดญเดพเดตเดฟเด•เดฎเดพเดฏเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดŽเดจเตเดจเดพเตฝ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เด…เดตเดฏเตเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเดณเตเดณ เดธเด‚เด•เตเดฐเดฎเดฃเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด—เตเดฐเดพเดซเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เต‹เดกเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเดฟเดจเต เด•เดดเดฟเดฏเตเด‚. เดถเดฐเดฟ, เด‡เดคเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ C/C++ API เดจเต เดชเดฟเดจเตเดจเดฟเตฝ WebAssembly เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดฎเดฑเดฏเตเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดชเดฑเดžเตเดžเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดŸเดฟเดธเดฟเดœเดฟ (เดšเต†เดฑเดฟเดฏ เด•เต‹เดกเต เดœเดจเดฑเต‡เดฑเตเดฑเตผ)

เดŸเดฟเดธเดฟเดœเดฟ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด†เดฏเดฟเดฐเตเดจเตเดจเต เดธเดฟ เด•เด‚เดชเตˆเดฒเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เดฌเดพเด•เตเด•เต†เตปเดกเต เดชเดฟเดจเตเดจเต€เดŸเต, เดชเตเดฐเดคเตเดฏเด•เตเดทเดคเตเดคเดฟเตฝ, เดœเดฟเดธเดฟเดธเดฟเดฏเตเดฎเดพเดฏเตเดณเตเดณ เดฎเดคเตเดธเดฐเดคเตเดคเต† เดจเต‡เดฐเดฟเดŸเดพเตป เด‡เดคเดฟเดจเต เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด…เดตเดธเดพเดจเด‚ เด…เดคเต เดนเต‹เดธเตเดฑเตเดฑเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเตเดณเตเดณ เด’เดฐเต เด•เต‹เดกเต เดœเดจเดฑเต‡เดทเตป เดฎเต†เด•เตเด•เดพเดจเดฟเดธเดฎเดพเดฏเดฟ QEMU- เตฝ เด…เดคเดฟเดจเตเดฑเต† เดธเตเดฅเดพเดจเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. เดšเดฟเดฒ เด…เดฎเต‚เตผเดคเตเดคเดฎเดพเดฏ เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต TCG เดฌเดพเด•เตเด•เต†เตปเดกเตเด‚ เด‰เดฃเตเดŸเต, เด…เดคเต เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต เด‰เดŸเดจเดŸเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด‡เดคเตเดคเดตเดฃ เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด•เตเดฏเตเด‡เดŽเด‚เดฏเตเดตเดฟเตฝ เดซเด‚เด—เตโ€Œเดทเดจเดฟเดฒเต‚เดŸเต† เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดค เดŸเดฟเดฌเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดธเดพเดงเตเดฏเดฎเดพเดฃเต. tcg_qemu_tb_exec, เด…เดคเต เดŽเดจเดฟเด•เตเด•เต เดตเดณเดฐเต† เด‰เดชเด•เดพเดฐเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ.

QEMU-เดฒเต‡เด•เตเด•เต เด’เดฐเต เดชเตเดคเดฟเดฏ TCG เดฌเดพเด•เตเด•เต†เตปเดกเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด‰เดชเดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต tcg/<ะธะผั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹> (เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, tcg/binaryen), เด•เต‚เดŸเดพเดคเต† เด…เดคเดฟเตฝ เดฐเดฃเตเดŸเต เดซเดฏเดฒเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต: tcg-target.h ะธ tcg-target.inc.c ะธ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเด• เด…เดคเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณเดคเดพเดฃเต configure. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดฑเตเดฑเต เดซเดฏเดฒเตเด•เตพ เด…เดตเดฟเดŸเต† เด‡เดŸเดพเด‚, เดŽเดจเตเดจเดพเตฝ, เดˆ เดฐเดฃเตเดŸเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเต‡เดฐเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŠเดนเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด…เดต เดฐเดฃเตเดŸเตเด‚ เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚: เด’เดจเตเดจเต เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดนเต†เดกเตเดกเตผ เดซเดฏเดฒเดพเดฏเดฟ (เด‡เดคเต เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต tcg/tcg.h, เด•เต‚เดŸเดพเดคเต† เด…เดคเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเดฟเดฒเต† เดฎเดฑเตเดฑเต เดซเดฏเดฒเตเด•เดณเดฟเดฒเตเดฎเตเดฃเตเดŸเต tcg, accel เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ), เดฎเดฑเตเดฑเตŠเดจเตเดจเต - เด’เดฐเต เด•เต‹เดกเต เดธเตเดจเดฟเดชเตเดชเดฑเตเดฑเดพเดฏเดฟ เดฎเดพเดคเตเดฐเด‚ tcg/tcg.c, เดŽเดจเตเดจเดพเตฝ เด‡เดคเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต† เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดซเด‚เด—เตเดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดจเดฎเตเดฃเตเดŸเต.

เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดถเดฆเดฎเดพเดฏ เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดžเดพเตป เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต, เดฒเตˆเดธเตปเดธเต เดนเต†เดกเดฑเดฟเตฝ เด‡เดคเต เดธเดคเตเดฏเดธเดจเตเดงเดฎเดพเดฏเดฟ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดฎเดฑเตเดฑเตŠเดฐเต เดฌเดพเด•เตเด•เต†เตปเดกเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดˆ เดฐเดฃเตเดŸเต เดซเดฏเดฒเตเด•เดณเตเดŸเต†เดฏเตเด‚ "เด…เดธเตเดฅเดฟเด•เต‚เดŸเด™เตเด™เตพ" เดžเดพเตป เดชเด•เตผเดคเตเดคเดฟ.

เดซเดฏเดฒเต tcg-target.h เดซเต‹เดฎเดฟเตฝ เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต #define-เด•เตพ:

  • เดŸเดพเตผเด—เต†เดฑเตเดฑเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเดฟเตฝ เดŽเดคเตเดฐ เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เตพ เด‰เดฃเตเดŸเต, เดŽเดคเตเดฐ เดตเต€เดคเดฟเดฏเตเดฃเตเดŸเต (เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเดฐเดฏเตเด‚ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเดฐเดฏเตเด‚ เด‰เดฃเตเดŸเต - "เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดŸเดพเตผเด—เต†เดฑเตเดฑเต" เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเดฟเดฒเต† เดฌเตเดฐเต—เดธเตผ เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏ เด•เต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดŽเดจเตเดคเดพเดฃเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เด•เต‚เดŸเตเดคเตฝ เดšเต‹เดฆเตเดฏเด‚. ...)
  • เดนเต‹เดธเตเดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดตเดฟเดจเตเดฏเดพเดธเด‚: x86-เดฒเตเด‚, TCI-เดฏเดฟเดฒเตเด‚, เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดžเดพเตป เด•เต‹เดกเต เดฌเดซเดฑเดฟเตฝ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เดฌเตˆเดจเดฑเดฟเตป เดฒเตˆเดฌเตเดฐเดฑเดฟ เด˜เดŸเดจเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเต‹เดฏเดฟเดจเตเดฑเดฑเตเด•เตพ เด‡เดŸเดพเตป เดชเต‹เด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป เดชเดฑเดฏเตเด‚: 4 เดฌเตˆเดฑเตเดฑเตเด•เตพ
  • เดฌเดพเด•เตเด•เต†เตปเดกเดฟเดจเต เดŽเดจเตเดคเต เด“เดชเตเดทเดฃเตฝ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ - เดฌเตˆเดจเต‡เดฑเดฟเดฏเดจเดฟเตฝ เดจเดฎเตเดฎเตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เดžเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เดฌเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดตเดฏเต† เด†เด•เตเดธเดฟเดฒเดฑเต‡เดฑเตเดฑเตผ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดŸเตเดŸเต†
  • เดฌเดพเด•เตเด•เต†เตปเดกเต เด…เดญเตเดฏเตผเดคเตเดฅเดฟเดšเตเดš TLB เด•เดพเดทเต†เดฏเตเดŸเต† เดเด•เดฆเต‡เดถ เดตเดฒเตเดชเตเดชเด‚ เดŽเดจเตเดคเดพเดฃเต. เด•เตเดฏเตเด‡เดŽเด‚เดฏเตเดตเดฟเตฝ เดŽเดฒเตเดฒเดพเด‚ เด—เต—เดฐเดตเดฎเตเดณเตเดณเดคเดพเดฃเต เดŽเดจเตเดจเดคเดพเดฃเต เดตเดธเตโ€Œเดคเตเดค: เด…เดคเดฟเดฅเดฟ เดŽเด‚เดŽเด‚เดฏเต เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเดคเตเดคเต เดฒเต‹เดกเต/เดธเตเดฑเตเดฑเต‹เตผ เดจเดฟเตผเดตเตเดตเดนเดฟเด•เตเด•เตเดจเตเดจ เดธเดนเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚ (เด…เดคเต เด‡เดฒเตเดฒเดพเดคเต† เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เดŽเดตเดฟเดŸเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚?), เด…เดต เด…เดตเดฏเตเดŸเต† เดตเดฟเดตเตผเดคเตเดคเดจ เด•เดพเดทเต† เด’เดฐเต เด˜เดŸเดจเดฏเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต, เดฌเตเดฐเต‹เดกเตเด•เดพเดธเตเดฑเตเดฑเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด‰เตพเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต. เดšเต†เดฑเตเดคเตเด‚ เดตเต‡เด—เดคเดฏเต‡เดฑเดฟเดฏเดคเตเดฎเดพเดฏ เด•เดฎเดพเตปเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดˆ เด˜เดŸเดจเดฏเดฟเดฒเต† เดเดคเต เด“เดซเตเดธเต†เดฑเตเดฑเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดพเดฃเต เดšเต‹เดฆเตเดฏเด‚.
  • เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเต‹ เดฐเดฃเตเดŸเต‹ เดฑเดฟเดธเตผเดตเต เดšเต†เดฏเตเดค เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เด‰เดฆเตเดฆเต‡เดถเด‚ เดฎเดพเดฑเตเดฑเดพเด‚, เด’เดฐเต เดซเด‚เด—เตเดทเดจเดฟเดฒเต‚เดŸเต† เดŸเดฟเดฌเดฟ เด•เต‹เดณเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เด“เดชเตเดทเดฃเดฒเดพเดฏเดฟ เดฐเดฃเตเดŸเต เดšเต†เดฑเดฟเดฏเดต เดตเดฟเดตเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚ inline- เดชเต‹เดฒเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ flush_icache_range (เดชเด•เตเดทเต‡ เด‡เดคเต เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ)

เดซเดฏเดฒเต tcg-target.inc.c, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเตฝ เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฃเต เด•เต‚เดŸเดพเดคเต† เดจเดฟเดฐเดตเดงเดฟ เดจเดฟเตผเดฌเดจเตเดงเดฟเดค เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

  • เดเดคเตŠเด•เตเด•เต† เด“เดชเตเดชเดฑเดฃเตเดŸเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเดพเด•เตเดฎเต†เดจเตเดจ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเต†เดฏเตเดณเตเดณ เดธเดฎเดพเดฐเด‚เดญเด‚. เดฎเดฑเตเดฑเตŠเดฐเต เดฌเดพเด•เตเด•เต†เตปเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเดพเตป เดจเด—เตเดจเดฎเดพเดฏเดฟ เดชเด•เตผเดคเตเดคเดฟเดฏเดคเต
  • เด’เดฐเต เด†เดจเตเดคเดฐเดฟเด• เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจ เดซเด‚เด—เตเดทเตป
  • เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดตเดฟเดŸเต† เด“เด•เตเดธเดฟเดฒเดฑเดฟ เดซเด‚เด—เตเดทเดจเตเด•เตพ เดจเตฝเด•เดพเด‚, เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดซเด‚เด—เตเดทเดจเตเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ tcg/tcg.c

เดŽเดจเดฟเด•เตเด•เดพเดฏเดฟ, เดžเดพเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดคเดจเตเดคเตเดฐเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต: เด…เดŸเตเดคเตเดค เดตเดฟเดตเตผเดคเตเดคเดจ เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เดตเดพเด•เตเด•เตเด•เดณเดฟเตฝ, เดžเดพเตป เดจเดพเดฒเต เดชเต‹เดฏเดฟเดจเตเดฑเดฑเตเด•เตพ เดŽเดดเตเดคเดฟ: เด’เดฐเต เด†เดฐเด‚เดญ เด…เดŸเดฏเดพเดณเด‚ (เดธเดฎเต€เดชเดคเตเดคเตเดณเตเดณ เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดฎเต‚เดฒเตเดฏเด‚ 0xFFFFFFFF, เด‡เดคเต เดŸเดฟเดฌเดฟเดฏเตเดŸเต† เดจเดฟเดฒเดตเดฟเดฒเต† เด…เดตเดธเตเดฅ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดšเตเดšเต), เดธเดจเตเดฆเตผเดญเด‚, เดœเดจเดฑเต‡เดฑเตเดฑเดกเต เดฎเตŠเดกเตเดฏเต‚เตพ, เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเดจเตเดณเตเดณ เดฎเดพเดœเดฟเด•เต เดจเดฎเตเดชเตผ. เด†เดฆเตเดฏเด‚ เด…เดŸเดฏเดพเดณเด‚ เด‡เดŸเตเดŸเต 0xFFFFFFFF - nเดŽเดตเดฟเดŸเต† n - เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดชเต‹เดธเดฟเดฑเตเดฑเต€เดตเต เดธเด‚เด–เตเดฏ, เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ เด…เดคเต เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเดฑเดฟเดฒเต‚เดŸเต† เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด…เดคเต 1 เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต. 0xFFFFFFFE, เดธเดฎเดพเดนเดพเดฐเด‚ เดจเดŸเดจเตเดจเต, เดฎเตŠเดกเตเดฏเต‚เตพ เดซเด‚เด—เตโ€Œเดทเตป เดŸเต‡เดฌเดฟเดณเดฟเตฝ เดธเด‚เดฐเด•เตเดทเดฟเดšเตเดšเต, เด’เดฐเต เดšเต†เดฑเดฟเดฏ โ€œเดฒเต‹เดžเตเดšเดฑเดฟเดฒเต‡เด•เตเด•เตโ€ เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดšเต†เดฏเตเดคเต, เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดทเตป เดชเต‹เดฏเดฟ tcg_qemu_tb_exec, เด•เต‚เดŸเดพเดคเต† QEMU เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตŠเดกเตเดฏเต‚เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดคเต.

เด•เตเดฒเดพเดธเดฟเด•เตเด•เตเด•เตพ เดชเดฐเดพเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป, "เด•เตเดฐเดšเตเดšเต, เดชเตเดฐเต‹เดœเดฑเดฟเดจเตเดฑเต† เดนเตƒเดฆเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดˆ เดถเดฌเตเดฆเดคเตเดคเดฟเตฝ เดŽเดคเตเดฐเดฎเดพเดคเตเดฐเด‚ เด‡เดดเดšเต‡เตผเดจเตเดจเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต ...". เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด“เตผเดฎเตเดฎ เดŽเดตเดฟเดŸเต†เดฏเต‹ เดšเต‹เตผเดจเตเดจเตเดชเต‹เดฏเดฟ. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด‡เดคเต เด•เตเดฏเตเด‡เดŽเด‚เดฏเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเต†เดฎเตเดฎเดฑเดฟ เด†เดฏเดฟเดฐเตเดจเตเดจเต! เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เด•เต‹เดกเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดŸเตเดคเตเดค เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เดŽเดดเตเดคเตเดฎเตเดชเต‹เตพ (เดจเดจเตเดจเดพเดฏเดฟ, เด…เดคเดพเดฏเดคเต, เด’เดฐเต เดชเต‹เดฏเดฟเดจเตเดฑเตผ), เดฎเตเดฎเตเดชเต เดˆ เดธเตเดฅเดฒเดคเตเดคเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจ เดฒเดฟเด™เตเด•เต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ, เดชเด•เตเดทเต‡ เด‡เดคเต เดธเดนเดพเดฏเดฟเดšเตเดšเดฟเดฒเตเดฒ. เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ, เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, QEMU เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเดฟเตฝ เดฎเต†เดฎเตเดฎเดฑเดฟ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดตเดฟเดŸเต† เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค เด•เต‹เดกเต เดŽเดดเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฌเดซเตผ เดคเต€เตผเดจเตเดจเดพเตฝ, เด•เต‹เดกเต เดชเตเดฑเดคเตเดคเต‡เด•เตเด•เต เดตเดฒเดฟเดšเตเดšเต†เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เด…เดŸเตเดคเตเดคเดคเต เด…เดคเดฟเดจเตเดฑเต† เดธเตเดฅเดพเดจเดคเตเดคเต เดŽเดดเตเดคเดพเตป เดคเตเดŸเด™เตเด™เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด•เต‹เดกเต เดชเด เดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, เดฎเดพเดœเดฟเด•เต เดจเดฎเตเดชเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด‚, เด†เดฆเตเดฏ เดชเดพเดธเดฟเตฝ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเต†เดฑเตเดฑเต เดตเดฐเตเดคเตเดคเดฟ, เดนเต€เดชเตเดชเต เดกเดฟเดธเต‹เตผเดกเต‡เดทเดจเดฟเตฝ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป เดŽเดจเตเดจเต† เด…เดจเตเดตเดฆเดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ. เดŽเดจเตเดจเดพเตฝ เดชเดฟเดจเตเดจเต€เดŸเต เดŽเดจเตเดฑเต† เดซเด‚เด—เตโ€Œเดทเตป เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเตป เด†เดฐเดพเดฃเต เดฌเดซเตผ เดฎเดพเดฑเตเดฑเดฟเดฏเต†เดดเตเดคเตเดจเตเดจเดคเต? เดŽเด‚เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตป เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เด‰เดชเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดžเดพเตป เด’เดฐเต เดชเตเดฐเดถเตโ€Œเดจเดคเตเดคเดฟเตฝ เด…เด•เดชเตเดชเต†เดŸเตเดŸเดชเตเดชเต‹เตพ, เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดŸเดพเด•เตเดจเตเดจ เด•เต‹เดกเต เดจเต‡เดฑเตเดฑเต€เดตเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดคเต, เด…เดคเดฟเตฝ เดฎเต‹เดธเดฟเดฒเตเดฒ เดฑเต†เด•เตเด•เต‹เตผเดกเต-เดฑเต€เดชเตเดฒเต‡ เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟ... เดชเตŠเดคเตเดตเต‡, เด…เดตเดธเดพเดจเด‚ เดžเดพเตป เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ: เด“เดฐเต‹ เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเตเด‚, เดŽ struct TranslationBlock เด…เดคเดฟเดจเตเดฑเต† เดตเดฟเดตเดฐเดฃเดคเตเดคเต‹เดŸเต†. เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต†เดจเตเดจเต เดŠเดนเดฟเด•เตเด•เตเด•... เด…เดคเต เดถเดฐเดฟเดฏเดพเดฃเต, เดฌเดซเดฑเดฟเดฒเต† เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเต เดคเตŠเดŸเตเดŸเตเดฎเตเดฎเตเดชเต. เด‡เดคเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏ เดžเดพเตป เด•เตเดฐเดšเตเดšเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต (เดšเดฟเดฒเดคเต เดŽเด™เตเด•เดฟเดฒเตเด‚), เด•เต‚เดŸเดพเดคเต† เดฎเดพเดœเดฟเด•เต เดจเดฎเตเดชเตผ เดชเตเดฑเดคเตเดคเต†เดฑเดฟเดžเตเดžเต, เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดตเดพเด•เตเด•เตเด•เตพ เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟ struct TranslationBlock, เดตเดฟเดตเตผเดคเตเดคเดจ เด•เดพเดทเต† เดชเตเดจเดƒเดธเดœเตเดœเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ เดตเต‡เด—เดคเตเดคเดฟเตฝ เด•เดŸเดจเตเดจเตเดชเต‹เด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฑเตเดฑ เดฒเดฟเด™เตเด•เตเดกเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดšเดฟเดฒ เดŠเดจเตเดจเตเดตเดŸเดฟเด•เตพ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเต: เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด•เต‹เดกเต เดฌเดซเดฑเดฟเตฝ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เดชเต‹เดฏเดฟเดจเตเดฑเดฑเตเด•เตพ - เด…เดตเดฏเดฟเตฝ เดšเดฟเดฒเดคเต เดฒเดณเดฟเดคเดฎเดพเดฃเต BinaryenExpressionRef, เด…เดคเดพเดฏเดคเต, เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค เด…เดŸเดฟเดธเตเดฅเดพเดจ เดฌเตเดฒเต‹เด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดฐเต‡เด–เต€เดฏเดฎเดพเดฏเดฟ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเต‡เดฃเตเดŸ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เตพ เด…เดตเตผ เดจเต‹เด•เตเด•เตเดจเตเดจเต, เดญเดพเด—เด‚ เดฌเดฟเดฌเดฟเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเดณเตเดณ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดตเตเดฏเดตเดธเตเดฅเดฏเดพเดฃเต, เดญเดพเด—เด‚ เดŽเดตเดฟเดŸเต‡เด•เตเด•เดพเดฃเต เดชเต‹เด•เต‡เดฃเตเดŸเดคเต. เดถเดฐเดฟ, เดฑเดฟเดฒเต‚เดชเตเดชเดฑเดฟเดจเดพเดฏเดฟ เด‡เดคเดฟเดจเด•เด‚ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏ เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ เด‰เดฃเตเดŸเต, เด…เดคเต เดตเตเดฏเดตเดธเตเดฅเด•เตพเด•เตเด•เดจเตเดธเดฐเดฟเดšเตเดšเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด…เดตเดฏเต† เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป, เด…เดตเดฏเต†เดฒเตเดฒเดพเด‚ เด•เตเดฑเดžเตเดžเดคเต เดจเดพเดฒเต เดฌเตˆเดฑเตเดฑเตเด•เดณเดพเตฝ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด…เดจเตเดฎเดพเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เดฒเต‡เดฌเดฒเดฟเดจเดพเดฏเดฟ เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เดฐเดฃเตเดŸเต เดฌเดฟเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เตพ เด“เตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดตเดดเดฟเดฏเดฟเตฝ, TCG เดฒเต‚เดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเด•เดŸเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เดพเดฐเดฃเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด…เดคเตเดคเดฐเด‚ เดฒเต‡เดฌเดฒเตเด•เตพ QEMU-เตฝ เด‡เดคเดฟเดจเด•เด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดฌเดฟเดจเดพเดฐเต†เตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

WebAssembly-เดฒเต† เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเดฟเตฝ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดตเดฏเดฟเตฝ เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เด’เดฐเต เดฌเต‹เดกเดฟ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เด’เดฐเต เดชเดฆเดชเตเดฐเดฏเต‹เด—เดฎเดพเดฃเต. เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เตพ เดเด•เต€เด•เตƒเดคเดตเตเด‚ เดฌเตˆเดจเดฑเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดฎเดพเดฃเต, เดฎเดฑเตเดฑเต เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเตเด•เตพ เด…เดŸเด™เตเด™เตเดจเตเดจ เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ, เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเตเดฐเดตเดพเดนเด‚ เดฎเตเดคเดฒเดพเดฏเดต. เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต†, เด‡เดตเดฟเดŸเต†เดฏเตเดณเตเดณ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเตเดฐเดตเดพเดนเด‚ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดถเดพเด–เด•เตพ, เดฒเต‚เดชเตเดชเตเด•เตพ, เดซเด‚เด—เตเดทเตป เด•เต‹เดณเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต เด†เดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ JS-เดฒเต† เดชเต‹เดฒเต† เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ. เด†เด—เต‹เดณ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต, เดชเด•เตเดทเต‡ เดžเดพเตป เด…เดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป เด…เดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเดฟเดฒเตเดฒ.

เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพเด•เตเด•เต เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต, เดชเต‚เดœเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เด•เตเด•เดฎเดฟเดŸเตเดŸเต, เดคเดฐเด‚: int32 / int64 / float / double. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดซเด‚เด—เตเดทเดจเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดจเตเดจ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเดพเดฃเต เด†เดฆเตเดฏเดคเตเดคเต† n เดฒเต‹เด•เตเด•เตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ. เด•เตบเดŸเตเดฐเต‹เตพ เดซเตเดฒเต‹เดฏเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด‡เดตเดฟเดŸเต†เดฏเตเดณเตเดณเดคเต†เดฒเตเดฒเดพเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚, เดชเต‚เตผเดฃเตเดฃเดธเด‚เด–เตเดฏเด•เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ "เด’เดชเตเดชเดฟเดŸเตเดŸ/เด…เตบเดธเตˆเดกเต" เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดตเดนเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•: เดจเดฎเตเดชเตผ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเต เด“เดชเตเดชเดฑเต‡เดทเตป เด•เต‹เดกเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตŠเดคเตเดตเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, Binaryen เดจเตฝเด•เตเดจเตเดจเต เดฒเดณเดฟเดคเดฎเดพเดฏ C-API: เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•, เด…เดตเดจเดฟเตฝ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• - เดเด•เต€เด•เตƒเดค, เดฌเตˆเดจเดฑเดฟ, เดฎเดฑเตเดฑเต เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ, เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเตเดฐเดตเดพเดนเด‚ เดฎเตเดคเดฒเดพเดฏเดต. เด…เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเดฆเดชเตเดฐเดฏเต‹เด—เด‚ เด…เดคเดฟเดจเตเดฑเต† เดฌเต‹เดกเดฟเดฏเดพเดฏเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เตเด‚ เดŽเดจเตเดจเต†เดชเตเดชเต‹เดฒเต† เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ เดธเด‚เด•เตเดฐเดฎเดฃ เด—เตเดฐเดพเดซเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดฑเต€เดฒเต‚เดชเตเดชเตผ เด˜เดŸเด•เด‚ เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚. เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเดคเตเดคเต‹เดณเด‚, เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเตเดฑเต† เด…เดคเดฟเดฐเตเด•เตพเด•เตเด•เดชเตเดชเตเดฑเดคเตเดคเต‡เด•เตเด•เต เดชเต‹เด•เดพเดคเตเดคเดฟเดŸเดคเตเดคเต‹เดณเด‚, เด’เดฐเต เดฌเตเดฒเต‹เด•เตเด•เดฟเดฒเต† เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เดซเตเดฒเต‹เดฏเตเดŸเต† เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ - เด…เดคเดพเดฏเดคเต, เด†เดจเตเดคเดฐเดฟเด• เดซเดพเดธเตเดฑเตเดฑเต เดชเดพเดคเตเดคเต / เดธเตเดฒเต‹ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป TLB เด•เดพเดทเต† เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เด•เต‹เดกเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเดพเดคเตเดคเต เดฌเตเดฐเดพเดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดชเด•เตเดทเต‡ "เดฌเดพเดนเตเดฏ" เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเตเดฐเดตเดพเดนเดคเตเดคเดฟเตฝ เด‡เดŸเดชเต†เดŸเดฐเตเดคเต. เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฑเต€เดฒเต‚เดชเตเดชเดฑเดฟเดจเต† เดฎเต‹เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดคเดฟเดจเตเดฑเต† เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเด•เตเด‚; เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เตพ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดคเดฟเดจเต เด…เดจเตเดตเดฆเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เตพ, เดซเด‚เด—เตเดทเดจเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต เด…เดชเตเดฐเดคเตเดฏเด•เตเดทเดฎเดพเด•เตเด‚. เด…เดฐเด™เตเด™เต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด…เดจเดพเดตเดถเตเดฏเดฎเดพเดฏเดฟ เด’เดฐเต เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเตผ เด‡เตปเดธเตเดฑเตเดฑเตปเดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดคเต†เดฏเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเดคเต†เดฏเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‹เดกเต เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เดˆ เดฒเต‹เดœเดฟเด•เต เด’เดฐเต C++ เดซเดฏเดฒเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•เดฏเตเด‚ เด…เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เดฎเตเดดเตเดตเตป C++ API-เดฏเตเด‚ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เดพเด‚- เดชเตŠเดคเดฟเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟ.

เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด•เต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป

// ะฝะฐัั‚ั€ะพะธั‚ัŒ ะณะปะพะฑะฐะปัŒะฝั‹ะต ะฟะฐั€ะฐะผะตั‚ั€ั‹ (ะผะพะถะฝะพ ะฟะพะผะตะฝัั‚ัŒ ะฟะพั‚ะพะผ)
BinaryenSetAPITracing(0);

BinaryenSetOptimizeLevel(3);
BinaryenSetShrinkLevel(2);

// ัะพะทะดะฐั‚ัŒ ะผะพะดัƒะปัŒ
BinaryenModuleRef MODULE = BinaryenModuleCreate();

// ะพะฟะธัะฐั‚ัŒ ั‚ะธะฟั‹ ั„ัƒะฝะบั†ะธะน (ะบะฐะบ ัะพะทะดะฐะฒะฐะตะผั‹ั…, ั‚ะฐะบ ะธ ะฒั‹ะทั‹ะฒะฐะตะผั‹ั…)
helper_type  BinaryenAddFunctionType(MODULE, "helper-func", BinaryenTypeInt32(), int32_helper_args, ARRAY_SIZE(int32_helper_args));
// (int23_helper_args ะฟั€ะธะพะฑ^WัะพะทะดะฐัŽั‚ัั ะพั‚ะดะตะปัŒะฝะพ)

// ัะบะพะฝัั‚ั€ัƒะธั€ะพะฒะฐั‚ัŒ ััƒะฟะตั€-ะผะตะณะฐ ะฒั‹ั€ะฐะถะตะฝะธะต
// ... ะฝัƒ ั‚ัƒั‚ ัƒะถ ะฒั‹ ะบะฐะบ-ะฝะธะฑัƒะดัŒ ัะฐะผะธ :)

// ะฟะพั‚ะพะผ ัะพะทะดะฐั‚ัŒ ั„ัƒะฝะบั†ะธัŽ
BinaryenAddFunction(MODULE, "tb_fun", tb_func_type, func_locals, FUNC_LOCALS_COUNT, expr);
BinaryenAddFunctionExport(MODULE, "tb_fun", "tb_fun");
...
BinaryenSetMemory(MODULE, (1 << 15) - 1, -1, NULL, NULL, NULL, NULL, NULL, 0, 0);
BinaryenAddMemoryImport(MODULE, NULL, "env", "memory", 0);
BinaryenAddTableImport(MODULE, NULL, "env", "tb_funcs");

// ะทะฐะฟั€ะพัะธั‚ัŒ ะฒะฐะปะธะดะฐั†ะธัŽ ะธ ะพะฟั‚ะธะผะธะทะฐั†ะธัŽ ะฟั€ะธ ะถะตะปะฐะฝะธะธ
assert (BinaryenModuleValidate(MODULE));
BinaryenModuleOptimize(MODULE);

... เดžเดพเตป เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดฑเดจเตเดจเต†เด™เตเด•เดฟเตฝ, เด•เตเดทเดฎเดฟเด•เตเด•เดฃเด‚, เด‡เดคเต เดธเตเด•เต†เดฏเดฟเดฒเดฟเดจเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเดฎเตเดณเตเดณเดคเดพเดฃเต, เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเดฒเตเดฃเตเดŸเต.

เด‡เดชเตเดชเต‹เตพ เด•เตเดฐเดพเด•เตเด•เต-เดซเต†เด•เตเดธเต-เดชเต†เด•เตเดธเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดจเตเดจเต:

static char buf[1 << 20];
BinaryenModuleOptimize(MODULE);
BinaryenSetMemory(MODULE, 0, -1, NULL, NULL, NULL, NULL, NULL, 0, 0);
int sz = BinaryenModuleWrite(MODULE, buf, sizeof(buf));
BinaryenModuleDispose(MODULE);
EM_ASM({
  var module = new WebAssembly.Module(new Uint8Array(wasmMemory.buffer, $0, $1));
  var fptr = $2;
  var instance = new WebAssembly.Instance(module, {
      'env': {
          'memory': wasmMemory,
          // ...
      }
  );
  // ะธ ะฒะพั‚ ัƒะถะต ัƒ ะฒะฐั ะตัั‚ัŒ instance!
}, buf, sz);

QEMU, JS เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดฒเต‹เด•เด™เตเด™เดณเต† เดŽเด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดคเต‡ เดธเดฎเดฏเด‚ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตโ€Œเดค เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เดตเต‡เด—เดคเตเดคเดฟเตฝ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚, เด’เดฐเต เด…เดฑเต‡ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเต (เดฒเต‹เดžเตเดšเดฑเดฟเดฒเต‡เด•เตเด•เต เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเตเดŸเต† เด’เดฐเต เดชเดŸเตเดŸเดฟเด•), เดœเดจเดฑเต‡เดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดค เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เด…เดตเดฟเดŸเต† เดธเตเดฅเดพเดชเดฟเดšเตเดšเต. เดธเต‚เดšเดฟเด• เดตเต‡เด—เดคเตเดคเดฟเตฝ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเตป, เดชเต‚เดœเตเดฏเด‚ เดชเดฆ เดตเดฟเดตเตผเดคเตเดคเดจ เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเตเดฑเต† เดธเต‚เดšเดฟเด• เด†เดฆเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดชเดฟเดจเตเดจเต€เดŸเต เดˆ เดซเต‹เตผเดฎเตเดฒ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เดฃเด•เตเด•เดพเด•เตเด•เดฟเดฏ เดธเต‚เดšเดฟเด• เดซเต€เตฝเดกเดฟเดฒเต‡เด•เตเด•เต เดฏเต‹เดœเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ. struct TranslationBlock.

เดตเดดเดฟเดฏเดฟเตฝ, เดกเต†เดฎเต‹ (เดจเดฟเดฒเดตเดฟเตฝ เด’เดฐเต เดฎเด™เตเด™เดฟเดฏ เดฒเตˆเดธเตปเดธเต เด‰เดณเตเดณเดคเต) เดซเดฏเตผเดซเต‹เด•เตเดธเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. Chrome เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เด†เดฏเดฟเดฐเตเดจเตเดจเต เดŽเด™เตเด™เดจเต†เดฏเต‹ เดคเดฏเตเดฏเดพเดฑเดพเดฏเดฟเดฒเตเดฒ WebAssembly เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เด†เดฏเดฟเดฐเดคเตเดคเดฟเดฒเดงเดฟเด•เด‚ เดธเด‚เดญเดตเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเดฒเต‡เด•เตเด•เต, เด…เดตเตผ เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เด’เดฐเต เดœเดฟเด—เดพเดฌเตˆเดฑเตเดฑเต เดตเต†เตผเดšเตเดตเตฝ เด…เดกเตเดฐเดธเต เดธเตเดชเต‡เดธเต เด…เดจเตเดตเดฆเดฟเดšเตเดšเต...

เด‡เดชเตเดชเต‡เดพเดดเดคเตเดคเต‡เด•เตเด•เต เด‡เดคเตเดฐเดฎเดพเดคเตเดฐเด‚. เด’เดฐเตเดชเด•เตเดทเต‡ เด†เตผเด•เตเด•เต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดฒเต‡เด–เดจเด‚ เด‰เดฃเตเดŸเดพเด•เตเด‚. เด…เดคเดพเดฏเดคเต, เด•เตเดฑเดžเตเดžเดคเต เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเต เดตเต†เดฑเตเดคเต† เดฌเตเดฒเต‹เด•เตเด•เต เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•. เดตเต†เดฌเต เด…เดธเด‚เดฌเตเดฒเดฟ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เดธเดฎเดพเดนเดพเดฐเด‚ เดœเต†เดŽเดธเต เดฒเต‹เด•เดคเตเดคเต เดชเดคเดฟเดตเต เดชเต‹เดฒเต† เด…เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เดพเด‚, เด•เดพเดฐเดฃเด‚ เดจเต‡เดฑเตเดฑเต€เดตเต เดฎเตŠเดกเตเดฏเต‚เตพ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเดจเตเดจเดคเตเดตเดฐเต† เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต เด‡เดชเตเดชเต‹เดดเตเด‚ เด‰เดฃเตเดŸเต.

เด’เดŸเตเดตเดฟเตฝ เด’เดฐเต เด•เดŸเด™เตเด•เดฅ: เดจเดฟเด™เตเด™เตพ เด’เดฐเต 32-เดฌเดฟเดฑเตเดฑเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเดฑเดฟเตฝ เด’เดฐเต เดฌเตˆเดจเดฑเดฟ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตโ€ŒเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เดฎเต†เดฎเตเดฎเดฑเดฟ เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เดณเดฟเดฒเต‚เดŸเต† เด•เต‹เดกเต เดฌเตˆเดจเต‡เดฑเดฟเดฏเดจเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต‹ 2-เดฌเดฟเดฑเตเดฑเต เด…เดกเตเดฐเดธเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดจเตเดฑเต† เดฎเตเด•เดณเดฟเดฒเต† 32 เดœเดฟเดฌเดฟเดฏเดฟเตฝ เดฎเดฑเตเดฑเต†เดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเดฎเต‹ เด•เดฏเดฑเตเดจเตเดจเต. เดฌเดฟเดจเดพเดฐเต†เดจเตเดฑเต† เด•เดพเดดเตเดšเดชเตเดชเดพเดŸเดฟเตฝ เด‡เดคเต เดตเดณเดฐเต† เดตเดฒเดฟเดฏ เดซเดฒเดฎเดพเดฏ เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดถเตเดจเด‚. เด‡เดคเดฟเดจเต† เดŽเด™เตเด™เดจเต† เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเด‚?

เด…เดกเตเดฎเดฟเดจเตเดฑเต† เดตเดดเดฟเดฏเดฟเตฝ

เดžเดพเตป เด‡เดคเต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดŽเดจเตเดฑเต† เด†เดฆเตเดฏเดคเตเดคเต† เดšเดฟเดจเตเดค "เดžเดพเตป 32-เดฌเดฟเดฑเตเดฑเต เดฒเดฟเดจเด•เตเดธเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดพเดฒเต‹?" เด…เดชเตเดชเต‹เตพ เด…เดกเตเดฐเดธเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดจเตเดฑเต† เดฎเตเด•เตพ เดญเดพเด—เด‚ เด•เต‡เตผเดฃเตฝ เด•เตˆเดตเดถเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚. เด’เดฐเต‡เดฏเตŠเดฐเต เดšเต‹เดฆเตเดฏเด‚ เดŽเดคเตเดฐเดคเตเดคเต‹เดณเด‚ เด…เดงเดฟเดจเดฟเดตเต‡เดถเด‚ เดšเต†เดฏเตเดฏเตเด‚: 1 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 2 เดœเดฟเดฌเดฟ.

เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฑเตเดŸเต† เดฐเต€เดคเดฟเดฏเดฟเตฝ (เดชเดฐเดฟเดถเต€เดฒเด•เตผเด•เตเด•เตเดณเตเดณ เด“เดชเตเดทเตป)

เดตเดฟเดฒเดพเดธ เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดจเตเดฑเต† เดฎเตเด•เดณเดฟเตฝ เด’เดฐเต เด•เตเดฎเดฟเดณ เดŠเดคเดพเด‚. เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดคเดจเตเดจเต† เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเดจเตเดจเดฟเดฒเตเดฒ - เด…เดตเดฟเดŸเต† เด‡เดคเดฟเดจเด•เด‚ เด’เดฐเต เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดŽเดจเตเดจเดพเตฝ "เดžเด™เตเด™เตพ เดชเดฐเดฟเดถเต€เดฒเด•เดฐเดพเดฃเต: เดŽเดฒเตเดฒเดพเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดฃเตเดŸเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต†เดจเตเดจเต เด†เตผเด•เตเด•เตเด‚ เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ..."

// 2gbubble.c
// Usage: LD_PRELOAD=2gbubble.so <program>

#include <sys/mman.h>
#include <assert.h>

void __attribute__((constructor)) constr(void)
{
  assert(MAP_FAILED != mmap(1u >> 31, (1u >> 31) - (1u >> 20), PROT_NONE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0));
}

... เด‡เดคเต Valgrind-เดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเต เดถเดฐเดฟเดฏเดพเดฃเต, เดชเด•เตเดทเต‡, เดญเดพเด—เตเดฏเดตเดถเดพเตฝ, Valgrind เดคเดจเตเดจเต† เดตเดณเดฐเต† เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดŽเดฒเตเดฒเดพเดตเดฐเต‡เดฏเตเด‚ เด…เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเดพเด•เตเด•เตเดจเตเดจเต :)

เดŽเดจเตเดฑเต† เดˆ เด•เต‹เดกเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต เด’เดฐเตเดชเด•เตเดทเต‡ เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดฟเด•เดšเตเดš เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด‚ เดจเตฝเด•เตเด‚...

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•