Blink-ի առաջին թողարկումը՝ բարձր արդյունավետությամբ x86-64 էմուլյատոր

Հրապարակվել է Blink նախագծի առաջին նշանակալի թողարկումը, որը մշակում է x86-64 պրոցեսորների էմուլյատոր, որը թույլ է տալիս ստատիկ և դինամիկ կերպով կառուցված Linux հավելվածներ գործարկել վիրտուալ մեքենայի մեջ՝ նմանակված պրոցեսորով: Blink-ի միջոցով x86-64 ճարտարապետության համար կազմված Linux ծրագրերը կարող են գործարկվել 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 ԿԲ (հանված կառուցմամբ՝ 115 ԿԲ) qemu-x4_86-ի համար 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, REXT), հրահանգների հավաքածուներ և RDTSCP:

Բացի այդ, Blink-ի հիման վրա մշակվում է blinkenlights ծրագիրը, որն ապահովում է ինտերֆեյս ծրագրի կատարման առաջընթացը պատկերացնելու և հիշողության բովանդակությունը վերլուծելու համար: Կոմունալ ծրագիրը կարող է օգտագործվել որպես վրիպազերծիչ, որն աջակցում է հակադարձ կարգաբերման ռեժիմին և թույլ է տալիս վերադառնալ կատարման պատմության մեջ և վերադառնալ նախկինում կատարված կետ: Նախագիծը մշակվել է այնպիսի զարգացումների հեղինակի կողմից, ինչպիսիք են Cosmopolitan C գրադարանը, Linux-ի գրավական մեկուսացման մեխանիզմը և Redbean ունիվերսալ գործարկվող ֆայլային համակարգը:

Blink-ի առաջին թողարկումը՝ բարձր արդյունավետությամբ x86-64 էմուլյատոր


Source: opennet.ru

Добавить комментарий