iPhone 11 QEMU एमुलेशन का कार्यान्वयन
(github.com/ChefKissInc)- QEMU सॉफ़्टवेयर के माध्यम से विभिन्न आर्किटेक्चर की मशीनों और user space का एमुलेशन करता है
- हाल ही में, QEMU-आधारित Apple Silicon और iPhone 11 एमुलेशन प्रोजेक्ट सार्वजनिक किया गया
- QEMU dynamic translation का उपयोग करके उत्कृष्ट प्रदर्शन देता है और KVM, Xen जैसे hypervisor इंटीग्रेशन फीचर को सपोर्ट करता है
- इसे Linux, OS-X, Windows जैसे कई सिस्टमों पर इस्तेमाल किया जा सकता है, और इसका open source योगदान प्रोसेस अच्छी तरह स्थापित है
- डॉक्यूमेंटेशन और कम्युनिटी सपोर्ट सक्रिय है, तथा bug tracking और patch submission का प्रबंधन प्रभावी ढंग से किया जाता है
ओपन सोर्स QEMU और Apple Silicon एमुलेशन प्रोजेक्ट का परिचय
QEMU एक सामान्य-उद्देश्य वाला open source machine और user space emulator तथा virtualization tool है. Apple Silicon और iPhone 11 एमुलेशन के लिए एक प्रोजेक्ट QEMU के आधार पर चलाया जा रहा है, जो अन्य virtualization solutions की तुलना में scalability, community support, और architectures के बीच compatibility जैसे कई फायदे प्रदान करता है.
QEMU का अवलोकन
- QEMU full system emulation फीचर के माध्यम से hardware virtualization के बिना सॉफ़्टवेयर के जरिए विभिन्न मशीनों को चलाता है
- dynamic translation तकनीक का उपयोग करके एमुलेशन प्रदर्शन बढ़ाता है
- Xen, KVM के साथ integration के जरिए hypervisor-स्तर के hardware support को संभव बनाता है
- सीधे CPU emulation के माध्यम से डिवाइसों के बीच operating system portability और testing संभव होती है (उदाहरण: ARMv7 → x86_64 environment)
- user space API virtualization के जरिए heterogeneous architecture environments के बीच binaries को सीधे चलाया जा सकता है
मुख्य उपयोग और विशेषताएँ
- उपयोगकर्ता सीधे command-line options के माध्यम से विस्तृत settings और behavior को नियंत्रित कर सकते हैं
- oVirt, OpenStack, virt-manager, libvirt जैसे high-level open source management layers के साथ integration के लिए भी इसका उपयोग होता है
- स्थिर command-line interface और monitor API प्रदान करता है
- पूरा source code GNU GPL v2 लाइसेंस के अंतर्गत वितरित किया जाता है
डॉक्यूमेंटेशन
- आधिकारिक दस्तावेज़ वेबसाइट(https://www.qemu.org/documentation/) पर ऑनलाइन उपलब्ध हैं
- नवीनतम development version के दस्तावेज़ source के docs/ फ़ोल्डर में होते हैं और Sphinx tool से बनाए जाते हैं
बिल्ड वातावरण
- QEMU नवीनतम Linux, OS-X, Win32(Mingw64 toolchain), और अन्य UNIX environments में multi-platform build को सपोर्ट करता है
- मुख्य build flow configure और make चरणों से बना है
- प्रत्येक platform के build तरीकों के लिए QEMU wiki (https://wiki.qemu.org/Hosts/Linux आदि) देखी जा सकती है
patch submission गाइड
- QEMU source, Git version control system पर संचालित होता है
- patch submit करते समय git format-patch और git send-email के उपयोग की सिफारिश की जाती है
- सभी patches में Signed-off-by लाइन का होना अनिवार्य है, और developer style guide (https://www.qemu.org/docs/master/devel/style.html) का पालन करना चाहिए
- git-publish utility के जरिए दोहराए जाने वाले और बड़े पैमाने के patch submission process को सरल बनाया जा सकता है
- patch versioning (v1, v2) के साथ series tracking भी आसानी से की जा सकती है
bug reporting
- GitLab issue tracker के माध्यम से आधिकारिक bug report दर्ज की जाती है (https://gitlab.com/qemu-project/qemu/-/issues)
- package-आधारित distributions का उपयोग करने पर, संबंधित OS vendor tracker में पहले रिपोर्ट करने की सिफारिश की जाती है
- bug report लिखने के तरीकों सहित अतिरिक्त सामग्री QEMU wiki पर उपलब्ध है
परिवर्तन इतिहास
- QEMU का इतिहास और परिवर्तन आधिकारिक Wiki (https://wiki.qemu.org/ChangeLog/) या Git history के माध्यम से देखे जा सकते हैं
कम्युनिटी संपर्क
- mailing list(qemu-devel@nongnu.org), IRC(#qemu, irc.oftc.net) जैसे विभिन्न कम्युनिटी चैनल उपलब्ध हैं
- कम्युनिटी भागीदारी, शुरुआती मार्गदर्शन आदि की अतिरिक्त जानकारी QEMU Wiki के माध्यम से देखी जा सकती है
निष्कर्ष
QEMU का व्यापक रूप से विभिन्न architectures और OS एमुलेशन, virtualization, और development/testing automation में उपयोग किया जा सकता है, और Apple Silicon(iPhone 11 आदि) भी QEMU प्रोजेक्ट में शामिल है. मजबूत डॉक्यूमेंटेशन, contribution process, सक्रिय bug management, और community support इसकी प्रमुख खूबियाँ हैं.
1 टिप्पणियां
Hacker News राय
संबंधित चर्चा के रूप में, upstream repository पर Hacker News thread लिंक और इस प्रोजेक्ट का उल्लेख करने वाला “Emulating an iPhone in QEMU” लिंक साझा किया गया
यह तथ्य कि यह ठीक से boot होकर कम से कम Springboard तक पहुँच जाता है, सचमुच चौंका देने वाली उपलब्धि लगती है
बेहतरीन emulation hacking, इसे सचमुच ultimate endgame कहना चाहूँगा। सभी contributors को बधाई देना चाहता हूँ। यह उपलब्धि Hackintosh project के लिए भी एक सकारात्मक संकेत है। अभी रास्ता लंबा है, लेकिन अगर ARM PC व्यापक हो जाएँ, तो efficient emulation की वास्तव में उम्मीद की जा सकती है
जिज्ञासा है कि क्या यह trollstore और IPA decryption feature तक भी support करता है
मेरा मानना है कि कम से कम इसका कुछ हिस्सा upstream में लाने की कोशिश होनी चाहिए। नहीं तो चिंता है कि यह भी पिछली कोशिशों की तरह अंततः गायब हो सकता है
iPhone 11 को QEMU में आखिर तक boot करा देने पर गहरा प्रभावित हूँ। ChefKissInc टीम और इसे यहाँ तक लाने वाले सभी contributors को सलाम
एक beginner के नज़रिए से सवाल: क्या इस तरीके से iOS app install किए जा सकते हैं?
अभी भी windows environment में qemu के इस्तेमाल, options और arguments आदि पर official documentation कमज़ोर होने से असुविधा होती है। इंटरनेट पर बिखरी हुई अलग-अलग पोस्ट देखनी पड़ती हैं या Linux-आधारित उदाहरण लाकर किसी तरह काम चलाना पड़ता है
जिज्ञासा है कि क्या यह वास्तव में पूरे iOS का emulation है, या सिर्फ iOS binaries चलाता है। और खास तौर पर iPhone 11 ही क्यों चुना गया, यह भी सवाल है
सवाल: Qemu m68k पर classic Mac operating system कैसा चलता है