Premye gwo vèsyon pwojè Blink la te pibliye. Y ap devlope yon emilatè pou processeur x86-64 ki pèmèt ou egzekite konpile estatikman ak dinamikman. Linux- aplikasyon nan yon machin vityèl ak yon processeur emule. Bati pou achitekti x86-64 la lè l sèvi avèk Blink Linux- pwogram yo ka fonksyone sou lòt sistèm operasyon konpatib ak POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) ak sou pyès ki nan konpitè ak lòt achitekti (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Kòd pwojè a ekri an C (ANSI C11) epi li distribye anba lisans ISC. Sèl depandans ki nesesè a se libc (POSIX.1-2017).
An tèm de fonctionnalitÊs, Blink se menm jan ak lòd qemu-x86_64 la, men diferan de QEMU nan konsepsyon plis kontra enfòmèl ant li yo ak ogmantasyon pèfòmans enpòtan. Pou egzanp, ègzèkutabl Blink la pran sèlman 221 KB (avèk yon batiman dezabiye - 115 KB) olye pou yo 4 MB pou qemu-x86_64, ak nan kèk tès, tankou kouri nan emulateur GCC a ak fè operasyon matematik, li depase. QEMU pa apeprè de fwa.
Pou asire pèfòmans ki wo, yo itilize yon konpilatè JIT, ki konvèti enstriksyon sous yo sou plas an kòd machin pou platfòm sib la. Yo sipòte ekzekisyon dirèk nan emilatè a pou fichye ekzekisyon nan fòma ELF, PE (Portable Executables), ak bin (Flat executable), konpile avèk bibliyotèk C estanda Cosmopolitan, Glibc, ak Musl. Yo aplike sipò entegre pou 180 apèl sistèm. Linux ak emulasyon anviwon 600 enstriksyon processeur x86, ki kouvri ansanm enstriksyon i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED ak RDTSCP.
Anplis de sa, y ap devlope zouti blinkenlights la ki baze sou Blink, pou bay yon koòdone pou vizyalize ekzekisyon pwogram nan epi analize kontni memwa a. Yo ka itilize zouti a kòm yon debogeur, pou sipòte debogaj envès epi pèmèt yon moun retounen nan istwa ekzekisyon an epi retounen nan yon pwen ki te deja egzekite. Pwojè a ap devlope pa otè devlopman tankou bibliyotèk Cosmopolitan C a, yon pò mekanis izolasyon angajman pou Linux ak sistèm ekzekisyon inivèsèl Redbean an.

Sous: opennet.ru
