एक x86-64 एमुलेटर ब्लिंक करा जो QEMU ला मागे टाकण्याचे वचन देतो

blink-gcc

ब्लिंक रनिंगचा स्क्रीनशॉट

नुकतीच बातमी फुटली की प्रकल्प ब्लिंक एक नवीन एमुलेटर विकसित करत आहे x86-64 प्रोसेसर चा तुम्हाला संकलित लिनक्स ऍप्लिकेशन्स चालवण्याची परवानगी देते स्थिरपणे इम्युलेटेड प्रोसेसरसह आभासी मशीनमध्ये.

असा उल्लेख आहे की ईमुख्य उद्देश प्रकल्प इतर ऑपरेटिंग सिस्टीमवर x86-64 आर्किटेक्चरसाठी संकलित केलेले लिनक्स प्रोग्राम चालवण्याची क्षमता प्रदान करणे आहे (macOS, FreeBSD, NetBSD, OpenBSD) आणि वेगळ्या हार्डवेअर आर्किटेक्चरसह संगणकांवर (x86, ARM, RISC-V, MIPS, PowerPC, s390x).

प्रोजेक्ट रिपॉझिटरीमध्ये ते खालीलप्रमाणे ब्लिंकचे वर्णन करतात:

ब्लिंक हे व्हर्च्युअल मशीन आहे जे वेगवेगळ्या ऑपरेटिंग सिस्टम्स आणि हार्डवेअर आर्किटेक्चर्सवर स्टॅटिकली संकलित x86-64-लिनक्स प्रोग्राम चालवते. हे qemu-x86_64 कमांड प्रमाणेच कार्य करण्यासाठी डिझाइन केले आहे, ते (a) 4mb बायनरी ऐवजी, ब्लिंकमध्ये फक्त ~160kb फूटप्रिंट आहे; आणि (b) Blink काही बेंचमार्कमध्ये Qemu पेक्षा 2x वेगवान आहे, जसे की GCC चे अनुकरण करणे. ट्रेडऑफ असा आहे की ब्लिंकमध्ये Qemu सारखी वैशिष्ट्ये नाहीत. जेव्हा तुम्हाला व्हर्च्युअल मशीन हवे असते जे अत्यंत लहान असते आणि क्षणभंगुर प्रोग्राम्स खूप जलद चालवतात तेव्हा ब्लिंक हे योग्य आहे. या साधनाच्या प्रेरणांबद्दल अधिक तपशीलांसाठी, कृपया https://justine.lol/ape.html वाचा.

कॉस्मोपॉलिटन सी लायब्ररी, लिनक्ससाठी कमिटमेंट आयसोलेशन मेकॅनिझम आणि रेडबीन युनिव्हर्सल एक्झिक्युटेबल फाइल सिस्टम सारख्या विकासाच्या लेखकाने हा प्रकल्प विकसित केला आहे हे नमूद करण्यासारखे आहे.

कार्यक्षमतेच्या बाबतीत, ब्लिंक हे qemu-x86_64 कमांडसारखे दिसते, परंतु अधिक कॉम्पॅक्ट डिझाइनमध्ये आणि कार्यक्षमतेत लक्षणीय वाढ करून QEMU पेक्षा वेगळे आहे. उदाहरणार्थ, qemu-x157_4 साठी ब्लिंक एक्झीक्यूटेबल 86 MB ऐवजी फक्त 64 KB आहे, आणि कामगिरीच्या दृष्टीने जीसीसी एमुलेटरवर चाललेल्या चाचणीमध्ये, ब्लिंक QEMU ला दोनदा हरवते.

उच्च कार्यक्षमता सुनिश्चित करण्यासाठी, एक JIT कंपाइलर वापरला जातो, जे फ्लायवरील लक्ष्य प्लॅटफॉर्मसाठी स्त्रोत सूचना मशीन कोडमध्ये रूपांतरित करते (आतापर्यंत फक्त x86_64 आणि aarch64 JIT ला समर्थन देतात).

