ब्लिंक, अन्य आर्किटेक्चर पर संकलित लिनक्स अनुप्रयोगों को चलाने के लिए एक x86-64 एमुलेटर

झपकी

ब्लिंक एक वर्चुअल मशीन है जो विभिन्न ऑपरेटिंग सिस्टम पर x86-64-लिनक्स प्रोग्राम चलाती है

हाल ही में खबर आई है ब्लिंक परियोजना के पहले प्रमुख संस्करण का विमोचन, जो कि एक x86-64 प्रोसेसर इम्यूलेटर है जो आपको इम्युलेटेड प्रोसेसर के साथ वर्चुअल मशीन में स्टैटिकली और डायनामिक रूप से बनाए गए लिनक्स एप्लिकेशन चलाने की अनुमति देता है।

यह उल्लेखनीय है कि परियोजना को कॉस्मोपॉलिटन सी लाइब्रेरी, लिनक्स के लिए प्रतिबद्धता अलगाव तंत्र का एक बंदरगाह और रेडबीन सार्वभौमिक निष्पादन योग्य फाइल सिस्टम जैसे विकास के लेखक द्वारा विकसित किया गया है।

कार्यक्षमता के संदर्भ में, ब्लिंक कमांड qemu-x86_64 जैसा दिखता हैलेकिन QEMU से अधिक कॉम्पैक्ट डिज़ाइन और प्रदर्शन में उल्लेखनीय वृद्धि से भिन्न है. उदाहरण के लिए, qemu-x220_4 के लिए ब्लिंक निष्पादन योग्य 86 एमबी के बजाय केवल 64 केबी है, और प्रदर्शन के मामले में जीसीसी इम्यूलेटर पर चलाए गए परीक्षण में, ब्लिंक ने QEMU को दो बार हराया.

ब्लिंक के साथ, x86-64 आर्किटेक्चर के लिए संकलित लिनक्स प्रोग्राम अन्य POSIX- संगत ऑपरेटिंग सिस्टम (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) पर और अन्य हार्डवेयर आर्किटेक्चर (x86, ARM, RISC- V, MIPS) के साथ हार्डवेयर पर चल सकते हैं। पावरपीसी, एस390एक्स)।

ब्लिंक की मुख्य खबर

संस्करण 1.0 की रिलीज मूल रूप से एक 220kb स्थिर निर्भरता-मुक्त बाइनरी होने के लिए खड़ा है जो लगभग 600 x86 निर्देशों और 180 लिनक्स सिस्टम कॉल को लागू करता है, जिससे ब्लिंक सरल कमांड लाइन प्रोग्राम चलाने में काफी अच्छा हो जाता है।

उच्च प्रदर्शन सुनिश्चित करने के लिए, एक जेआईटी कंपाइलर का उपयोग किया जाता है, जो स्रोत निर्देशों को मशीन कोड में परिवर्तित करता है मक्खी पर लक्ष्य मंच के लिए। ELF, PE (पोर्टेबल एक्ज़ीक्यूटेबल्स) और बिन (फ़्लैट एक्ज़ीक्यूटेबल) फ़ॉर्मैट में एक्ज़ीक्यूटेबल फ़ाइलों के एमुलेटर पर सीधे लॉन्च, मानक C लाइब्रेरीज़ Cosmopolitan, Glibc और Musl के साथ संकलित समर्थित है।

ब्लिंक के पास एक तेज JIT है जो कुछ मामलों में उपयोग के मामलों के लिए Qemu से 2 गुना तेज है, ऐसा इसलिए है क्योंकि ब्लिंक में एक बुनियादी JIT है जो प्रिंटफ-शैली DSL का उपयोग करके कोड को जल्दी से उत्पन्न करता है। इसका मतलब है कि ब्लिंक के पास एक सुलभ कोड बेस है क्योंकि हमारे पास ANSI C63 कोड की केवल 500 लाइनें हैं। वर्तमान में, ब्लिंक ऑप्टिमाइज़ेशन का प्रयास भी नहीं करता है, जो इस प्रोजेक्ट को एल्गोरिदम के लिए एक नया क्षेत्र बनाता है।

यह उल्लेख किया गया है कि ब्लिंक कमांड लाइन प्रोग्राम के लिए सबसे अच्छा काम करता है, हालांकि ब्लिंक को जीयूआई अनुप्रयोगों का अनुकरण करने के लिए कुछ समर्थन भी है। qemu-उपयोगकर्ता (जो केवल लिनक्स पर चलता है) के विपरीत, ब्लिंक को अन्य ऑपरेटिंग सिस्टम पर चलाया जा सकता है, क्योंकि ब्लिंक को साइगविन (विंडोज़) पर संकलित करने की क्षमता है और फिर अल्पाइन लिनक्स चेरोट के अंदर बैश चला सकते हैं।

ब्लिंक ने लिनक्स यूजरलैंड को काफी अच्छी तरह से अनुकरण किया है, भले ही ब्लिंक केवल 250kb निर्भरता-मुक्त निष्पादन योग्य है।

उल्लेखनीय है कि ब्लिंक एप्पल सिलिकॉन पर भी बहुत अच्छा काम करता है, उदाहरण के लिए यह नियोफच को यह सोचने में धोखा दे सकता है कि मैकओएस एम1 अल्पाइन x86_64 है।

इसके अतिरिक्त, ब्लिंक के आधार पर, ब्लिंकनलाइट उपयोगिता विकसित की जा रही है, जो प्रोग्राम के निष्पादन को देखने और मेमोरी की सामग्री का विश्लेषण करने के लिए एक इंटरफ़ेस प्रदान करता है। उपयोगिता को डीबगर के रूप में उपयोग किया जा सकता है जो रिवर्स डीबगिंग मोड (रिवर्स डिबगिंग) का समर्थन करता है और आपको निष्पादन इतिहास में वापस जाने और पहले निष्पादित बिंदु पर वापस जाने की अनुमति देता है।

ब्लिंकनलाइट्स टीयूआई द्वारा प्रदान की जाने वाली सबसे अच्छी सुविधा रिवर्स डिबगिंग है. रिलीज की घोषणा में, यह उल्लेख किया गया है कि आपको केवल बिल्ड स्क्रीन पर व्हील को स्क्रॉल करने की आवश्यकता है। यदि आप p कुंजी दबाते हैं तो ब्लिंक वास्तविक समय में आपके कार्यक्रम की विशेषताओं को रेखांकित करता है। आप कर्नेल का उपयोग करके मेमोरी को ज़ूम आउट करने के लिए मेमोरी पैन व्हील को भी नियंत्रित कर सकते हैं।

अंत में यदि आप इस बारे में अधिक जानना चाहते हैं कि ब्लिंक कैसे कार्य करता है, आप इसे से कर सकते हैं निम्नलिखित लिंक।

पलक झपकना

जो लोग ब्लिंक करने में सक्षम होने में रुचि रखते हैं, उन्हें पता होना चाहिए कि इसका संकलन अत्यंत सरल है, उन्हें केवल इसका स्रोत कोड प्राप्त करना है, वे इसे निम्न लिंक से या टर्मिनल से निम्न कमांड टाइप करके कर सकते हैं :

wget https://github.com/jart/blink/releases/download/1.0.0/blink-1.0.0.tar.gz
tar xvzf blink-1.0.0.tar.gz
cd blink-1.0.0
./configure MODE=tiny
make -j8 MODE=tiny o/tiny/x86_64/blink/blink
o/third_party/gcc/x86_64/bin/x86_64-linux-musl-strip o/tiny/x86_64/blink/blink
o/tiny/x86_64/blink/blink -v


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।