ഉയർന്ന പ്രകടനമുള്ള x86-64 എമുലേറ്ററായ ബ്ലിങ്കിന്റെ ആദ്യ പതിപ്പ്

x86-64 പ്രോസസറുകളുടെ ഒരു എമുലേറ്റർ വികസിപ്പിച്ചുകൊണ്ട് ബ്ലിങ്ക് പ്രോജക്റ്റിന്റെ ആദ്യത്തെ സുപ്രധാന പതിപ്പ് പ്രസിദ്ധീകരിച്ചു, അത് ഒരു എമുലേറ്റഡ് പ്രൊസസറുള്ള ഒരു വെർച്വൽ മെഷീനിൽ സ്റ്റാറ്റിക്കലും ഡൈനാമിക് ആയി നിർമ്മിച്ച ലിനക്സ് ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ബ്ലിങ്ക് ഉപയോഗിച്ച്, x86-64 ആർക്കിടെക്ചറിനായി സമാഹരിച്ച ലിനക്സ് പ്രോഗ്രാമുകൾ മറ്റ് POSIX-അനുയോജ്യമായ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലും (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) മറ്റ് ഹാർഡ്‌വെയർ ആർക്കിടെക്ചറുകളുള്ള ഉപകരണങ്ങളിലും (x86, ARM, RISC-V, MIPS) പ്രവർത്തിപ്പിക്കാൻ കഴിയും. , PowerPC, s390x). പ്രോജക്റ്റ് കോഡ് സി ഭാഷയിൽ (ANSI C11) എഴുതിയിരിക്കുന്നു, ഇത് ISC ലൈസൻസിന് കീഴിലാണ് വിതരണം ചെയ്യുന്നത്. ഡിപൻഡൻസികളിൽ, libc (POSIX.1-2017) മാത്രമേ ആവശ്യമുള്ളൂ.

പ്രവർത്തനക്ഷമതയുടെ കാര്യത്തിൽ, ബ്ലിങ്ക് qemu-x86_64 കമാൻഡിന് സമാനമാണ്, എന്നാൽ കൂടുതൽ ഒതുക്കമുള്ള രൂപകൽപ്പനയിലും കാര്യമായ പ്രകടന വർദ്ധനയിലും QEMU വിൽ നിന്ന് വ്യത്യസ്തമാണ്. ഉദാഹരണത്തിന്, ബ്ലിങ്ക് എക്സിക്യൂട്ടബിൾ qemu-x221_115-ന് 4 MB-ന് പകരം 86 KB (സ്ട്രിപ്പ്-ഡൌൺ ബിൽഡ് - 64 KB) മാത്രമേ എടുക്കൂ, കൂടാതെ GCC എമുലേറ്ററിൽ പ്രവർത്തിപ്പിക്കുന്നതും ഗണിതശാസ്ത്ര പ്രവർത്തനങ്ങൾ നടത്തുന്നതും പോലെയുള്ള ചില ടെസ്റ്റുകളിൽ അത് മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കുന്നു. ഏകദേശം രണ്ട് തവണ QEMU.

ഉയർന്ന പ്രകടനം ഉറപ്പാക്കാൻ, ഒരു JIT കംപൈലർ ഉപയോഗിക്കുന്നു, ഇത് ഫ്ലൈയിലെ ഉറവിട നിർദ്ദേശങ്ങളെ ടാർഗെറ്റ് പ്ലാറ്റ്‌ഫോമിനുള്ള മെഷീൻ കോഡാക്കി മാറ്റുന്നു. സ്റ്റാൻഡേർഡ് C ലൈബ്രറികളായ Cosmopolitan, Glibc, Musl എന്നിവ ഉപയോഗിച്ച് സമാഹരിച്ച ELF, PE (പോർട്ടബിൾ എക്സിക്യൂട്ടബിൾസ്), ബിൻ (ഫ്ലാറ്റ് എക്സിക്യൂട്ടബിൾ) ഫോർമാറ്റുകളിൽ എക്സിക്യൂട്ടബിൾ ഫയലുകളുടെ നേരിട്ടുള്ള ലോഞ്ചിനെ എമുലേറ്റർ പിന്തുണയ്ക്കുന്നു. 180 ലിനക്സ് സിസ്റ്റം കോളുകൾക്കുള്ള ബിൽറ്റ്-ഇൻ പിന്തുണയും i600, i86, SSE8086, x386_2, SSE86, SSSE64, CLMUL, POPCNT, ADX, BMI3 (MULX, PDEP, PEXTRD), X3, PEXTRD എന്നിവ ഉൾക്കൊള്ളുന്ന ഏകദേശം 2 x87 പ്രൊസസർ നിർദ്ദേശങ്ങളുടെ അനുകരണവും നിർദ്ദേശ സെറ്റുകളും RDTSCP.

കൂടാതെ, ബ്ലിങ്കിനെ അടിസ്ഥാനമാക്കി, ബ്ലിങ്കെൻലൈറ്റ് യൂട്ടിലിറ്റി വികസിപ്പിച്ചുകൊണ്ടിരിക്കുന്നു, ഇത് പ്രോഗ്രാം എക്സിക്യൂഷന്റെ പുരോഗതി ദൃശ്യവൽക്കരിക്കുന്നതിനും മെമ്മറിയുടെ ഉള്ളടക്കങ്ങൾ വിശകലനം ചെയ്യുന്നതിനും ഒരു ഇന്റർഫേസ് നൽകുന്നു. റിവേഴ്‌സ് ഡീബഗ്ഗിംഗ് മോഡിനെ പിന്തുണയ്ക്കുന്ന ഒരു ഡീബഗ്ഗറായി യൂട്ടിലിറ്റി ഉപയോഗിക്കാം കൂടാതെ എക്‌സിക്യൂഷൻ ചരിത്രത്തിലേക്ക് തിരികെ പോകാനും മുമ്പ് എക്സിക്യൂട്ട് ചെയ്ത പോയിന്റിലേക്ക് മടങ്ങാനും നിങ്ങളെ അനുവദിക്കുന്നു. ലിനക്സിനും റെഡ്ബീൻ യൂണിവേഴ്സൽ എക്സിക്യൂട്ടബിൾ ഫയൽ സിസ്റ്റത്തിനും വേണ്ടിയുള്ള ഈട് ഐസൊലേഷൻ മെക്കാനിസത്തിന്റെ ഒരു തുറമുഖമായ കോസ്മോപൊളിറ്റൻ സി ലൈബ്രറി പോലുള്ള സംഭവവികാസങ്ങളുടെ രചയിതാവാണ് പ്രോജക്റ്റ് വികസിപ്പിച്ചത്.

ഉയർന്ന പ്രകടനമുള്ള x86-64 എമുലേറ്ററായ ബ്ലിങ്കിന്റെ ആദ്യ പതിപ്പ്


അവലംബം: opennet.ru

ഒരു അഭിപ്രായം ചേർക്കുക