ΠŸΡŠΡ€Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Blink, високопроизводитСлСн x86-64 Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ Π΅ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° 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.

ΠŸΡŠΡ€Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Blink, високопроизводитСлСн x86-64 Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€


Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€