Nailathala na ang unang mahalagang paglabas ng proyektong Blink. Bumubuo ito ng isang emulator ng mga x86-64 processor na nagbibigay-daan sa iyong magpatakbo ng static at dynamic na na-compile. Linux- mga aplikasyon sa isang virtual machine na may emulate processor. Ginawa para sa x86-64 architecture gamit ang Blink Linux- maaaring patakbuhin ang mga programa sa iba pang mga operating system na sumusunod sa POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) at sa hardware na may iba pang arkitektura (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Ang project code ay nakasulat sa C (ANSI C11) at ipinamamahagi sa ilalim ng lisensya ng ISC. Ang tanging dependency na kinakailangan ay libc (POSIX.1-2017).
Ang blink ay katulad ng functionality sa qemu-x86_64, ngunit naiiba sa QEMU sa mas compact na pagpapatupad nito at makabuluhang mga nadagdag sa performance. Halimbawa, ang Blink executable ay tumatagal lamang ng 221 KB (115 KB na may stripped-down na build) kumpara sa 4 MB para sa qemu-x86_64, at sa ilang mga pagsubok, gaya ng pagtakbo sa GCC emulator at pagsasagawa ng mga mathematical na operasyon, nahihigitan nito ang QEMU ng humigit-kumulang dalawang beses.
Upang matiyak ang mataas na pagganap, ginagamit ang isang JIT compiler, na nagko-convert ng mga source instruction nang mabilisan tungo sa machine code para sa target na platform. Sinusuportahan ang direktang pagpapatupad sa emulator para sa mga executable file sa mga format na ELF, PE (Portable Executables), at bin (Flat executable), na na-compile gamit ang mga karaniwang C libraries na Cosmopolitan, Glibc, at Musl. Ipinapatupad ang built-in na suporta para sa 180 system calls. Linux at paggaya ng humigit-kumulang 600 x86 na mga instruksyon ng processor, na sumasaklaw sa mga set ng instruksyon ng i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED at RDTSCP.
Bukod pa rito, ang blinkenlights utility ay binubuo batay sa Blink, na nagbibigay ng interface para sa pagpapakita ng pagpapatupad ng programa at pagsusuri ng mga nilalaman ng memorya. Ang utility ay maaaring gamitin bilang isang debugger, na sumusuporta sa reverse debugging at nagbibigay-daan sa isa na mag-navigate pabalik sa kasaysayan ng pagpapatupad at bumalik sa isang dating naisagawang punto. Ang proyekto ay binubuo ng may-akda ng mga pag-unlad tulad ng Cosmopolitan C library, isang port ng mekanismo ng paghihiwalay ng pledge para sa Linux at ang unibersal na executable system ng Redbean.

Pinagmulan: opennet.ru
