Ko te tuku tuatahi o Blink, he emulator x86-64 tino mahi

Ko te tukunga nui tuatahi o te kaupapa Blink kua whakaputahia, te whakawhanake i te emulator o x86-64 pūtukatuka e taea ai e koe te whakahaere i nga tono Linux i roto i te miihini mariko me te kaitukatuka tauira. Ma te Blink, ko nga kaupapa Linux kua whakahiato mo te hoahoanga x86-64 ka taea te whakahaere i runga i etahi atu punaha whakahaere POSIX-hototahi (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) me nga taputapu me etahi atu hoahoanga taputapu (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Kua tuhia te waehere kaupapa ki te reo C (ANSI C11) ka tohatohahia i raro i te raihana ISC. O nga whakawhirinakitanga, ko te libc anake (POSIX.1-2017) e hiahiatia ana.

Mo te mahi, he rite a Blink ki te whakahau qemu-x86_64, engari he rereke mai i te QEMU i roto i tana hoahoa kiato me te pikinga nui o te mahi. Hei tauira, ko te Blink executable e tango ana i te 221 KB anake (me te hanga kua tihorea - 115 KB) hei utu mo te 4 MB mo qemu-x86_64, a, i etahi whakamatautau, penei i te rere i roto i te GCC emulator me te mahi i nga mahi pangarau, he pai ake te mahi. QEMU e rua pea nga wa.

Hei whakarite i nga mahi nui, ka whakamahia he JIT compiler, e huri ana i nga tohutohu puna i runga i te rere ki roto i te waehere miihini mo te papanga whaainga. Ka tautokohia e te emulator te whakarewatanga tika o nga konae ka taea te whakahaere i roto i nga whakatakotoranga ELF, PE (Ka taea te kawe) me te bin (Ka taea te whakahaere), i whakahiatohia me nga whare pukapuka C paerewa Cosmopolitan, Glibc me Musl. Tautoko-i roto i te 180 nga waea punaha Linux me te tauira mo te 600 x86 nga tohutohu tukatuka e pa ana ki te i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87RD, RSEEDDRND, nga huinga tohutohu me te RDTSCP.

I tua atu, i runga i te Blink, kei te whakawhanakehia te taputapu blinkenlights, e whakarato ana i te atanga mo te tiro i te ahunga whakamua o te whakatinanatanga o te hotaka me te tātari i nga ihirangi o te mahara. Ka taea te whakamahi i te taputapu hei patuiro e tautoko ana i te aratau whakamuri-patuiro ka taea e koe te hoki whakamuri i roto i te hitori o te mahi me te hoki ki te waahi i mahia i mua. Ko te kaupapa i whakawhanakehia e te kaituhi o nga whanaketanga penei i te whare pukapuka Cosmopolitan C, he tauranga mo te tikanga wehe mo te Linux me te punaha konae a Redbean.

 Ko te tuku tuatahi o Blink, he emulator x86-64 tino mahi


Source: opennet.ru

Tāpiri i te kōrero