เบชเบญเบเบชเบฒเบกเบเบตเบเปเบญเบ Fabrice Bellard
- เปเบซเบผเปเบเปเบเบตเบ
- เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเบเปเปเบกเบตเบเบปเบงเบเบฑเบ kernel
- เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฎเบนเบเปเบเบเบเบฒเบเบเบฒเบชเบฒ
- เบชเบฐโเบซเบเบฑเบโเบชเบฐโเบซเบเบนเบโเบเปเบฒโเบเบงเบโเบซเบผเบฒเบโเบเบญเบโเบเบฑเบโเบชเบฐโเบเบฒโเบเบฑเบโเบเบฐโเปเบเบปเปเบฒโเบเบฒเบโเปเบฅเบฐโเปเบเบโ
เบเปเบฝเบงเบเบฑเบเบเบธเบเบเบตเบชเบฒเบก, เบเบญเบเบเบตเปเบเปเบญเบเบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเปเบเปเบงเปเบฒเปเบเบเบปเบงเบเบดเบเปเบฅเปเบง, เปเบเปเบซเบกเบ TCI, เบกเบฑเบเบเปเปเปเบกเปเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบเปเบเบทเปเบญเบเปเบเบเบเบตเปเบเบทเบเบเบตเบเบงเบฒเบกเบซเบกเบฒเบ, เปเบเป bytecode เบเบตเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบงเบเบกเบฑเบ, เปเบเปเบเบตเปเบเปเปเปเบเปเบเปเบฝเบเปเบเบเบเบงเบฒเบกเบชเปเบฒเบเบฑเบ - เปเบเบทเปเบญเบชเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ. Qemu เบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบซเบกเป, เบเปเบฒเบเปเบฒเบเปเบเบเบเบต, A C compiler เปเบกเปเบเบเบฝเบเบเป - เบเบฒเบเบเบฝเบเบเบปเบงเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเปเบฅเบทเปเบญเบเบญเบญเบเปเบ.
เปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบชเบญเบเบเบตเบเบญเบ tinkering leisurely เบเบฑเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ Qemu เปเบเปเบงเบฅเบฒเบซเบงเปเบฒเบเบเบญเบเบเปเบฒเบเบฐเปเบเบปเปเบฒ, prototype เบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบฒเบเบปเบ, เบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเป, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, Kolibri OS.
Emscripten เปเบกเปเบเบซเบเบฑเบ
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเบนเปเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเบเปเบฒเบเบงเบเบซเบผเบฒเบเปเบเปเบเบฒเบเบปเบ, เบเบปเบเปเบเปเบฎเบฑเบเบชเบธเบเบเปเบฒเบเปเบกเปเบ JavaScript. เบเบฒเบเบเบปเบ, เปเบเบฑเปเบ Type Script, เปเบเปเบเบทเปเบญเบเบเบปเปเบเบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเปเบเบฑเบเบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบชเบธเบเปเบเบเบฒเบเบเบฝเบเปเบงเบฑเบ. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, Emscripten เปเบกเปเบเบงเบดเบเบตเบเบตเปเบเบฐเปเบญเบปเบฒเบฅเบฐเบซเบฑเบ C เบซเบผเบท C ++ เบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบงเปเบฅเบฐเบฅเบงเบเบฅเบงเบกเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเปเบเบเบเบญเบกเบเบตเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเบเบญเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบ. เบชเบธเบ
เบเบฐเบเบฒเบเบฒเบก เบเบณ เบญเบดเบ
เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบง, เบเปเบญเบเบเปเปเปเบกเปเบเบเบปเบเบเปเบฒเบญเบดเบเบเบตเปเบเบดเบเบเบตเปเบเบฐเปเบญเบปเบฒ Qemu เปเบเบซเบฒ JavaScript. เบกเบตเบเปเบฒเบเบฒเบกเบเบตเปเบเบฒเบกเบขเบนเปเปเบเปเบงเบเบต ReactOS เบเปเบฒเบชเบดเปเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบเบเปเบเป Emscripten. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบญเบเบซเบเปเบฒเบเบตเป, เบกเบตเบเปเบฒเบงเบฅเบทเบงเปเบฒ Fabrice Bellard เปเบฎเบฑเบเบชเบดเปเบเบเบตเปเบชเปเบงเบเบเบธเบเบเบปเบ, เปเบเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบ jslinux, เปเบเบดเปเบเปเบเบปเปเบฒเบเบตเปเบเปเบญเบเบฎเบนเป, เปเบกเปเบเบเบฝเบเปเบเปเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเปเบเบทเปเบญเบเบฑเบเบฅเบธเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบฝเบเบเปเปเบ JS เบเปเบงเบเบเบปเบเปเบญเบ, เปเบฅเบฐเบเบทเบเบเบฝเบเบเบฒเบเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบ. เบเปเปเบกเบฒ, Virtual x86 เปเบเปเบเบทเบเบเบฝเบ - เปเบซเบผเปเบเบเบตเปเบเปเปเปเบเบปเปเบฒเปเบเปเบเปเบเบทเบเบเบฑเบเบเบตเบกเบกเบฒเบชเปเบฒเบฅเบฑเบเบกเบฑเบ, เปเบฅเบฐ, เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบง, "เบเบงเบฒเบกเปเบเบฑเบเบเบดเบ" เบเบตเปเบเบดเปเบเปเบซเบเปเบเบงเปเบฒเบเบญเบ emulation เปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเป SeaBIOS เปเบเบฑเบ firmware. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบกเบตเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเบตเปเบเบฐ Port Qemu เบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบเบเบฑเปเบเปเบเบเปเบเป Emscripten - เบเปเบญเบเบเบฐเบเบฒเบเบฒเบกเปเบฎเบฑเบเบชเบดเปเบเบเบตเป
เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเบเบฐเปเบเบดเปเบเบเบทเบงเปเบฒ, เบเบตเปเปเบกเปเบเปเบซเบผเปเบเบเปเปเบกเบนเบ, เบเบตเปเปเบกเปเบ Emscripten - เปเบญเบปเบฒเบกเบฑเบเปเบฅเบฐเบฅเบงเบเบฅเบงเบก. เปเบเปเบเบฑเบเบกเบตเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเป Qemu เบเบถเปเบเบเบฑเบ, เปเบฅเบฐเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเบซเปเบชเบฐเบซเบกเบธเบเปเบซเบผเบปเปเบฒเบเบฑเปเบเบเบถเปเบเบเบฑเบ, เปเบฅเบฐเบญเบทเปเบเป, เปเบฅเบฐเบซเบเบถเปเบเปเบเบเบฑเปเบเปเบกเปเบ.
เปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบกเบตเบเบงเบฒเบกเบเบดเบเบเบตเปเบเบฝเบเปเบเปเบเบฝเบเบเบฒเบเบเบปเบเปเบเบเบเบญเบ libffi เบเบฑเบ JS เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบกเบฒเบเบเบฐเบเบฒเบ, เปเบเปเปเบเบเบตเปเบชเบธเบเบเปเบญเบเบเปเปเบชเบฑเบเบชเบปเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบชเปเบฒเบเปเบเบฅเป header เบเบญเบเบเปเบญเบเปเบเบทเปเบญเปเบซเปเบเบงเบเปเบเบปเบฒเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบฅเบฐเบซเบฑเบเบเบตเปเบกเบตเบขเบนเป - เบเปเบญเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบซเบเบฑเบเปเบเป, เบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเปเบงเบปเปเบฒเบงเปเบฒ, "เบงเบฝเบเบเบฒเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบเปเบกเปเบ "เบเบงเบเปเบฎเบปเบฒเปเบเปเบซเบผเบฒเบเบเป?" เบเปเบญเบเบเปเบญเบ port libffi เปเบเบซเบฒเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบญเบทเปเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเปเบงเบปเปเบฒ - เปเบเบเบเบต, Emscripten เบกเบตเบเบฑเบ macro เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบญเบ inline (เปเบ Javascript, เปเบกเปเบ - เบเบต, เปเบเบเปเปเบเบฒเบกเบชเบฐเบเบฒเบเบฑเบเบเบฐ, เบเบฑเปเบเบเบฑเปเบ assembler), เปเบฅเบฐเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบฅเปเบเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบฒเบเบเบดเบเปเบเป. เปเบเบเบเบปเปเบงเปเบ, เบซเบผเบฑเบเบเบฒเบ tinkering เบเบฑเบ fragments libffi เบเบตเปเบเบถเปเบเบเบฑเบเปเบงเบเบตเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบงเบฅเบฒ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบฎเบฑเบเบเบฒเบเบฅเบฐเบซเบฑเบเบเบตเปเบฅเบงเบเบฅเบงเบกเปเบเปเปเบฅเบฐเปเบฅเปเบเบกเบฑเบเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบปเปเบฒเบกเบฒ. เปเบเบทเปเบญเบเบงเบฒเบกเปเบเบเปเบเบเบญเบเบเปเบญเบ, เบเบฒเบเบเบปเบเบชเบญเบเปเบเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ. เบเบปเบเบเบฐเบฅเบถเบเบเบฑเบเบเบงเบฒเบกเบชเบฐเบซเบฅเบฒเบเบเบญเบเบเปเบญเบ - เบเปเปเปเบเบฑเบเปเบฅเบทเปเบญเบเบเบฐเบซเบฅเบปเบ, เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบฑเปเบเบเปเบฒเบญเบดเบ - เบเปเบญเบ, เบเบฑเบเบเปเปเปเบเบทเปเบญเบเบฒเบเบญเบเบเปเบญเบ, เปเบเปเปเบเปเบเบดเปเบเบฅเบฐเบซเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เปเบเบทเปเบญเบเบฐเปเบกเบตเบเบเปเบญเบเบเบตเปเบเบฐเบเบธเบเบเปเปเปเบ. เบเบตเปเบเบตเปเบเปเบญเบเปเบเปเบซเบกเบฒเบเปเบซเปเบเปเบเบทเบญเบเปเบเบเปเบเบฑเบเบเบฑเปเบเบเบตเบชเบญเบ - เบชเบดเปเบเบเบฝเบงเบเบตเปเบซเบเปเบฒเบเบตเปเบเบญเบเบเปเบญเบเปเบฎเบฑเบเปเบกเปเบ ffi_call
- เบเบตเปโเบฅเบฒเบโเบเบฒเบโเบเบฒเบโเปเบโเบชเบปเบโเบเบปเบโเบชเปเบฒโเปเบฅเบฑเบโ. เบเปเปเบกเบตเบเบฒเบเปเบเบซเบฒเบเบปเบงเบกเบฑเบเปเบญเบ. เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบชเบปเปเบเบเปเบฒเบฎเปเบญเบเบเปเบเบฒเบเบเบถเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเบญเบเบเปเบญเบ, เปเบเบดเปเบเปเบเปเปเบเบเปเปเบเบดเบเบเบฒเบเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเบฑเบเปเบเบเบเบฑเบเบเบฑเบเบฎเบฝเบ Olympiad - เบเบปเบงเปเบฅเบเบเบตเปเปเบเปเบเบดเบเบเปเปเบเบงเบเบเบทเบเบเบฝเบเบเบฝเบเบเบฑเบ. a == b
เปเบฅเบฐเปเบเบดเบเปเบกเปเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบ a - b < EPS
- เบเปเบฒเบเบเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบทเปเปเบกเบเบนเบ, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ 0 เบเบฐเบเบฒเบเปเบเบฑเบเบซเบผเบฒเบเปเบเบปเปเบฒเบเบฑเบ 1/3 ... เปเบเบเบเบปเปเบงเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบกเบฒเบเบฑเบเบเบญเบเบเบตเปเปเบเปเบเบญเบเบเบญเบ libffi, เปเบเบดเปเบเบเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบ, เปเบฅเบฐเบชเบดเปเบเบเบตเป glib เปเบกเปเบ. เบฅเบงเบเบฅเบงเบก - เบเปเบญเบเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบ, เบเปเบญเบเบเบฐเปเบเบตเปเบกเบกเบฑเบเบเปเปเบกเบฒ. เบเบญเบเบซเบฒเบฅเปเบงเบเบซเบเปเบฒ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบงเบปเปเบฒเบงเปเบฒ, เบเปเบญเบเบงเปเบฒเบกเบฑเบเบซเบฑเบเบญเบญเบ, compiler เบเปเปเปเบเปเบฅเบงเบกเปเบญเบปเบฒเบซเบเปเบฒเบเบตเป libffi เปเบเบฅเบฐเบซเบฑเบเบชเบธเบเบเปเบฒเบ.
เปเบเป, เบเบฑเปเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบงเบปเปเบฒเปเบฅเปเบง, เบกเบตเบเปเปเบเปเบฒเบเบฑเบเบเบฒเบเบขเปเบฒเบ, เปเบฅเบฐเปเบเบเบฑเบเบเบฒเบเบฒเบเบเปเบฒเปเบเปเบเบฃเบตเบเบญเบเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเปเปเปเบเปเบเปเบฒเบเบปเบเปเบงเป, เบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบเปเปเบซเบเปเบฒเบเปเปเบเบซเบผเบฒเบเปเบเปเบเบทเบเปเบเบทเปเบญเบเปเบงเป - JavaScript เปเบเบเบเบฒเบเบญเบญเบเปเบเบเบเปเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ multithreading เบเบฑเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบ. เปเบเบซเบผเบฑเบเบเบฒเบ, เบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเปเบญเบตเปเบเบงเปเบฒเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบเบต, เปเบเปเบเปเปเปเบกเปเบเบชเปเบฒเบฅเบฑเบเบฅเบฐเบซเบฑเบ porting เบเบตเปเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบทเบเบเบนเบเบกเบฑเบเบเบฑเบ C threads. เปเบงเบปเปเบฒเปเบเบเบเบปเปเบงเปเบเปเบฅเปเบง, Firefox เบเปเบฒเบฅเบฑเบเบเบปเบเบฅเบญเบเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฐเบเบฑเบเบเบฒเบเบฎเปเบงเบกเบเบฑเบ, เปเบฅเบฐ Emscripten เบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบ pthread เบชเปเบฒเบฅเบฑเบเบเบงเบเปเบเบปเบฒ, เปเบเปเบเปเบญเบเบเปเปเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบถเปเบเบเบฑเบเบกเบฑเบ. เบเปเบญเบเบเปเบญเบเบเปเบญเบเปเบฎเบฒเบเบญเบญเบ multithreading เบเบฒเบเบฅเบฐเบซเบฑเบ Qemu - เบเบฑเปเบเปเบกเปเบ, เบเบญเบเบซเบฒเบเปเบญเบเบเบตเปเบเบฐเบเบนเปเบเปเบฒเบฅเบฑเบเปเบฅเปเบ, เบเปเบฒเบเบฎเปเบฒเบเบเบฒเบเบเบญเบ loop เบเบตเปเปเบฅเปเบเบขเบนเปเปเบเบเบฐเบเบนเปเบเบตเปเปเบเบปเปเบฒเปเบเปเบเบซเบเปเบฒเบเบตเปเปเบเบเบเปเบฒเบเบซเบฒเบ, เปเบฅเบฐเปเบญเบตเปเบเบเบฑเบเบเบฑเบเบเบฑเปเบเบเปเบฒเบงเบซเบเบถเปเบเบเบฑเปเบเบเบฒเบ loop เบเบปเปเบเบเป.
เบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเบฑเปเบเบเบตเบชเบญเบ
เปเบเบเบฒเบเบเบธเบ, เบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเบเบฑเบเบซเบฒเปเบกเปเบเบเบฑเบเบกเบตเบขเบนเป, เปเบฅเบฐเบงเปเบฒเบเปเบงเบเปเบกเปเบเปเบญเบเปเบเบปเปเบฒเบเบตเปเปเบเบเบเปเบฝเบงเบขเบนเปเบฎเบญเบเบฅเบฐเบซเบฑเบเบเบฐเบเปเปเบเปเบฒเปเบเบชเบนเปเบชเบดเปเบเบเบตเปเบเบต. เบชเบฐเบซเบผเบธเบ: เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบ somehow systematize เบเบฐเบเบงเบเบเบฒเบเปเบเบตเปเบก crutches เปเบเป. เบเบฑเปเบเบเบฑเปเบ, เปเบงเบตเบเบฑเปเบ 2.4.1 เบเบตเปเบชเบปเบเปเบเบญเบเบเบฑเปเบเบเบทเบเปเบญเบปเบฒเปเบ (เบเปเปเปเบกเปเบ 2.5.0, เปเบเบฒเบฐเปเบเบเบฐเบฎเบนเป, เบเบฐเบกเบตเบเบฑเบเปเบเปเบงเบตเบเบฑเปเบเปเปเปเบเบตเปเบเบฑเบเบเปเปเบเบฑเบเบเบฑเบเปเบเป เปเบฅเบฐเบเปเบญเบเบเปเปเบกเบตเบเบฑเบเบเบญเบเบเปเบญเบเปเบญเบ. ), เปเบฅเบฐเบชเบดเปเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเบฒเบเบเบฝเบเบเบทเบเปเบซเบกเปเบขเปเบฒเบเบเบญเบเปเบ thread-posix.c
. เบเบต, เบเบฑเปเบเปเบกเปเบ, เบเบญเบเปเบ: เบเปเบฒเบเบนเปเปเบเบเบนเปเบเบถเปเบเบเบฐเบเบฒเบเบฒเบกเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบตเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบเบฑเบเบเบงเบฒเบ, เบซเบเปเบฒเบเบตเปเบเบทเบเปเบญเบตเปเบเบงเปเบฒเบเบฑเบเบเบต abort()
- เปเบเปเบเบญเบ, เบเบตเปเบเปเปเปเบเปเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฑเบเบซเบกเบปเบเปเบเปเบงเบฅเบฒเบเบฝเบง, เปเบเปเบขเปเบฒเบเบซเบเปเบญเบเบกเบฑเบเบเปเปเปเบเบฑเบเบเบตเปเบซเบเปเบฒเบเปเปเบเบซเบผเบฒเบเบเปเบงเบฒเบเบฒเบเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเบตเปเบเปเปเบชเบญเบเบเปเบญเบเบเบฑเบเบขเปเบฒเบเบเบฝเบเป.
เปเบเบเบเบปเปเบงเปเบ, เบเบฒเบเปเบฅเบทเบญเบ Emscripten เปเบกเปเบเบกเบตเบเบฐเปเบซเบเบเบซเบผเบฒเบเปเบเบเบฒเบเบชเบปเปเบเบฅเบฐเบซเบฑเบเปเบเบซเบฒ JS -s ASSERTIONS=1 -s SAFE_HEAP=1
- เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเบเบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเปเปเปเบเปเบเปเบฒเบเบปเบ, เปเบเบฑเปเบ: เบเบฒเบเปเบเบซเบฒเบเบตเปเบขเบนเป unaligned (เบเบถเปเบเบเปเปเบชเบญเบเบเปเบญเบเบเบฑเบเบซเบกเบปเบเบเบฑเบเบฅเบฐเบซเบฑเบเบชเปเบฒเบฅเบฑเบ arrays เบเบดเบกเปเบเบฑเปเบ: HEAP32[addr >> 2] = 1
) เบซเบผเบทเปเบเบซเบฒเบเบฑเบเบเบฑเบเบเบตเปเบกเบตเบเปเบฒเบเบงเบเบเบฒเบเปเบเปเบเบฝเบเบเบตเปเบเปเปเบเบทเบเบเปเบญเบ.
เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฒเบเบเบฑเบเบเปเบฒเปเบซเบเปเบเปเบกเปเบเบเบฑเบเบซเบฒเปเบเบเบเปเบฒเบเบซเบฒเบ. เบเบฑเปเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบงเบปเปเบฒเปเบฅเปเบง, Qemu เบกเบต backend เบเบฒเบเบเบตเบเบงเบฒเบก "degenerate" เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบฅเบดเบเบฅเบฐเบซเบฑเบ TCI (เบเบฒเบเบเบฒเบชเบฒเบฅเบฐเบซเบฑเบเบเบฐเบซเบเบฒเบเบเปเบญเบ), เปเบฅเบฐเบเบฒเบเบเปเปเบชเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ Qemu เปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบซเบกเป, เบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเปเบเบเบเบต, เปเบเบฑเบ compiler C เปเบกเปเบเบเบฝเบเบเป. "เบเปเบฒเบเปเบฒเบเปเบเบเบเบต". เบเปเบญเบเปเบเบเบเปเปเบเบต, เปเบฅเบฐเบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบเบงเปเบฒ TCI เปเบเปเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบตเปเบเปเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบกเบทเปเบญเบงเบดเปเบเบฒเบฐ bytecode เบเบญเบเบกเบฑเบ. เบเบฑเปเบเปเบกเปเบ, เปเบเบเบธเบเบเบฐเปเบเบเบเบญเบ ARM เปเบฅเบฐเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบญเบทเปเบเปเบเบตเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบฅเบฐเบเบฑเบเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ, Qemu เบฅเบงเบเบฅเบงเบกเบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบกเบต backend TCG เบเบปเบเบเบฐเบเบดเบเบตเปเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบทเปเบเปเบกเบทเบญเบ, เปเบเปเบงเปเบฒ TCI เบเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบงเบเบกเบฑเบเปเบกเปเบเบเปเบฒเบเบฒเบกเบญเบทเปเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบญเบเบงเปเบฒเบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบ, เปเบญเบเบฐเบชเบฒเบ TCI เบเบตเปเปเบซเปเปเบซเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเปเบญเบตเปเบเบเบฑเบเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเปเบฒเบเบเบตเปเบเปเปเบชเบญเบเบเปเบญเบเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบเบฅเบฐเบซเบฑเบ, เปเบเบดเปเบเปเบเปเบเบทเบเบเบปเปเบเบเบปเบเบขเบนเปเปเบเบชเปเบงเบเบญเบทเปเบเบเบญเบ Qemu.
เบเบฒเบเบเปเบฒเบฅเบฒเบ heap
เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบตเปเบเปเปเบชเบญเบเบเปเบญเบเบเบญเบ TCI เปเบเปเบเบทเบเปเบเปเปเบ, loop เบเบปเปเบเบเปเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเบดเปเบเปเบญเบตเปเบเบงเปเบฒเปเบเปเบเบเปเบเบต, RCU เปเบฅเบฐเบเบฒเบเบชเบดเปเบเปเบฅเบฑเบเบเปเบญเบเบญเบทเปเบเป. เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบตเบเบเบปเบง Qemu เบเปเบงเบเบเบฒเบเปเบฅเบทเบญเบ -d exec,in_asm,out_asm
, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบงเบปเปเบฒเบงเปเบฒเบฅเบฐเบซเบฑเบเปเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบญเบญเบเบญเบฒเบเบฒเบเปเบเบทเปเบญเบเบฝเบเบงเปเบฒเบฅเบฐเบซเบฑเบเปเบเบเปเบกเปเบเบซเบเบฑเบ, เบฅเบฐเบซเบฑเบเปเบเบปเปเบฒเบเบฒเบเปเบเปเบเบฒเบเปเบเบฑเบ (เปเบเบเปเบฅเบฐเบเบตเบเบตเป, bytecode). เบกเบฑเบโเปเบฅเบตเปเบกโเบเบปเปเบโ, เบเบฐโเบเบดโเบเบฑเบโเบเบฑเบโเบเบฒเบโเปเบโเบเบฒโเบชเบฒโเบเปเบฒโเบเบงเบโเบซเบเบถเปเบโ, เบเบฝเบโเบเปเปโเบเบงเบฒเบกโเปเบเปโเปเบโเบเบตเปโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเปเบเปโเบเบฐโเปเบงเปโเบงเปเบฒ RCU เบเบฐโเปเบฅเบตเปเบกโเบเบปเปเบโเปเบโเบเบฑเบโเบเบธโเบเบฑเบโเปเบฅเบฐ ... crashesโ. abort()
เบเบฒเบเปเบเบซเบเปเบฒเบเบตเป free()
. เปเบเบ tinkering เบเบฑเบเบซเบเปเบฒเบเบตเป free()
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบเบฒเบเบเบปเปเบเบเบปเบเบงเปเบฒเบขเบนเปเปเบเบซเบปเบงเบเบญเบ heap block, เปเบเบดเปเบเบขเบนเปเปเบเปเบเบ bytes เบเปเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบตเปเบเบทเบเบเบฑเบเบชเบฑเบ, เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเบฐเบซเบเบฒเบเบเบญเบ block เบซเบผเบทเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ, เบกเบตเบเบตเปเปเบซเบเบทเปเบญ.
เบเบฒเบเบเปเบฒเบฅเบฒเบเบเบญเบ heap - เปเบฎเบฑเบเปเบเบงเปเบเบเบฒเบก ... เปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบง, เบกเบตเบงเบดเบเบตเปเบเปเปเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบ - เบเบฒเบ (เบเปเบฒเปเบเบฑเบเปเบเปเบเป) เปเบซเบผเปเบเบเบฝเบงเบเบฑเบ, เบเบฐเบเบญเบเปเบเบฑเบเบเบฒเบเบชเบญเบเบเบทเปเบเบเบฒเบเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเปเบเป Valgrind. เบซเบผเบฑเบเบเบฒเบเปเบงเบฅเบฒเปเบเบซเบเบถเปเบ, binary เปเบกเปเบเบเบฝเบกเบเปเบญเบก. เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเปเบเบตเบโเบกเบฑเบโเบกเบตโเบเบฒเบโเปเบฅเบทเบญเบโเบเบฝเบงโเบเบฑเบ - เบกเบฑเบ crashes เปเบเบดเบโเปเบกเปเบโเบงเปเบฒโเปเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโ, เบเปเบญเบโเบเบตเปโเบเบฐโเบเบฐโเบเบดโเบเบฑเบโเบเบปเบงโเบเบดเบโ. เบกเบฑเบเบเปเปเบซเบเปเบฒเบเปเปเบ, เปเบเปเบเบญเบ - เบเบฒเบเบปเบเบเบทเปเบ, เปเบซเบผเปเบเบเปเปเบกเบนเบเบเปเปเบเบทเบเบฑเบ, เปเบเบดเปเบเบเปเปเปเบเบเปเบ, เปเบเบฒเบฐเบงเปเบฒ configure scouted เบญเบญเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบฅเบฑเบเบเปเบญเบ, เปเบเปเบเปเบญเบเบกเบต Valgrind - เบเปเบฒเบญเบดเบเบเปเบญเบเบเบฐเปเบเปเปเบ bug เบเบตเป, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเปเบญเบเปเบเบเบเบต. , เบเบปเปเบเบชเบฐเบเบฑเบเบเบฐเบเบฒเบเบปเบ. เบเปเบญเบเบเปเบฒเบฅเบฑเบเปเบฅเปเบเบชเบดเปเบเบเบฝเบงเบเบฑเบเบเบฒเบเปเบเป Valgrind ... Y-y-y, y-y-y, uh-uh, เบกเบฑเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบเบเปเบฒเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเบปเบเบเบฐเบเบดเปเบฅเบฐเบเปเบฒเบเบญเบญเบเปเบเปเบเบญเบฐเบเบตเบ bug เบเบปเปเบเบชเบฐเบเบฑเบเปเบเบเบเปเปเบกเบตเบเบฒเบเปเบเบทเบญเบเบเบฝเบงเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบตเปเบเปเปเบเบทเบเบเปเบญเบ, เบเปเปเปเบเปเบเปเบฒเบงเปเบเบดเบเบเบฒเบเบเบปเบ. เบเบตเบงเบดเบ, เบเปเบญเบเบงเปเบฒเปเบเบปเบฒเปเบเบปเปเบฒเปเบงเบปเปเบฒเบงเปเบฒ, เบเปเปเปเบเปเบเบฐเบเบฝเบกเบเปเบฒเบเบฐเปเบเบปเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป - เปเบเบเบเบฒเบ crashing เบขเบธเบ crashing เปเบเปเบงเบฅเบฒเบเบตเปเปเบเบตเบเบเบปเบงเบเบฒเบเปเบเป Walgrind. เบชเบดเปเบเบเบตเปเบกเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบฅเบถเบเบฅเบฑเบ. เบชเบปเบกเบกเบธเบเบเบดเบเบฒเบเบเบญเบเบเปเบญเบเปเบกเปเบเบงเปเบฒเบซเบเบถเปเบเบเบฑเปเบเบขเบนเปเปเบเปเบเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒเปเบเบเบฐเบเบธเบเบฑเบเบซเบผเบฑเบเบเบฒเบเบญเบธเบเบฐเบเบดเปเบซเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ, gdb เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ. memset
-a เบเบฑเบเบเบปเบงเบเบตเปเบเบตเปเบเบทเบเบเปเบญเบเปเบเบเปเบเปเบเบฑเบเบชเบญเบ mmx
, เบซเบผเบท xmm
เบฅเบปเบเบเบฐเบเบฝเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบเบตเบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฒเบเบเบฑเบเบเปเบฒเปเบซเบเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเบเบฑเบเบเบฒเบเบเบตเปเบเบฐเปเบเบทเปเบญ.
เบเบปเบเบฅเบปเบ, Valgrind เปเบเบดเปเบเบเบทเบงเปเบฒเบเปเปเปเบเปเบเปเบงเบเบขเบนเปเบเบตเปเบเบตเป. เปเบฅเบฐเปเบเบเบตเปเบเบตเปเบชเบดเปเบเบเบตเปเบซเบเปเบฒเบฅเบฑเบเบเบฝเบเบเบตเปเบชเบธเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบ - เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบฐเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเป crashes เบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบตเปเบเปเปเบฎเบนเปเบเบฑเบเบขเปเบฒเบเปเบเปเบเบดเบเปเบเบทเปเบญเบเบเบฒเบเปเบซเบเบเบฒเบเบเบตเปเบญเบฒเบเบเบฐเปเบเบตเบเบเบถเปเบเบซเบผเบฒเบเบฅเปเบฒเบเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบญเบเบซเบเปเบฒเบเบตเป. เบชเปเบฒเบฅเบฑเบเปเบงเบฅเบฒเบเบปเบเบเบฒเบ, เบกเบฑเบเบเบฑเบเบเปเปเบเบฑเบเปเบเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบเปเบเบปเปเบฒเบซเบฒ. เปเบโเบเบตเปโเบชเบธเบ, เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเบฑเบโเปเบเปโเบเบฑเปเบโเบฅเบปเบโเปเบฅเบฐ debug. เบเบฒเบเบเบดเบกเบชเบดเปเบเบเบตเปเบซเบปเบงเบเบทเบเบเบฝเบเบเบทเบเปเบซเบกเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบกเบฑเบเบเปเปเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเปเบเบฑเบเบเบปเบงเปเบฅเบ, เปเบเปเบเบฒเบเบเบฐเปเบเบเบเบญเบเบเปเปเบกเบนเบเบเบฒเบเบชเบญเบ. เปเบฅเบฐ, เปเบเบดเปเบเปเบฅเบฐเปเบเบดเปเบ, เบชเบฐเบเบฃเบดเบเบเบนเปเบเบตเปเปเบเปเบเบทเบเบเบปเบเปเบซเบฑเบเบขเบนเปเปเบเปเบเบฅเป BIOS - เบเบฑเปเบเปเบกเปเบ, เบเบญเบเบเบตเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบงเบปเปเบฒเบเปเบงเบเบเบงเบฒเบกเบซเบกเบฑเปเบเปเบเบเบตเปเบชเบปเบกเปเบซเบเบชเบปเบกเบเบปเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบ buffer overflow, เปเบฅเบฐเบกเบฑเบเบเบฑเบเปเบเบเบงเปเบฒเบกเบฑเบเบเบทเบเบเบฝเบเปเบชเป buffer เบเบตเป. เปเบฅเปเบง, เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป - เปเบ Emscripten, เปเบเบเบเบต, เบเปเปเบกเบตเบเบฒเบเบชเบธเปเบกเบเบทเปเบเบเบตเปเบเบตเปเบขเบนเป, เบเปเปเบกเบตเบฎเบนเบขเบนเปเปเบเบเบฑเปเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบฒเบเบเปเบญเบเบขเบนเปเบเบฒเบเบฅเบฐเบซเบฑเบเปเบเบทเปเบญเบชเบปเปเบเบเปเปเบกเบนเบเปเบเบเบเบปเบงเบเบตเปเบเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบฑเปเบเบชเบธเบเบเปเบฒเบ, เปเบเบดเปเบเบเปเปเบกเบนเบ, เปเบเบดเปเบเบเบปเบงเบเบตเป, เปเบฅเบฐ, เบเปเบฒเบกเบฑเบเบเปเปเบเปเบฝเบเปเบเบ, เปเบญเบปเบฒเบญเบฒเบซเบฒเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเบดเบ. เปเบเปเบเบดเบเปเบฅเปเบง, เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบชเบญเบเบชเบฒเบกเบเบฒเบเบตเปเบเบทเปเบญเปเบเบทเปเบญเบกเบเปเปเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเป, เปเบเปเบงเปเบฒเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบซเบเบฑเบเปเบเป? เบเบฑเปเบเบเบฑเปเบ, เปเบชเบฑเปเบเบชเบฐเปเบเบฒเบฐเปเบเปเบเบทเบเบเบปเบเปเบซเบฑเบเบงเปเบฒเบเบฑเบเบฅเบญเบ BIOS เบเบฒเบ buffer เบเบปเปเบงเบเบฒเบงเปเบเบซเบฒเบเบงเบฒเบกเบเบปเบเบเปเบฒเบเบญเบเปเบเบ - เปเบฅเบฐ, เปเบเปเบเบดเบเปเบฅเปเบง, เบเปเปเบกเบตเบเบทเปเบเบเบตเปเบเบฝเบเบเปเปเบ buffer. เบเบฒเบเบเบญเบเบซเบฒเบเบตเปเบกเบฒเบเบญเบเบเบตเปเบขเบนเป buffer เบเบตเปเปเบเบเบเบฐเบซเบผเบฒเบเบเบฑเปเบเบชเบปเปเบเบเบปเบเปเบซเปเบกเบตเบซเบเปเบฒเบเบตเป qemu_anon_ram_alloc
เปเบเปเบเบฅ oslib-posix.c
- เปเบซเบเบเบปเบเบกเบตเบเบตเป: เบเบฒเบเบเบฑเปเบเบกเบฑเบเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบฐเบเบฑเบเบเปเบฒเปเบซเบเปเบเบเบตเปเบขเบนเปเปเบเบซเบฒเบซเบเปเบฒเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบเบเบฐเบซเบเบฒเบ 2 MB, เบชเปเบฒเบฅเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฒเบก. mmap
เบเปเบญเบโเบญเบทเปเบโเบญเบตเบโเบเบฝเบโเปเบฅเบฑเบโเบเปเบญเบโ, เปเบฅเบฐโเบซเบผเบฑเบโเบเบฒเบโเบเบฑเปเบโเบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบชเบปเปเบโเบเบทเบโเบชเปเบงเบโเปเบเบตเบโเบเปเบงเบโเบเบฒเบโเบเปเบงเบโเปเบซเบผเบทเบญโ munmap
. เปเบฅเบฐเบเปเบฒเบเบฒเบเบเบฑเบเบเปเบฒเปเบซเบเปเบเบเบฑเปเบเบเปเบฒเบงเบเปเปเบเปเบฒเปเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบตเปเบเบญเบเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบ 2 MB getpagesize()
- mmap
เบกเบฑเบเบเบฑเบเบเบฐเปเบซเปเบเบตเปเบขเบนเปเบชเบญเบเบเปเบญเบ ... เบเบฑเปเบเบเบฑเปเบเปเบ Emscripten mmap
เบเบฝเบเปเบเปเปเบเบซเบฒ malloc
, เปเบเปเปเบเปเบเบญเบเบงเปเบฒเบกเบฑเบเบเปเปเบชเบญเบเบเปเบญเบเบขเบนเปเปเบเบซเบเปเบฒ. เปเบเบเบเบปเปเบงเปเบ, เปเบกเบเปเบกเปเบเบตเปเปเบฎเบฑเบเปเบซเปเบเปเบญเบเบญเบธเบเบญเบฑเปเบเบชเปเบฒเบฅเบฑเบเบชเบญเบเบชเบฒเบกเปเบเบทเบญเบเปเบเปเบเบทเบเปเบเปเปเบเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบ เบขเปเบฒเบเปเบเบญเบเปเบฒเบเบซเบเบถเปเบ เบชเบฒเบ.
เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบเบญเบเบซเบเปเบฒเบเบตเปเปเบเบซเบฒ
เปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบเปเบฎเบเบเบฒเบเบเบฐเบฅเบดเบเบเปเบฒเบฅเบฑเบเบเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ, Qemu เบเปเป crash, เปเบเปเบซเบเปเบฒเบเปเบเปเปเปเบเบตเบ, เปเบฅเบฐเปเบฎเบเบเบฒเบเบเบฐเบฅเบดเบเบขเปเบฒเบเบงเปเบญเบเปเบงเปเบเบปเปเบฒเปเบเปเบ loops, เบเบฑเบเบชเบดเบเปเบเบเบเบปเบเบเบฐเบฅเบดเบ. -d exec,in_asm,out_asm
. เบชเบปเบกเบกเบธเบเบเบดเบเบฒเบเปเบเปเปเบเบตเบเบเบทเปเบ: เบเบฒเบเบเบฑเบเบเบงเบฒเบเบเบฒเบเบเบฑเบเปเบงเบฅเบฒ (เบซเบผเบท, เปเบเบเบเบปเปเบงเปเบ, เบเบฒเบเบเบฑเบเบเบงเบฒเบเบเบฑเบเบซเบกเบปเบ) เบเปเปเบกเบฒเบฎเบญเบ. เปเบฅเบฐเปเบเปเบเบดเบเปเบฅเปเบง, เบเปเบฒเบเปเบฒเบ unscrew เบเบฒเบเบเบฑเบเบเบงเบฒเบเบเบฒเบเบชเบฐเบเบฒเปเบซเปเบเบเบทเปเบเปเบกเบทเบญเบ, เปเบเบดเปเบเบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบฒเบเบขเปเบฒเบเปเบฎเบฑเบเบงเบฝเบ, เบเปเบฒเบเปเบเปเบฎเบฑเบเบฎเบนเบเบเบฒเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ. เปเบเปเบเบตเปเบเปเปเปเบกเปเบเบเปเบฒเบเบญเบเปเบฅเบตเบ: เบเบฒเบเบเบฝเบเบเบฝเบเบฎเปเบญเบเบฎเบญเบเบเบตเปเบญเบญเบเบกเบฒเบเปเบงเบเบเบปเบงเปเบฅเบทเบญเบเบเปเบฒเบเปเบเบดเบเบเบฑเปเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒ เปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบฒเบเปเบง. เปเบเบเบตเปเบเบตเปเบกเบฑเบเบเปเบญเบเปเบงเบปเปเบฒเบงเปเบฒเบเบฒเบเบเบฝเบเบเบฝเบเบชเบดเปเบเบเบตเปเบเบทเบเบเบฑเบเบเบถเบเปเบงเปเปเบเบเปเบเป launcher emrun
debugging output เบเบฑเบเบเบปเบเบเบฐเบฅเบดเบเบเบญเบเบชเบฐเบเบฒเปเบซเปเบ native เบเปเปเปเบกเปเบเบเบฐเบเบงเบเบเบฒเบเบเบปเบเบเบฑเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ. เบเปเบญเบเบเปเปเบฎเบนเปเบงเปเบฒเปเบเบเบเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบ browser เปเบเบทเปเบญเบกเบเปเปเปเบเบงเปเบ emrun
, เปเบเปเบเบฒเบเบชเบฒเบเปเบเบเบปเบเบเบฐเบฅเบดเบเปเบเปเบซเบฑเบเบญเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบฅเบฝเบเปเบซเบกเป, เบเบฑเปเบเบเบฑเปเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบญเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเปเบกเปเบเบเบฑเบเบเปเปเบเบฑเบเปเบเบฑเบเปเบซเบเบเบปเบเบเบตเปเบเบฐเบชเบปเบกเบกเบธเบเบงเปเบฒ trajectories เปเบเป diverged. เปเบเบเบเบปเปเบงเปเบ, เบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเบญเบตเบเบเบฒเบกเบเปเบฒเปเบเบฐเบเปเบฒ ljmpl
เบกเบตเบเบฒเบเบซเบฑเบเบเปเบฝเบเปเบเบซเบฒเบเบตเปเบขเบนเปเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบฅเบฐ bytecode เบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเบเบทเปเบเบเบฒเบ: เบญเบฑเบเบซเบเบถเปเบเบกเบตเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบเบฐเปเบเบซเบฒเบซเบเปเบฒเบเบตเปเบเบนเปเบเปเบงเบ, เบญเบตเบเบญเบฑเบเบซเบเบถเปเบเบเปเปเบกเบต. เบซเบผเบฑเบเบเบฒเบ googling เบเปเบฒเปเบเบฐเบเปเบฒเปเบฅเบฐเบชเบถเบเบชเบฒเบฅเบฐเบซเบฑเบเบเบตเปเปเบเบเปเบฒเปเบเบฐเบเปเบฒเปเบซเบผเบปเปเบฒเบเบตเป, เบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒ, เบเปเบฒเบญเบดเบ, เบเบฑเบเบเบตเบเปเบญเบเบเบตเปเบเบฐเบฅเบปเบเบเบฐเบเบฝเบ. cr0
เบเบฒเบเบเบฑเบเบเบถเบเปเบเปเบเบทเบเปเบฎเบฑเบ - เบเบฑเบเปเบเปเบเบปเบงเบเปเบงเบ - เปเบเบดเปเบเบเปเบฝเบเปเบเปเบเบเปเบเบตเปเบเบชเบนเปเปเบซเบกเบเบเปเบญเบเบเบฑเบ, เปเบฅเบฐเบญเบฑเบเบเบตเบชเบญเบ, เบฎเบธเปเบ js เบเปเปเปเบเบตเบเบเปเบฝเบเปเบเบฑเบเปเบซเบกเบเบเปเบญเบเบเบฑเบ. เปเบเปเบเบงเบฒเบกเบเบดเบเปเบกเปเบเบงเปเบฒเบฅเบฑเบเบชเบฐเบเบฐเบญเบทเปเบเบเบญเบ Emscripten เปเบกเปเบเบเบฒเบเบฅเบฑเบเปเบฅเบเบตเปเบเบฐเบเบปเบเบเบฒเบเบเปเปเบฅเบฐเบซเบฑเบเปเบเบฑเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒ. call
เปเบ TCI, เปเบเบดเปเบเบเบปเบงเบเบตเปเบเบฑเบเบเบฑเบเปเบเบเปเปเปเบเปเบชเบปเปเบเบเบปเบเปเบซเปเบเบฐเปเบเบ long long f(int arg0, .. int arg9)
- เบเบฑเบเบเบฑเบเบเปเบญเบเบเบทเบเปเบญเบตเปเบเบเปเบงเบเบเปเบฒเบเบงเบเบเบฒเบเปเบเปเบเบฝเบเบเบตเปเบเบทเบเบเปเบญเบ. เบเปเบฒเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเบเบทเบเบฅเบฐเปเบกเบตเบ, เบเบถเปเบเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเบตเบเบฑเบ, เปเบเบฅเปเบเบฅเบกเบเบฐเบเบฑเบเบเปเบญเบ (เปเบเบดเปเบเปเบเบฑเบเบชเบดเปเบเบเบตเปเบเบต) เบซเบผเบทเปเบเบซเบฒเบซเบเปเบฒเบเบตเปเบเบดเบเบเบฒเบเบเบฑเบเบซเบกเบปเบ (เปเบเบดเปเบเบซเบเปเบฒเปเบชเบปเปเบฒเปเบเบเบตเปเบเบฐเบเบตเบเบฑเบ). เบเบฑเบเบกเบตเบเบฒเบเปเบฅเบทเบญเบเบเบตเบชเบฒเบก - เปเบเบตเบเปเบเปเบเบฒเบเบเบฐเบฅเบดเบ wrappers เบเบตเปเปเบเบตเปเบก / เบฅเบปเบเบเบฒเบเปเบเปเบเบฝเบ, เปเบเปเบฅเบงเบกเปเบญเบปเบฒ wrappers เปเบซเบผเบปเปเบฒเบเบตเปเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเบเบทเปเบเบเบตเป, เปเบเบดเบเบงเปเบฒเบเบฐเบกเบตเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบเบฝเบเปเบฅเบฑเบเบเปเบญเบเบซเบผเบฒเบเบเปเบงเบฒเบฎเปเบญเบ wrappers. เบเบตเปเบขเปเบฒเบเบเบฝเบงเปเบกเปเบเปเบชเบเปเบชเบปเปเบฒเบซเบผเบฒเบ, เปเบเปเปเบเปเบซเบฑเบเบญเบญเบเปเบเบฑเบเบเบฑเบเบซเบฒเบเบตเปเบฎเปเบฒเบเปเบฎเบเบเบงเปเบฒเปเบเบปเปเบฒ: เปเบเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบญเบเบซเบเปเบฒเบเบตเป wrapper, เบเบฒเบเปเบเปเบเบฝเบเปเบเปเบเบทเบเบเปเบฝเบเปเบฅเบฐเปเบเบ, เปเบเปเบเบฒเบเบเบฑเปเบเบซเบเปเบฒเบเบตเปเบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบฝเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเบเปเปเปเบเปเบเบทเบเปเบญเบตเปเบเบงเปเบฒ - เบเบต, เบเบทเบเบฑเบเบเบฑเบเปเบ. เบเบฒเบเบเบฐเบเบดเบเบฑเบ libffi เบเบญเบเบเปเบญเบ. เบเบฑเปเบเปเบกเปเบ, เบเบนเปเบเปเบงเบเบเบฒเบเบเบปเบเบเปเปเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ.
เปเบเบเบเบต, Qemu เบกเบตเบฅเบฒเบเบเบทเปเบเบปเบงเบเปเบงเบเบเบตเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเปเบเบฎเบนเบเปเบเบเบเบญเบเปเบเบฅเป header เปเบเบฑเปเบ:
DEF_HELPER_0(lock, void)
DEF_HELPER_0(unlock, void)
DEF_HELPER_3(write_eflags, void, env, tl, i32)
เบเบงเบเบกเบฑเบเบเบทเบเปเบเปเปเบเบฑเบเปเบฅเบทเปเบญเบเบเบฐเบซเบผเบปเบเบซเบผเบฒเบ: เบเบณเบญเบดเบ, เบกเบฐเบซเบฒเบเบฒเบเปเบกเปเบเบเบทเบเบเบณเบเบปเบเบเบทเบเปเปเปเปเบเปเบเบเบเบตเปเปเบเบเบเบฐเบซเบผเบฒเบเบเบตเปเบชเบธเบ DEF_HELPER_n
, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบตเบ helper.h
. เปเบเบเบญเบเปเบเบเบเบตเปเบกเบฐเบซเบฒเบเบฒเบเปเบเปเบเบทเบเบเบฐเบซเบเบฒเบเปเบเบชเบนเปเปเบเบเบชเปเบฒเบเปเบเบทเปเบญเบเบเบปเปเบเปเบฅเบฐเปเบเบทเปเบญเบเปเบฒเบเบเบธเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ array เบเบทเบเบเปเบฒเบเบปเบ, เปเบฅเบฐเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบญเบปเบเบเบฐเบเบญเบ - #include <helper.h>
เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบตเปเบชเบธเบเบเปเบญเบเปเบเปเบกเบตเปเบญเบเบฒเบเบเบปเบเบฅเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบขเบนเปเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบ
เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบฎเบเบเบฒเบเบเบฐเบฅเบดเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบฐเปเบฎเบฑเบเบงเบฝเบ. เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเบเปเบญเบเบงเปเบฒเบซเบเปเบฒเบเปเบเปเปเปเบเบตเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒ memtest86+ เบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบเบฒเบเบเบฐเบเบญเบเบเบทเปเบเปเบกเบทเบญเบ. เปเบเบเบตเปเบเบตเปเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบตเปเปเบเบเบงเปเบฒเบฅเบฐเบซเบฑเบ Qemu block I/O เบเบทเบเบเบฝเบเปเบงเปเปเบ coroutines. Emscripten เบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบซเบเบธเปเบเบเบฒเบเบซเบผเบฒเบเบเบญเบเบเบปเบเปเบญเบ, เปเบเปเบกเบฑเบเบเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบฅเบฐเบซเบฑเบ Qemu, เปเบฅเบฐเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเบเบเปเบเบตเปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบ: Qemu เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเปเบฅเบทเบญเบ. -kernel
, -initrd
, -append
, เบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบ boot Linux เบซเบผเบท, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, memtest86+, เปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฒเปเบเปเบญเบธเบเบฐเบเบญเบ block เบเบฑเบเบซเบกเบปเบ. เปเบเปเบเบตเปเปเบกเปเบเบเบฑเบเบซเบฒ: เปเบเบเบฒเบเบเบฐเบเบญเบเบเบทเปเบเปเบกเบทเบญเบเบซเบเบถเปเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบ Linux kernel เบเบฑเบ console เบเบตเปเบกเบตเบเบฒเบเปเบฅเบทเบญเบ. -nographic
, เปเบฅเบฐเบเปเปเบกเบตเบเบปเบเบเบฐเบฅเบดเบเบเบฒเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเปเบเบซเบฒ terminal เบเบฒเบเบเปเบญเบเบเบตเปเบกเบฑเบเบเบทเบเปเบเบตเบเบเบปเบง emrun
, เบเปเปเปเบเปเบกเบฒ. เบเบฑเปเบเปเบกเปเบ, เบกเบฑเบเบเปเปเบเบฑเบเปเบเบ: เปเบเปเบเบเปเบเบตเบเปเปเปเบฎเบฑเบเบงเบฝเบเบซเบผเบทเบเบปเบเบเบฐเบฅเบดเบเบเบฒเบเบดเบเบเปเปเปเบฎเบฑเบเบงเบฝเบ. เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเปเบเบตเบเบเบถเปเบเบเบฑเบเบเปเบญเบเบเบตเปเบเบฐเบฅเปเบเปเบฒเปเบฅเบฑเบเบเปเบญเบ. เบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบเบงเปเบฒ "เปเบฎเบเบเบฒเบเบเบฐเบฅเบดเบเบเปเปเปเบเปเบเบญเบ, เปเบเปเบเบฝเบเปเบเปเบเบฐเบเบดเบเบเปเบฒเป," เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฐเบกเบฒเบเบซเปเบฒเบเบฒเบเบต, kernel เบเบดเปเบกเบเปเปเบเบญเบเบเปเปเบเบงเบฒเบกเปเบชเป console เปเบฅเบฐเบชเบทเบเบเปเป hang. เบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเปเบฎเบเบเบฒเบเบเบฐเบฅเบดเบ, เปเบเบเบเบปเปเบงเปเบ, เปเบฎเบฑเบเบงเบฝเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบธเบเปเบเบปเปเบฒเปเบเปเบเบฅเบฐเบซเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ SDL2. เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเปเบญเบเบเปเปเบฎเบนเปเบงเบดเบเบตเบเบฒเบเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเป, เบเบฑเปเบเบเบฑเปเบเปเบเบเบฒเบเบเปเบญเบเบเปเบญเบเบเปเบญเบเบเบฐเบเบดเบเบฑเบเปเบเบเบชเบธเปเบก. เปเบเบเบฒเบเบเบธเบ, เปเบชเบฑเปเบเบเบฐเปเบฒเบ 0 เปเบเปเบเบฐเบเบดเบเปเบเบซเบเปเบฒเบเปเปเบเบเบทเปเบเบซเบฅเบฑเบเบชเบตเบเปเบฒ, เปเบเบดเปเบเบเบตเปเปเบซเปเปเบซเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบขเปเบฒเบ. เปเบเบเบตเปเบชเบธเบ, เบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบเบงเปเบฒเบเบฑเบเบซเบฒเปเบกเปเบเบงเปเบฒ Qemu เปเบเบตเบเบเปเบญเบเบขเปเบฝเบก virtual เบซเบผเบฒเบเบขเบนเปเปเบเบเปเบญเบเบขเปเบฝเบกเบเบฒเบเบเปเบฒเบเบฎเปเบฒเบเบเบฒเบ, เบฅเบฐเบซเบงเปเบฒเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเป Ctrl-Alt-n: เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบทเปเบเปเบกเบทเบญเบ, เปเบเปเบเปเปเปเบกเปเบเบขเบนเปเปเบ Emscripten. เบซเบผเบฑเบเบเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฒเบเบฑเบเบเปเบญเบเบขเปเบฝเบกเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเปเบเบเปเบเปเบเบฒเบเปเบฅเบทเบญเบ -monitor none -parallel none -serial none
เปเบฅเบฐเบเปเบฒเปเบเบฐเบเปเบฒเปเบเบทเปเบญเบเบฑเบเบเบฑเบเปเบซเปเปเบเปเบกเบเบทเบเบซเบเปเบฒเบเปเบเบฑเบเบซเบกเบปเบเปเบเปเบเปเบฅเบฐเบเบญเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเปเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเบฐเบเบฑเบเบซเบฑเบ.
เบฅเบฐเบเบฝเบ
เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเบเปเบฒเบฅเบญเบเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเปเบฎเบฑเบเบงเบฝเบ, เปเบเปเบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเปเบ floppy เบเบฝเบง, เปเบเบฒเบฐเบงเปเบฒเบเปเปเบกเบต I / O เบเบฑเบ - เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ coroutines. Qemu เบกเบต backends coroutine เบซเบผเบฒเบเปเบฅเปเบง, เปเบเปเปเบเบทเปเบญเบเบเบฒเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบ JavaScript เปเบฅเบฐเปเบเบทเปเบญเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบ Emscripten, เบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฝเบเปเบเป juggling stacks. เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒ "เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเปเบซเบฒเบเปเบ, plaster เปเบเปเบเบทเบเปเบเบเบเปเบฒเบ," เปเบเปเบเบฑเบเบเบฑเบเบเบฐเบเบฒ Emscripten เปเบเปเบเบนเปเบฅเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบฅเปเบง. เบเบตเปเปเบกเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเปเบญเบเบเปเบฒเบเบเบฐเบซเบฅเบปเบ: เปเบซเปเปเบเบซเบฒเบเบฒเบเปเบเบซเบฒเบซเบเปเบฒเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบชเบเบตเป emscripten_sleep
เปเบฅเบฐเบญเบตเบเบซเบผเบฒเบเปเบเปเบฅเบฐเบเบตเปเบเบเปเบเปเบเบปเบเปเบ Asyncify, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเปเบเบซเบฒเบเบปเบงเบเบตเปเปเบฅเบฐเบเบฒเบเปเบเปเบเบซเบฒเบซเบเปเบฒเบเบตเปเปเบเบซเบเบถเปเบเบเบตเปเบซเบเบถเปเบเปเบเบชเบญเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเบฒเบเบกเบฒเบญเบฒเบเบเบฐเปเบเบตเบเบเบถเปเบเบเบทเปเบกเบญเบตเบเปเบ stack. เปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบ, เบเปเบญเบเบเบตเปเบเบฐเปเบเบซเบฒเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบชเปเบเปเบฅเบฐเบเบปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบทเบญเบเบชเบฐเบเบฒเบเบเบฒเบ async, เปเบฅเบฐเบเบฑเบเบเบตเบซเบผเบฑเบเบเบฒเบเบเบฒเบเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบฒเบเปเบ asynchronous เปเบเบตเบเบเบถเปเบเบซเบผเบทเบเปเป, เปเบฅเบฐเบเปเบฒเบกเบฑเบเบกเบต, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบถเบเบเบปเบงเปเบเบเปเบญเบเบเบดเปเบเบเบฑเบเบซเบกเบปเบเปเบเบชเบฐเบเบฒเบเบเบฒเบ async เบเบตเป, เบเบตเปเบเบญเบเปเบเบดเบเบซเบเปเบฒเบเบตเปเปเบ. เปเบเบทเปเบญเปเบญเบเบเบฒเบเบเบงเบเบเบธเบกเปเบเบซเบฒเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบชเบทเบเบเปเปเบเบฐเบเบดเบเบฑเบ , เปเบฅเบฐเบญเบญเบเบเบฒเบเบซเบเปเบฒเบเบตเปเบเบฐเบเบธเบเบฑเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเปเบกเบตเบเบญเบเปเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบถเบเบชเบฒเบเบปเบเบเบฐเบเบปเบ -O3
. เบเปเบญเบเปเบฅเปเบเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบเบถเปเบ, เปเบฅเบฐ Chromium เบเบดเบเปเบเบดเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ เปเบฅเบฐเบเบฑเบเบเปเบญเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบเบดเปเบเปเบเบเบเบฑเบเปเบญเบตเบเบงเปเบฒเบฅเบฒเบงเบเปเบฒเบฅเบฑเบเบเบฐเบเบฒเบเบฒเบกเบเบฒเบงเปเบซเบฅเบ ... เบเบต, เบเปเบญเบเบชเบฒเบกเบฒเบเปเบงเบปเปเบฒเบซเบเบฑเบเปเบเป, เบเปเบญเบเบเบฐเปเบเปเปเบเบเปเบเบตเบเปเบเบเปเบฒเบเปเบญเบเบเบทเบเบเปเปเบซเปเบชเบถเบเบชเบฒเบขเปเบฒเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเปเบฅเบฐเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบ 500+ MB Javascript.
เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเบฒเบเบเบงเบเบชเบญเบเปเบเบฅเบฐเบซเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ Asyncify เบเปเปเปเบเบฑเบเบกเบดเบเบเบฑเบเบเบฑเบเบซเบกเบปเบ longjmp
-s เบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบฅเบฐเบซเบฑเบเปเบเปเบเบเปเบเบต virtual, เปเบเปเบซเบผเบฑเบเบเบฒเบ patch เบเบฐเบซเบเบฒเบเบเปเบญเบเบเบตเปเบเบดเบเบเบฒเบเบเบงเบเบชเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบฅเบฐเบเบฑเบเบเบฑเบเปเบซเปเบเบทเปเบเบเบนเบชเบฐเบเบฒเบเบเบฒเบเบเบทเบเบฑเบเบงเปเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบต, เบฅเบฐเบซเบฑเบเปเบฎเบฑเบเบงเบฝเบ. เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเบดเปเบเบเบตเปเปเบเบเบเบฐเบซเบฅเบฒเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบ: เบเบฒเบเบเบฑเปเบเบเบฒเบเบเบงเบเบชเบญเบเปเบเบฅเบฐเบซเบฑเบ synchronization เปเบเปเบเบทเบเบเบฐเบเบธเปเบ - เบญเบฑเบเบเบฝเบงเบเบฑเบเบเบตเปเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเปเบฒ, เบญเบตเบเบเบฒเบกเปเบซเบเบเบปเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบกเบฑเบเบเบงเบเบเบฐเบเบทเบเบชเบฐเบเบฑเบ - เบกเบตเบเบปเบเบเบฐเบเบฒเบเบฒเบกเบเบฑเบ mutex เบเบตเปเบเบทเบเบเบฑเบเปเบฅเปเบง. เปเบเบเบเบต, เบเบตเปเบเปเปเปเบกเปเบเบเบฑเบเบซเบฒเบเบตเปเบกเบตเปเบซเบเบเบปเบเปเบเบฅเบฐเบซเบฑเบ serialized - เบเปเบญเบเบเบฝเบเปเบเปเปเบเปเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบ loop เบซเบผเบฑเบเบกเบฒเบเบเบฐเบเบฒเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบ Emscripten, เปเบเปเบเบฒเบเบเบฑเปเบเบเบฒเบเปเบ asynchronous เบเบฐ unwrap stack เบซเบกเบปเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเบเบฐเบฅเบปเปเบกเปเบซเบฅเบง. setTimeout
เบเบฒเบ loop เบเบปเปเบเบเป - เบเบฑเปเบเบเบฑเปเบ, เบฅเบฐเบซเบฑเบเปเบเบปเปเบฒเปเบเปเบ iteration loop เบเบปเปเบเบเปเปเบเบเบเปเปเบกเบตเบเบฒเบเบญเบญเบเบเบฒเบ iteration เบเบตเปเบเปเบฒเบเบกเบฒ. Rewrote เปเบ loop infinite เปเบฅเบฐ emscripten_sleep
, เปเบฅเบฐเบเบฑเบเบซเบฒเบเบตเปเบกเบต mutexes เบขเบธเบเปเบเบปเบฒ. เบฅเบฐเบซเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเปเบซเบเบเบปเบเบซเบผเบฒเบ - เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ, เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเปเบญเบเบเปเปเบกเบตเบฅเบฐเบซเบฑเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเบฐเบเบฝเบกเบเบญเบเบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบเปเปเปเบ - เปเบเปเบเบเปเบเบตเบเบฝเบเปเบเปเบเบดเบเปเบฅเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบฅเบฐเบซเบเปเบฒเบเปเปเบเปเบเบทเบเบเบฑเบเบเบธเบเปเบเบฑเบเปเบเปเบฅเบฐเปเบฅเบเบฐ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฑเบเบซเบฒเบเปเปเปเบเปเบขเบธเบเบขเบนเปเบเบตเปเบเบฑเปเบ: เบเบฒเบเบเบฑเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ Qemu เบเบฝเบเปเบเปเบขเบธเบเปเบเบปเบฒเบขเปเบฒเบเบเบฝเบเปเปเบเบเบเปเปเบกเบตเบเปเปเบเบปเบเปเบงเบฑเปเบเบซเบผเบทเบเบงเบฒเบกเบเบดเบเบเบฒเบ. เปเบเปเบงเบฅเบฒเบเบตเปเบเปเบญเบเบเบญเบกเปเบเปเบกเบฑเบ, เปเบเปเปเบเบดเปเบเปเบเบเปเบฒเบเบซเบเปเบฒ, เบเปเบญเบเบเบฐเปเบงเบปเปเบฒเบงเปเบฒเบเบฑเบเบซเบฒเปเบกเปเบเบเบตเป: เบฅเบฐเบซเบฑเบ coroutine, เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเปเปเปเบเปเปเบเป. setTimeout
(เบซเบผเบทเบขเปเบฒเบเบซเบเปเบญเบเบเปเปเปเบกเปเบเปเบฅเบทเปเบญเบเปเบเบฒเบกเบเบตเปเปเบเบปเปเบฒเบเบดเบ): function emscripten_yield
เบเบฝเบเปเบเปเบเปเบฒเบเบปเบเบเบธเบเบเบฒเบเปเบ asynchronous. เบเบธเบเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบงเปเบฒ emscripten_coroutine_next
เบเปเปโเปเบกเปเบโเบเบฒเบโเบเปเบฒโเบเบฒเบ asynchronousโ: เบเบฒเบโเปเบโเบกเบฑเบโเบเบงเบโเบชเบญเบโเบเบธเบโเบเบฒเบโ, reset เบกเบฑเบโเปเบฅเบฐโเบเบฒเบโเปเบญเบโเบเบฒเบโเบเบงเบโเบเบธเบกโเปเบโเบเปเบญเบโเบเบตเปโเบกเบฑเบโเบเปเบฒโเปเบเบฑเบโ. เบเบฑเปเบเปเบกเปเบ, เบเบฒเบเบชเบปเปเบเปเบชเบตเบกเบเบฒเบ stack เบชเบดเปเบเบชเบธเบเบฅเบปเบเบขเบนเปเบเบตเปเบเบฑเปเบ. เบเบฑเบเบซเบฒเปเบกเปเบเบงเปเบฒเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเปเบฒเปเบเปเบซเบผเบฑเบเบเบฒเบเบเปเปเปเบชเบเบเปเบฒ, เบเบตเปเบเบฒเบเบปเบเปเบเปเบงเบฅเบฒเบเบตเปเบชเบฐเบเบธเบเปเบเบต coroutine เปเบเปเบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเปเบญเบเบเปเปเปเบเปเบเบฑเบเบฅเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบฒเบ backend coroutine เบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบง, เบซเบเปเบฒเบเบตเป. qemu_in_coroutine
เบเบฑเบเบเบทเบเบเบงเบฒเบกเบเบดเบเปเบกเบทเปเบญเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเบกเบฑเบเบเบงเบเบเบฐเปเบเปเบเบฑเบเบเบทเบ false. เบเบตเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเปเบ emscripten_yield
, เบเปเบฒเบเปเบเบดเบเบเบตเปเบเปเปเบกเบตเปเบเบขเบนเปเปเบ stack เปเบเป emscripten_coroutine_next
, stack unfolded เปเบเบเบฒเบเปเบเบตเบเบซเบผเบฒเบ, เปเบเปเบเปเปเบกเบต setTimeout
, เบเบฑเปเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบงเบปเปเบฒเปเบฅเปเบง, เบเปเปเปเบเปเบเบทเบเบงเบฒเบเบชเบฐเปเบเบ.
เบเบฒเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบ JavaScript
เปเบฅเบฐ, เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบตเปเปเบกเปเบเบเปเบฒเบชเบฑเบเบเบฒ "เบเบฒเบเบซเบฑเบเบเบตเปเบ minced เบเบฑเบเบเบทเบเปเบเบเปเบญเบ." เบเปเปเปเบกเปเบเปเบเปเป. เปเบเปเบเบญเบ, เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบ Qemu เปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบ, เปเบฅเบฐ Node.js เปเบเบกเบฑเบ, เบเบฒเบกเบเปเบฒเบกเบฐเบเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเปเบ Qemu เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบ JavaScript เบเบดเบเบเบฒเบเบซเบกเบปเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเบซเบฑเบเบเปเบฝเบเบเบทเบ.
เบซเบเปเบฒเบเปเบฒเบญเบดเบ, เปเบฅเบฑเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบ Qemu เปเบฎเบฑเบเบงเบฝเบ. เบเบฐเบฅเบธเบเบฒเปเบซเปเบญเบฐเปเบเบเปเบญเบเบเบฑเบเบเบต: เบเปเบญเบเบเปเปเปเบกเปเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒ Qemu เบกเบทเบญเบฒเบเบตเบเปเบฅเบฐเบเบปเบเบชเบฐเบซเบผเบธเบเบเบญเบเบเปเบญเบเบญเบฒเบเบเบฐเบเบดเบเบเบฒเบเปเบเบเบฒเบเบเปเบญเบ. เบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเปเบงเบปเปเบฒเบงเปเบฒ, "เบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบญเบเบเบฑเบเบฎเบฝเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบปเบเบเบฑเบเบเบฑเบเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบญเบเบเบน, Peano เปเบฅเบฐเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบปเปเบงเปเบ." Qemu เบกเบตเบเปเบฒเบเบงเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบญเบเปเบเบเบเบตเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบฅเบฐเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบเบกเบตเบฅเบฒเบเบเบทเปเปเบเบฑเปเบ target-i386
. เปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเปเปเบชเปเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบญเบเปเบเบเบซเบผเบฒเบ, เปเบเปเบเบปเบเปเบเปเบฎเบฑเบเบเบฐเปเบเบฑเบเบชเบญเบเบชเบญเบเปเบเบปเปเบฒ. เบฅเบฐเบซเบฑเบเปเบเบทเปเบญเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบญเบเปเบเบ, เปเบเบเบฒเบเบเบฑเบเบเบฑเบ, เบชเปเบฒเบเบเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ Qemu เบเบฒเบเปเบ, เปเบเบดเปเบ TCG (เบเบปเบงเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบฐเบซเบเบฒเบเบเปเบญเบ) เปเบฅเปเบงเบเปเบฝเบเปเบเบฑเบเบฅเบฐเบซเบฑเบเปเบเบทเปเบญเบเบเบฑเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเบปเปเบฒเบเบฒเบ. เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเปเบงเปเปเบเปเบเบฅเป readme เบเบตเปเบเบฑเปเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต tcg, เปเบเปเบเบทเปเบญเบเบเบปเปเบเบเบตเปเปเบกเปเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ C compiler เบเบปเบเบเบฐเบเบด, เปเบเบดเปเบเบเปเปเบกเบฒเปเบเปเบเบทเบเบเบฑเบเปเบเบเบชเปเบฒเบฅเบฑเบ JIT. เบเบฑเปเบเบเบฑเปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเบเปเปเบเปเบฒเบเบปเบเบเบญเบเปเบญเบเบฐเบชเบฒเบเบเบตเปเปเบกเปเบเบเปเปเปเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบญเบเปเบเบ, เปเบเปเปเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเปเบเบปเปเบฒเบเบฒเบ. เปเบเบเบฒเบเบเบธเบ, เบญเบปเบเบเบฐเบเบญเบเบญเบทเปเบเบเบฒเบเบปเบ - เบเบปเบงเปเบเบฅเบฐเบซเบฑเบเบเบฐเบซเบเบฒเบเบเปเบญเบ (TCI), เปเบเบดเปเบเบเบงเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบ (เปเบเบทเบญเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเปเบ) เปเบเปเบกเบทเปเบญเบเปเปเบกเบตเบเบปเบงเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบชเบฐเปเบเบฒเบฐ. เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบฒเบกเปเบญเบเบฐเบชเบฒเบเบเบญเบเบเบปเบ, เบเบฒเบเบเบฒเบชเบฒเบเบตเปเบญเบฒเบเบเบฐเบเปเปเบเบฐเบเบดเบเบฑเบเปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเปเบเบทเปเบญเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบ JIT, เบเปเปเบเบฝเบเปเบเปเปเบเบเบฐเบฅเบดเบกเบฒเบเบเบญเบเบเบงเบฒเบกเปเบง, เปเบเปเบเบฑเบเบเบธเบเบเบฐเบเบฒเบ. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบญเบเบเปเปเปเบเปเปเบเบงเปเบฒเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบฅเบฒเบงเบกเบตเบเบงเบฒเบกเบเปเบฝเบงเบเปเบญเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ.
เบเปเบฒเบญเบดเบเบเปเบญเบเบเบฐเบเบฒเบเบฒเบกเบชเปเบฒเบ backend TCG เปเบเบฑเบกเบฎเบนเบเปเบเบ, เปเบเปเบชเบฑเบเบชเบปเบเบขเปเบฒเบเปเบงเบงเบฒเปเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเปเบฅเบฐเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบตเปเบเปเปเบเบฑเบเปเบเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเปเบฒเปเบเบฐเบเปเบฒ bytecode, เบเบฑเปเบเบเบฑเปเบเบเปเบญเบเบเบถเปเบเบเบฑเบเบชเบดเบเปเบเบซเปเปเบเบปเบงเปเบเบเบฒเบชเบฒ TCI. เบเบตเปโเปเบซเปโเบเปเปโเบเบตโเบซเบผเบฒเบโเบขเปเบฒเบโ:
- เปเบโเปเบงโเบฅเบฒโเบเบตเปโเบเบฐโเบเบดโเบเบฑเบโเปเบเบทเปเบญเบโเบชเปเบฒเบโเบฅเบฐโเบซเบฑเบโ, เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเปเบเบดเปเบโเบเปเปโเปเบเปโเบขเบนเปโเปเบโเบเปเบฒโเบญเบฐโเบเบดโเบเบฒเบโเบเบญเบโเบเปเบฒโเปเบเบฐโเบเปเบฒโ, เปเบเปโเบขเบนเปโเปเบโเบฅเบฐโเบซเบฑเบโเบเบฒเบโเบเบฒโเบชเบฒโ
- เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบซเบเปเบฒเบเบตเปเบเปเปเปเบกเปเบเบชเปเบฒเบฅเบฑเบเบเบธเบเปเบเบฒเบเปเบเบเบฒเบชเบฒเบเบตเปเบเบปเบ, เปเบเป, เบเบปเบงเบขเปเบฒเบ, เบเบฝเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบฎเปเบญเบ
- เบเปเบฒเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบฐเบเปเบฝเบเปเบเบ (เปเบฅเบฐเบเบตเปเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเปเบเปเบเป, เบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบเบซเบเปเบฒเบเบตเปเบเบตเปเบกเบตเบเบทเปเบเบตเปเบกเบตเบเปเบฒเบงเปเบฒ patch), เบเปเบญเบเบเบฐเบเปเบญเบเปเบเปเบฅเบฐเบซเบฑเบ JS เบเบตเปเบชเปเบฒเบเบเบถเปเบ, เปเบเปเบขเปเบฒเบเบซเบเปเบญเบเบเปเบญเบเบเบฐเบกเบตเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเบฐเบชเปเบฒเบเปเบซเบกเปเบเบฒเบ.
เบเปเบฝเบงเบเบฑเบเบเบธเบเบเบตเบชเบฒเบก, เบเปเบญเบเบเปเปเปเบเปเปเบเบงเปเบฒเบเบฒเบ patching เปเบเบฑเบเปเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบฅเบฐเบซเบฑเบเบเบทเบเบเบฐเบเบดเบเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เปเบเปเบชเบญเบเบเบธเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเบฝเบเบเป.
เปเบเปเบเบทเปเบญเบเบเบปเปเบ, เบฅเบฐเบซเบฑเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเบฎเบนเบเปเบเบเบเบญเบเบชเบฐเบซเบผเบฑเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบตเปเบขเบนเปเบเบญเบเบเปเบฒเปเบเบฐเบเปเบฒ bytecode เบเบปเปเบเบชเบฐเบเบฑเบ, เปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบทเปเบเปเบฒเบเบปเบเบเบงเบฒเบกเบเปเบฝเบงเบเบฑเบ Emscripten, เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบ JS เบเบตเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบฅเบฐ relooping, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบญเบเบกเบฐเบเบธเบเบซเบผเบฒเบเบเบถเปเบ, เปเบเบเบชเบฐเปเบเบฒเบฐเบเบฑเบเบเบฑเปเบเปเบเปเบกเบฑเบเปเบซเบฑเบเปเบเปเบเบฑเบเปเบเบ. เปเบเปโเบซเบฑเบโเบญเบญเบโเบงเปเบฒโเบเบธเบโเบเบฝเบงโเบเบตเปโเปเบเบปเปเบฒโเปเบโเปเบโเบเบฑเบโเบเบฒเบโเปเบโเบเบฒโเบชเบฒโเปเบกเปเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบญเบโเบเบปเบโ. เบเปเปเบกเบตเบเบฒเบเปเบงเบปเปเบฒเปเบงเบเบงเปเบฒเบเบฒเบเปเบฎเบฑเบ, เบซเบผเบฑเบเบเบฒเบเปเบงเบฅเบฒเปเบเบซเบเบถเปเบเบเบงเบเปเบฎเบปเบฒเบกเบตเปเบเบทเปเบญเบเบเปเบฒเปเบเบตเบเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบตเปเบกเบต ifs (เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเปเบกเบต loops). เปเบเปเปเบเบเบเปเปเบเบต, เบกเบฑเบเปเบเปเบฅเบปเปเบกเบฅเบปเบ, เปเบซเปเบเปเปเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเปเบเบฐเบเปเบฒเบกเบตเบเบงเบฒเบกเบเบฒเบงเบเบตเปเบเปเปเบเบทเบเบเปเบญเบ. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเปเบฒเปเบเบฐเบเปเบฒเบชเบธเบเบเปเบฒเบเปเบเบฅเบฐเบเบฑเบ recursion เบเบตเปเปเบกเปเบ brcond
. เบเบปเบเบฅเบปเบ, เบเปเบญเบเบเบฐเปเบเบตเปเบกเบเบฒเบเบเบงเบเบชเบญเบเปเบเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบชเปเบฒเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบเปเบญเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฒเบเปเบ recursive เปเบฅเบฐ ... เบเปเปเปเบกเปเบเบญเบฑเบเปเบเบญเบฑเบเบซเบเบถเปเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบ, เปเบเปเบซเบผเบฑเบเบเบฒเบเบชเบฐเบซเบผเบฑเบเบขเบทเบเบขเบฑเบเบเบงเบเปเบเบปเบฒเบเบฑเบเบฅเบปเปเบกเปเบซเบฅเบง. เปเบเบเบตเปเบชเบธเบ, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบชเบถเบเบชเบฒเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบเบถเปเบ, เบเปเบญเบเบฎเบนเปเบงเปเบฒเบซเบผเบฑเบเบเบฒเบเบชเบฐเบซเบผเบฑเบ, เบเบปเบงเบเบตเปเปเบเบซเบฒเบเปเบฒเปเบเบฐเบเปเบฒเปเบเบเบฐเบเบธเบเบฑเบเบเบฐเบเบทเบเปเบซเบผเบเบเบทเบเบเบฒเบ stack เปเบฅเบฐเบญเบฒเบเบเบฐเบเบทเบเบเบฝเบเบเบฑเบเบเปเบงเบเบฅเบฐเบซเบฑเบ JavaScript เบเบตเปเบชเปเบฒเบเบเบถเปเบ. เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบ. เบเบฒเบเปเบเบตเปเบก buffer เบเบฒเบเบซเบเบถเปเบ megabyte เปเบเบฑเบเบชเบดเบเบเปเปเปเบเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบซเบเบฑเบ, เปเบฅเบฐเบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเปเบเบทเปเบญเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเปเบกเปเบเปเบฅเปเบเปเบเบฑเบเบงเบปเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเปเบเบตเบเบเบญเบเปเบเบเบเบญเบเบงเบฑเบเบเบฐเปเบฅเบเปเบเบเบฐเบเบธเบเบฑเบ, เปเบฅเบฐเบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบญเบญเบเบเบตเปเบขเบนเปเบเบญเบ TB เบเปเปเปเบเบเปเบงเบเปเบเบทเปเบญเบเบซเบกเบฒเบเบฅเบปเบเปเบเบทเปเบญเปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเปเปเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบตเปเบเบฐเปเบเปเปเบเบเบฑเบเบซเบฒ "เบซเบเปเบฒเบเบตเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบงเบเบเบฐเบเปเปเบเบทเบเบเปเบญเบเบเปเบฒเบเบดเปเบเบชเปเบงเบเบเบญเบ bytecode เบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ?" โ เบเบฝเบโเปเบเปโเบซเบเปเบฒโเบเบตเปโเบเบตเปโเบชเบญเบโเบเปเบญเบโเบเบฑเบโเบเบฑเบ block เบเบฒเบโเปเบโเบเบฒโเบชเบฒโเบเบตเปโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเบเปเปโเบเบทเบโเบเปเบญเบโ. เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบญเบเปเบเปเปเบเปเปเบเบเบธเบเบชเบดเปเบเบเบตเปเบขเบนเปเปเบ Chromium (เบเบฑเบเบเบฑเปเบเปเบเปเบเปเบญเบเปเบเป Firefox เปเบฅเบฐเบกเบฑเบเบเปเบฒเบเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบเปเบญเบเบเบตเปเบเบฐเปเบเปเบเบปเบงเบเปเบญเบเปเบงเบฑเบเปเบเบเบเปเบฒเบเบซเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบ), Firefox เปเบเปเบเปเบงเบเบเปเบญเบเปเบเปเปเบเบเบงเบฒเบกเบเปเปเปเบเบปเปเบฒเบเบฑเบเบเบฑเบเบกเบฒเบเบเบฐเบเบฒเบ asm.js, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบฅเบฐเบซเบฑเบเปเบฅเบตเปเบกเปเบฎเบฑเบเบงเบฝเบเปเบงเบเบถเปเบ. Chromium.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบชเปเบฒเบเบเบถเปเบ
Compiling 0x15b46d0:
CompiledTB[0x015b46d0] = function(stdlib, ffi, heap) {
"use asm";
var HEAP8 = new stdlib.Int8Array(heap);
var HEAP16 = new stdlib.Int16Array(heap);
var HEAP32 = new stdlib.Int32Array(heap);
var HEAPU8 = new stdlib.Uint8Array(heap);
var HEAPU16 = new stdlib.Uint16Array(heap);
var HEAPU32 = new stdlib.Uint32Array(heap);
var dynCall_iiiiiiiiiii = ffi.dynCall_iiiiiiiiiii;
var getTempRet0 = ffi.getTempRet0;
var badAlignment = ffi.badAlignment;
var _i64Add = ffi._i64Add;
var _i64Subtract = ffi._i64Subtract;
var Math_imul = ffi.Math_imul;
var _mul_unsigned_long_long = ffi._mul_unsigned_long_long;
var execute_if_compiled = ffi.execute_if_compiled;
var getThrew = ffi.getThrew;
var abort = ffi.abort;
var qemu_ld_ub = ffi.qemu_ld_ub;
var qemu_ld_leuw = ffi.qemu_ld_leuw;
var qemu_ld_leul = ffi.qemu_ld_leul;
var qemu_ld_beuw = ffi.qemu_ld_beuw;
var qemu_ld_beul = ffi.qemu_ld_beul;
var qemu_ld_beq = ffi.qemu_ld_beq;
var qemu_ld_leq = ffi.qemu_ld_leq;
var qemu_st_b = ffi.qemu_st_b;
var qemu_st_lew = ffi.qemu_st_lew;
var qemu_st_lel = ffi.qemu_st_lel;
var qemu_st_bew = ffi.qemu_st_bew;
var qemu_st_bel = ffi.qemu_st_bel;
var qemu_st_leq = ffi.qemu_st_leq;
var qemu_st_beq = ffi.qemu_st_beq;
function tb_fun(tb_ptr, env, sp_value, depth) {
tb_ptr = tb_ptr|0;
env = env|0;
sp_value = sp_value|0;
depth = depth|0;
var u0 = 0, u1 = 0, u2 = 0, u3 = 0, result = 0;
var r0 = 0, r1 = 0, r2 = 0, r3 = 0, r4 = 0, r5 = 0, r6 = 0, r7 = 0, r8 = 0, r9 = 0;
var r10 = 0, r11 = 0, r12 = 0, r13 = 0, r14 = 0, r15 = 0, r16 = 0, r17 = 0, r18 = 0, r19 = 0;
var r20 = 0, r21 = 0, r22 = 0, r23 = 0, r24 = 0, r25 = 0, r26 = 0, r27 = 0, r28 = 0, r29 = 0;
var r30 = 0, r31 = 0, r41 = 0, r42 = 0, r43 = 0, r44 = 0;
r14 = env|0;
r15 = sp_value|0;
START: do {
r0 = HEAPU32[((r14 + (-4))|0) >> 2] | 0;
r42 = 0;
result = ((r0|0) != (r42|0))|0;
HEAPU32[1445307] = r0;
HEAPU32[1445321] = r14;
if(result|0) {
HEAPU32[1445322] = r15;
return 0x0345bf93|0;
}
r0 = HEAPU32[((r14 + (16))|0) >> 2] | 0;
r42 = 8;
r0 = ((r0|0) - (r42|0))|0;
HEAPU32[(r14 + (16)) >> 2] = r0;
r1 = 8;
HEAPU32[(r14 + (44)) >> 2] = r1;
r1 = r0|0;
HEAPU32[(r14 + (40)) >> 2] = r1;
r42 = 4;
r0 = ((r0|0) + (r42|0))|0;
r2 = HEAPU32[((r14 + (24))|0) >> 2] | 0;
HEAPU32[1445307] = r0;
HEAPU32[1445308] = r1;
HEAPU32[1445309] = r2;
HEAPU32[1445321] = r14;
HEAPU32[1445322] = r15;
qemu_st_lel(env|0, r0|0, r2|0, 34, 22759218);
if(getThrew() | 0) abort();
r0 = 3241038392;
HEAPU32[1445307] = r0;
r0 = qemu_ld_leul(env|0, r0|0, 34, 22759233)|0;
if(getThrew() | 0) abort();
HEAPU32[(r14 + (24)) >> 2] = r0;
r1 = HEAPU32[((r14 + (12))|0) >> 2] | 0;
r2 = HEAPU32[((r14 + (40))|0) >> 2] | 0;
HEAPU32[1445307] = r0;
HEAPU32[1445308] = r1;
HEAPU32[1445309] = r2;
qemu_st_lel(env|0, r2|0, r1|0, 34, 22759265);
if(getThrew() | 0) abort();
r0 = HEAPU32[((r14 + (24))|0) >> 2] | 0;
HEAPU32[(r14 + (40)) >> 2] = r0;
r1 = 24;
HEAPU32[(r14 + (52)) >> 2] = r1;
r42 = 0;
result = ((r0|0) == (r42|0))|0;
if(result|0) {
HEAPU32[1445307] = r0;
HEAPU32[1445308] = r1;
}
HEAPU32[1445307] = r0;
HEAPU32[1445308] = r1;
return execute_if_compiled(22759392|0, env|0, sp_value|0, depth|0) | 0;
return execute_if_compiled(23164080|0, env|0, sp_value|0, depth|0) | 0;
break;
} while(1); abort(); return 0|0;
}
return {tb_fun: tb_fun};
}(window, CompilerFFI, Module.buffer)["tb_fun"]
เบชเบฐเบซเบฅเบธเบ
เบเบฑเปเบเบเบฑเปเบ, เบงเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบเบฑเบเบเปเปเบชเปเบฒเปเบฅเบฑเบ, เปเบเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบฎเบนเปเบชเบถเบเปเบกเบทเปเบญเบเบฅเปเบฒเปเบเบตเปเบเบฐเบเปเบฒเปเบญเบปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเปเบฅเบเบฐเบเบฒเบงเบเบตเปเปเบเบชเบนเปเบเบงเบฒเบกเบชเบปเบกเบเบนเบเปเบเบเบขเปเบฒเบเบฅเบฑเบเป. เปเบเบฒเบฐเบชเบฐเบเบฑเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบเบตเปเบเบฐเปเบเบตเบเปเบเปเบชเบดเปเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบกเบตเปเบเบเบฑเบเบเบธเบเบฑเบ. เบฅเบฐเบซเบฑเบเปเบกเปเบเบซเบเปเบฒเบขเปเบฒเบเปเบฅเบฑเบเบเปเบญเบเปเบเบชเบฐเบเบฒเบเบเบตเป, เปเบเบฒเบฐเบงเปเบฒเบเบตเปเปเบกเปเบเบเบฒเบเบเบปเบเบฅเบญเบ, เปเบฅเบฐเบกเบฑเบเบเปเปเบเบฑเบเปเบเบเบฅเปเบงเบเบซเบเปเบฒเบชเบดเปเบเบเบตเปเบเปเบญเบเปเบฎเบฑเบ. เบญเบฒเบเบเบฐเปเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบกเบฑเบเบเบธเปเบกเบเปเบฒเบเบตเปเบเบฐเบญเบญเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฐเบฅเปเบฒเบกเบฐเบเบนเบเบปเบเบเบฐเบเบดเบขเบนเปเปเบเบดเบเบชเบธเบเบเบญเบเบเบฒเบเบฎเบธเปเบเบเบตเปเบเบฑเบเบชเบฐเปเบซเบกเบเบญเบ Qemu. เปเบเปเบงเบฅเบฒเบเบตเป, เบกเบตเบเบฐเบเบนเปเบขเบนเปเปเบ Gita เปเบเบฎเบนเบเปเบเบ blog: เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐ "เบฅเบฐเบเบฑเบ" เบเบตเปเปเบเปเบเปเบฒเบเบขเปเบฒเบเบเปเบญเบ, เบเปเบฒเปเบซเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบเบฒเบชเบฒเบฅเบฑเบเปเบเบเปเบเปเบเบทเบเปเบเบตเปเบก. เปเบเปเบเบดเบเปเบฅเปเบง, เบเบปเบเบเบฝเบเบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฒเบเปเบฅเบปเปเบฒเบเบทเบเบเบญเบเบเบปเบเบชเบฐเบซเบผเบธเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ git log
.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบฅเบญเบเบกเบฑเบเบเบฑเบเบซเบกเบปเบ
เบชเบดเปเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบฅเปเบง:
- x86 เปเบเปเบเบเปเบเบต virtual เปเบฅเปเบ
- เบกเบตเบเบปเปเบเปเบเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเปเบเบทเปเบญเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบ JIT เบเบฒเบเบฅเบฐเบซเบฑเบเปเบเบทเปเบญเบเบเบฑเบเปเบเบซเบฒ JavaScript
- เบกเบตเปเบกเปเปเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบญเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเบ 32-bit เบญเบทเปเบเป: เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบปเบกเปเบเบตเบ Linux เบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐ MIPS freezing เปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเปเบซเบผเบ.
เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบซเบเบฑเบเปเบเปเบญเบตเบ
- เปเบฅเบฑเปเบเบเบฒเบ emulation. เปเบกเปเปเบเปเบขเบนเปเปเบเปเบซเบกเบ JIT เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบฐเปเบฎเบฑเบเบงเบฝเบเบเปเบฒเบเบงเปเบฒ Virtual x86 (เปเบเปเบงเปเบฒเบกเบต Qemu เบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบตเบฎเบฒเบเปเบงเปเบฅเบฐเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบตเปเบเปเบฒเบฅเบญเบเบซเบผเบฒเบ)
- เปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบเบฒเบเปเบเปเบเบญเบเปเบเบเบเบปเบเบเบฐเบเบด - เปเบงเบปเปเบฒเบเบปเบเปเบเบเบปเบเบกเบฒ, เบเปเบญเบเบเปเปเปเบกเปเบเบเบนเปเบเบฑเบเบเบฐเบเบฒเปเบงเบฑเบเบเบตเปเบเบต, เบชเบฐเบเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบญเบเบเบตเปเบเปเบญเบเปเบเป remade เบกเบฒเบเบเบฐเบเบฒเบ Emscripten shell เบเบตเปเบเบตเบเบตเปเบชเบธเบเบเบตเปเบเปเบญเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป.
- เบเบฐเบเบฒเบเบฒเบกเปเบเบตเบเบเบฑเบเบเบฑเบ Qemu เบเบตเปเบเบฑเบเบเปเบญเบ - เปเบเบทเบญเบเปเบฒเบ, เบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบ VM, เปเบฅเบฐเบญเบทเปเบเป.
- UPS: เบเปเบฒเบเบเบฐเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบชเบปเปเบเบเบปเบเบฅเบฒเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบฅเบฐเบเปเปเบเบปเบเบเปเบญเบเบเบญเบเบเปเบฒเบเปเบเปเบซเป Emscripten เปเบเบดเบเบเปเปเบฒ, เบเบฑเปเบเบเบตเปเบเบนเปเบเบปเบเบชเบปเปเบเบเบญเบ Qemu เปเบฅเบฐเปเบเบเบเบฒเบเบญเบทเปเบเปเปเบเปเปเบฎเบฑเบ. เบเบญเบเปเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเบเบฒเบเบเบฐเบเบญเบเบชเปเบงเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบซเปเบเบฑเบ Emscripten เปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบงเบฝเบเบเบฒเบเบเบญเบเบเปเบญเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com