ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ Π΅ ΠΏΡΡΠ²ΠΎΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Blink, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π΅ΠΌΡΠ»Π°ΡΠΎΡ Π½Π° x86-64 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Linux ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Ρ Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. Π‘ Blink Linux ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π·Π° x86-64 Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π° Π΄ΡΡΠ³ΠΈ POSIX-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) ΠΈ Π½Π° ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ Ρ Π΄ΡΡΠ³ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ (x86, ARM, RISC-V, MIPS , PowerPC, s390x). ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊ C (ANSI C11) ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· ISC. ΠΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ°ΠΌΠΎ libc (POSIX.1-2017).
ΠΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Blink Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° qemu-x86_64, Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ QEMU ΠΏΠΎ ΠΏΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΈΡ ΡΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡΡ ΡΠ°ΠΉΠ» Π½Π° Blink Π·Π°Π΅ΠΌΠ° ΡΠ°ΠΌΠΎ 221 KB (ΡΡΡ ΡΡΠΊΡΠ°ΡΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ - 115 KB) Π²ΠΌΠ΅ΡΡΠΎ 4 MB Π·Π° qemu-x86_64 ΠΈ Π² Π½ΡΠΊΠΎΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠ° Π² Π΅ΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° GCC ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π²ΡΠ·Ρ ΠΎΠΆΠ΄Π° QEMU Ρ ΠΎΠΊΠΎΠ»ΠΎ Π΄Π²Π° ΠΏΡΡΠΈ.
ΠΠ° Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°. ΠΠΌΡΠ»Π°ΡΠΎΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°ΡΠΈ ELF, PE (Portable Executables) ΠΈ bin (Flat executable), ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Cosmopolitan, Glibc ΠΈ Musl. ΠΠ³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° 180 ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π½Π° Linux ΠΈ Π΅ΠΌΡΠ»Π°ΡΠΈΡ Π½Π° ΠΎΠΊΠΎΠ»ΠΎ 600 x86 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΠΎΠΊΡΠΈΠ²Π°ΡΠΈ i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ RDTSCP.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Blink, ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° blinkenlights, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ Π΄Π΅Π±ΡΠ³Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ Π½Π°Π·Π°Π΄ Π² Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° ΡΠΎΡΠΊΠ°. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Π°Π²ΡΠΎΡΠ° Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Cosmopolitan C, ΠΏΠΎΡΡ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ Π·Π° Linux ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½Π°ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Redbean.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru