સમાચાર તાજેતરમાં તોડ્યો કે પ્રોજેક્ટ બ્લિંક એક નવું ઇમ્યુલેટર વિકસાવી રહ્યું છે x86-64 પ્રોસેસર કે જે તમને સંકલિત Linux એપ્લિકેશનો ચલાવવા માટે પરવાનગી આપે છે ઇમ્યુલેટેડ પ્રોસેસર સાથે વર્ચ્યુઅલ મશીનમાં સ્થિર રીતે.
ઉલ્લેખ છે કે ઇમુખ્ય ઉદ્દેશ્ય પ્રોજેક્ટ અન્ય ઓપરેટિંગ સિસ્ટમો પર x86-64 આર્કિટેક્ચર માટે સંકલિત Linux પ્રોગ્રામ્સ ચલાવવાની ક્ષમતા પ્રદાન કરવાની છે. (macOS, FreeBSD, NetBSD, OpenBSD) અને અલગ હાર્ડવેર આર્કિટેક્ચર (x86, ARM, RISC-V, MIPS, PowerPC, s390x) ધરાવતા કમ્પ્યુટર્સ પર.
પ્રોજેક્ટ રીપોઝીટરીમાં તેઓ નીચે પ્રમાણે બ્લિંકનું વર્ણન કરે છે:
બ્લિંક એ વર્ચ્યુઅલ મશીન છે જે વિવિધ ઓપરેટિંગ સિસ્ટમ્સ અને હાર્ડવેર આર્કિટેક્ચર્સ પર સ્ટેટિકલી કમ્પાઈલ x86-64-લિનક્સ પ્રોગ્રામ્સ ચલાવે છે. તે qemu-x86_64 આદેશની જેમ જ કરવા માટે ડિઝાઇન કરવામાં આવ્યું છે, સિવાય કે (a) 4mb દ્વિસંગી હોવાને બદલે, Blink પાસે માત્ર ~160kb ફૂટપ્રિન્ટ છે; અને (b) Blink કેટલાક માપદંડોમાં Qemu કરતા 2x ઝડપી છે, જેમ કે GCCનું અનુકરણ કરવું. ટ્રેડઓફ એ છે કે Blink પાસે Qemu જેટલી વિશેષતાઓ નથી. જ્યારે તમે વર્ચ્યુઅલ મશીન ઇચ્છતા હોવ કે જે ખૂબ જ નાનું હોય અને ક્ષણિક પ્રોગ્રામ્સ ખૂબ ઝડપથી ચલાવે ત્યારે બ્લિંક એ એકદમ યોગ્ય છે. આ સાધન માટેની પ્રેરણાઓ વિશે વધુ વિગતો માટે, કૃપા કરીને https://justine.lol/ape.html વાંચો.
ઉલ્લેખનીય છે કે આ પ્રોજેક્ટ કોસ્મોપોલિટન સી લાઇબ્રેરી, Linux અને Redbean યુનિવર્સલ એક્ઝિક્યુટેબલ ફાઇલ સિસ્ટમ માટે પ્રતિબદ્ધતા આઇસોલેશન મિકેનિઝમનું પોર્ટ જેવા વિકાસના લેખક દ્વારા વિકસાવવામાં આવ્યો છે.
કાર્યક્ષમતાના સંદર્ભમાં, બ્લિંક qemu-x86_64 આદેશ જેવો દેખાય છે, પરંતુ વધુ કોમ્પેક્ટ ડિઝાઇન અને પ્રભાવમાં નોંધપાત્ર વધારોમાં QEMU થી અલગ છે. ઉદાહરણ તરીકે, qemu-x157_4 માટે 86 MB ને બદલે Blink એક્ઝિક્યુટેબલ માત્ર 64 KB છે, અને કામગીરીની દ્રષ્ટિએ GCC ઇમ્યુલેટર પર ચાલતી ટેસ્ટમાં, Blink QEMU ને બે વાર હરાવે છે.
ઉચ્ચ પ્રદર્શનની ખાતરી કરવા માટે, JIT કમ્પાઇલરનો ઉપયોગ થાય છે, જે ફ્લાય પરના લક્ષ્ય પ્લેટફોર્મ માટે સ્ત્રોત સૂચનાઓને મશીન કોડમાં રૂપાંતરિત કરે છે (અત્યાર સુધી માત્ર x86_64 અને aarch64 JIT સપોર્ટ કરે છે).
સ્ટાન્ડર્ડ C લાઇબ્રેરી કોસ્મોપોલિટન, Glibc અને Musl સાથે સંકલિત ELF, PE (પોર્ટેબલ એક્ઝિક્યુટેબલ) અને બિન (ફ્લેટ એક્ઝિક્યુટેબલ) ફોર્મેટમાં એક્ઝિક્યુટેબલ ફાઇલોના ઇમ્યુલેટર પર ડાયરેક્ટ લોંચ સપોર્ટેડ છે.
આ ઉપરાંત, તે એ પણ બહાર આવ્યું છે કે તેણે Linux સિસ્ટમમાં સો કરતાં વધુ કૉલ્સ માટે સંકલિત સપોર્ટ છે, ફોર્ક() અને ક્લોન() સહિત. i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED, અને RDTSCP સૂચના સેટનું ઇમ્યુલેશન સપોર્ટેડ છે.
ઉપરાંત, આ પ્રોજેક્ટ બ્લિંકનલાઇટ્સ યુટિલિટી વિકસાવી રહ્યો છે, જે વિવિધ પ્લેટફોર્મ્સ પર ડીબગીંગ પ્રોગ્રામ્સ, પ્રોગ્રામ એક્ઝેક્યુશનને વિઝ્યુઅલાઈઝ કરવા અને મેમરી સામગ્રીઓનું વિશ્લેષણ કરવા માટે ઈન્ટરફેસ પૂરું પાડે છે. ડિબગરની વિશેષતા એ રિવર્સ ડિબગીંગ મોડ (રિવર્સ ડીબગીંગ) માટે સપોર્ટ છે, જે તમને એક્ઝેક્યુશન ઈતિહાસમાં પાછા જવાની અને અગાઉ એક્ઝિક્યુટ કરેલા પોઈન્ટ પર પાછા જવાની પરવાનગી આપે છે.
હું: ઇમ્યુલેટર કેટલું નાનું હોઈ શકે?
ઝબકવું: હા.# ઝબકવું # રણકાર #GCC # હેકિંગ pic.twitter.com/75iUIQN6Wn— 0xHiro (ヒロ) (@0x1hiro) જાન્યુઆરી ૫, ૨૦૨૧
blinkenlights એ TUI ઈન્ટરફેસ છે જેનો ઉપયોગ તમામ પ્લેટફોર્મ્સ પર x86_64-linux પ્રોગ્રામ્સને ડીબગ કરવા માટે થઈ શકે છે. GDB થી વિપરીત, Blinkenlights પ્રોગ્રામના અમલને વિઝ્યુઅલાઈઝ કરવા પર ધ્યાન કેન્દ્રિત કરે છે. તે દ્વિસંગી મેમરી પેનલ્સ પ્રદર્શિત કરવા માટે યુનિકોડ IBM કોડ પૃષ્ઠ 437 અક્ષરોનો ઉપયોગ કરે છે, જે તમે તમારા પ્રોગ્રામના એસેમ્બલી કોડમાંથી આગળ વધો ત્યારે બદલાય છે. આ મેમરી પેનલ્સને માઉસ વ્હીલ વડે સ્ક્રોલ અને મોટી કરી શકાય છે. Blinkenlights રિવર્સ ડીબગીંગને પણ સપોર્ટ કરે છે, જ્યાં એસેમ્બલી સ્ક્રીન પર વ્હીલને સ્ક્રોલ કરવાથી તમે એક્ઝેક્યુશન ઈતિહાસને રીવાઇન્ડ કરી શકો છો.
છેલ્લે, આ પ્રોજેક્ટ વિશે વધુ જાણવામાં રસ ધરાવતા લોકો માટે, તેઓએ જાણવું જોઈએ કે પ્રોજેક્ટ કોડ C (ANSI C11) માં લખાયેલ છે અને ISC લાયસન્સ હેઠળ વિતરિત કરવામાં આવ્યો છે. અવલંબનમાંથી, માત્ર libc (POSIX.1-2017) જરૂરી છે.
ઝબકવું
જે લોકો આંખ મારવાનો પ્રયાસ કરવામાં રસ ધરાવતા હોય, તેમણે જાણવું જોઈએ કે તેનું સંકલન અત્યંત સરળ છે, તેઓએ માત્ર તેનો સ્રોત કોડ મેળવવો પડશે, તેઓ નીચેની લિંક પરથી અથવા ટર્મિનલ પરથી નીચેનો આદેશ ટાઈપ કરીને તે કરી શકે છે. :
git https://github.com/jart/blink.git
અને તેની સાથે, તમારે ફક્ત blik ડિરેક્ટરી દાખલ કરવી પડશે અને કમ્પાઇલ કરવું પડશે:
cd blink make -j4
જો તમે બ્લિંક કેવી રીતે કાર્ય કરે છે તે વિશે વધુ જાણવા માંગતા હો, તો તમે તેમાંથી કરી શકો છો નીચેની કડી