Cosmopolitan, Glibc आणि Musl या मानक C लायब्ररीसह संकलित केलेल्या ELF, PE (पोर्टेबल एक्झिक्युटेबल) आणि बिन (फ्लॅट एक्झिक्युटेबल) फॉरमॅटमध्ये एक्झिक्युटेबल फाइल्सच्या एमुलेटरवर थेट लाँच समर्थित आहे.

त्याच्या बाजूला, लिनक्स सिस्टीमला शंभराहून अधिक कॉल्ससाठी समाकलित सपोर्ट आहे हे देखील स्पष्ट आहे, fork() आणि clone() सह. i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED, आणि RDTSCP सूचना संचांचे अनुकरण समर्थित आहे.

तसेच, प्रकल्प ब्लिंकनलाइट्स युटिलिटी विकसित करत आहे, जे वेगवेगळ्या प्लॅटफॉर्मवर प्रोग्राम्स डीबग करण्यासाठी, प्रोग्रामची अंमलबजावणी व्हिज्युअलायझ करण्यासाठी आणि मेमरी सामग्रीचे विश्लेषण करण्यासाठी इंटरफेस प्रदान करते. डीबगरचे वैशिष्ट्य म्हणजे रिव्हर्स डीबगिंग मोड (रिव्हर्स डीबगिंग) साठी समर्थन, जे तुम्हाला अंमलबजावणीच्या इतिहासात परत जाण्याची आणि पूर्वी कार्यान्वित केलेल्या बिंदूवर परत येण्याची परवानगी देते.

blinkenlights एक TUI इंटरफेस आहे जो सर्व प्लॅटफॉर्मवर x86_64-linux प्रोग्राम्स डीबग करण्यासाठी वापरला जाऊ शकतो. GDB च्या विपरीत, Blinkenlights प्रोग्रामच्या अंमलबजावणीची कल्पना करण्यावर लक्ष केंद्रित करते. बायनरी मेमरी पॅनेल प्रदर्शित करण्यासाठी ते UNICODE IBM कोड पृष्ठ 437 वर्ण वापरते, जे तुम्ही तुमच्या प्रोग्रामच्या असेंबली कोडमधून पुढे जाता तेव्हा बदलतात. हे मेमरी पॅनेल्स माउस व्हीलने स्क्रोल आणि मोठे केले जाऊ शकतात. ब्लिंकनलाइट्स रिव्हर्स डीबगिंगला देखील समर्थन देतात, जेथे असेंबली स्क्रीनवर व्हील स्क्रोल केल्याने तुम्हाला अंमलबजावणीचा इतिहास रिवाइंड करण्याची परवानगी मिळते.

शेवटी, ज्यांना या प्रकल्पाबद्दल अधिक जाणून घ्यायची इच्छा आहे, त्यांना हे माहित असले पाहिजे की प्रकल्प कोड C (ANSI C11) मध्ये लिहिलेला आहे आणि ISC परवान्याअंतर्गत वितरित केला आहे. अवलंबित्वांपैकी, फक्त libc (POSIX.1-2017) आवश्यक आहे.

लुकलुकणे

ज्यांना ब्लिंक करून पाहण्यात स्वारस्य आहे, त्यांना हे माहित असले पाहिजे की त्याचे संकलन अत्यंत सोपे आहे, त्यांना फक्त त्याचा स्त्रोत कोड मिळवावा लागेल, ते खालील लिंकवरून किंवा टर्मिनलवरून खालील कमांड टाईप करून करू शकतात. :

git https://github.com/jart/blink.git

आणि ते पूर्ण केले, तुम्हाला फक्त blik निर्देशिका प्रविष्ट करावी लागेल आणि संकलित करावे लागेल:

cd blink

make -j4

ब्लिंक कसे कार्य करते याबद्दल तुम्हाला अधिक जाणून घ्यायचे असल्यास, तुम्ही ते वरून करू शकता खालील दुवा.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटासाठी जबाबदार: AB इंटरनेट नेटवर्क 2008 SL
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.