UTM - iOS और macOS के लिए वर्चुअल मशीन
(github.com/utmapp)- UTM iOS और macOS पर चलने वाला एक सिस्टम एम्युलेटर और वर्चुअल मशीन होस्ट है, जो QEMU आधारित है, और Windows, Linux आदि को Mac, iPhone, iPad पर चला सकता है
- QEMU का उपयोग करके पूर्ण सिस्टम एम्युलेशन प्रदान करता है, जिसमें MMU और डिवाइस आदि को संभाला जाता है, और x86_64, ARM64, RISC-V सहित 30 से अधिक प्रोसेसरों का समर्थन है
- VGA ग्राफिक्स मोड SPICE और QXL का उपयोग करता है, और टेक्स्ट टर्मिनल मोड, USB डिवाइस, तथा QEMU TCG आधारित JIT acceleration का समर्थन करता है
- macOS 11 और iOS 11+ के लिए फ्रंटएंड के रूप में, डिवाइस पर VM बनाना, प्रबंधित करना और चलाना संभव है
- macOS में Hypervisor.framework और QEMU का उपयोग करके हार्डवेयर-एक्सेलरेटेड वर्चुअलाइजेशन का समर्थन है, और macOS 12+ में Virtualization.framework के जरिए macOS guest को बूट किया जा सकता है
- UTM SE iOS पर jailbreak या JIT bypass के बिना सामान्य ऐप की तरह sideload की जा सकने वाली “slow edition” है, और threaded interpreter का उपयोग करती है, जो पारंपरिक interpreter से तेज लेकिन JIT से धीमा तरीका है
- UTM/QEMU को अधिकतम प्रदर्शन के लिए dynamic code generation (JIT) की आवश्यकता होती है, और iOS डिवाइस पर JIT के लिए jailbreak या कुछ iOS versions के लिए bypass तरीके की जरूरत होती है
- UTM SE size और build time optimization के लिए केवल ARM, PPC, RISC-V, x86 architectures शामिल करती है, और प्रत्येक के 32-bit तथा 64-bit variants उपलब्ध हैं
- iOS के लिए UTM और UTM SE की installation guide https://getutm.app/install/ पर उपलब्ध है, और macOS के लिए UTM https://mac.getutm.app/ पर उपलब्ध है
- यह Apache 2.0 लाइसेंस के तहत वितरित होता है, लेकिन कई (L)GPL components का उपयोग करता है; gstreamer plugin statically linked है और कोड का कुछ हिस्सा qemu से लिया गया है, इसलिए redistribution के समय इस पर ध्यान देना आवश्यक है
1 टिप्पणियां
Hacker News की रायें
कुछ हफ़्ते पहले मैंने macOS Ventura वाले नए M2 पर Fusion को बदलने के लिए Windows 11 ARM को UTM के साथ इंस्टॉल करके देखा, लेकिन निराशा हुई
वर्चुअल मशीन और होस्ट के बीच copy/paste या file sharing जैसे integration tools काम नहीं कर रहे थे, और graphics बार-बार टूटते रहते थे और अक्सर grey screen पर चले जाते थे
रिकवर करने का कोई तरीका नहीं दिखा, इसलिए वर्चुअल मशीन को जबरन restart करना पड़ा, और drivers/helper tools की तारीख भी 2012 दिख रही थी
यह free product है, इसलिए उम्मीद रखने का हक़ नहीं है और मैं वास्तव में Fusion पर लौट गया, लेकिन जो लोग open source से commercial virtual machine solutions का विकल्प मिलने की उम्मीद कर रहे थे, उनके लिए मुझे लगता है कि अभी यह मुश्किल है
https://docs.getutm.app/guest-support/windows/#windows-xp-an...
मैंने graphics errors भी नहीं देखे हैं, लेकिन मैं game खेलने की कोशिश नहीं कर रहा, सिर्फ़ basic desktop apps इस्तेमाल कर रहा हूँ
सुधार: Fusion 2023 Tech Preview [1] पूरा VMware Tools इंस्टॉल करता है और copy/paste support करता है
UTM शानदार है, और अगर snapshot feature जुड़ जाए [1] तो शायद इसे default recommendation बना दूँगा। तब तक मैं Parallels का इस्तेमाल जारी रखूँगा
संदर्भ के लिए, एक unofficial snapshot manager मौजूद है [2]
1: https://github.com/utmapp/UTM/issues/5484
2: https://github.com/Metamogul/UTM-Snapshot-Manager
सबसे आम समस्या यह थी कि shared folder guest virtual machine से अचानक गायब हो जाता था, और उसे वापस लाने के लिए अक्सर workarounds इस्तेमाल करने पड़ते थे
फिर VMWare Fusion में भी वही समस्या थी, और Parallels बहुत महंगा लगा, इसलिए मैं Lima पर चला गया
Lima के बारे में पता चलना अच्छा रहा। यह भी QEMU-based है और Linux virtual machines को आसानी से शुरू करने देता है, साथ में network sharing built-in देता है
अब मैं सारा development Lima virtual machine के अंदर करता हूँ, और कोई समस्या नहीं हुई। ज़रूरत पड़े तो screen forwarding भी कर सकता हूँ, लेकिन अभी VSCode की वजह से headless instance काफ़ी है
cp -cजितना आसान हो सकता हैहालांकि अगर सच में ऐसा है, तो शायद यह पहले ही implement हो चुका होता
clonefileसे सीमित रूप में snapshots की सफल नकल की गई है, लेकिन जो implementation चल रही है वह ठीक यही तरीका इस्तेमाल कर रही थीUTM की सबसे बड़ी समस्या यह है कि कुछ लोगों के लिए यह बहुत अच्छा चलता है, और कुछ लोगों के लिए बेहद खराब
इस page की thread ऊपर-नीचे देखें तो “मैं UTM इस्तेमाल करना चाहता हूँ, लेकिन यह चलता नहीं या इस्तेमाल लायक़ बहुत slow है” जैसी बातें और “अजीब है, मेरे यहाँ तो ठीक चल रहा है” जैसे जवाब, दोनों बहुत मिलते हैं
मेरे मामले में UTM सचमुच एक बार भी ठीक से काम नहीं किया। M1 2021 Mac पर standard Ubuntu ARM install को https://docs.getutm.app/guides/ubuntu/ guide के मुताबिक़ आज़माया, लेकिन fail हो गया, और अभी मैं black screen पर blinking cursor ही देख रहा हूँ
दुर्भाग्य से जिन लोगों के यहाँ यह ठीक चलता है, वे जिनके यहाँ नहीं चलता उन्हें व्यावहारिक technical support बहुत कम दे पाते हैं
मैंने Mac App Store पर UTM के लिए 10 dollar तक दिए, लेकिन technical support channel सिर्फ़ Discord है, और वहाँ “lol मेरे यहाँ तो चल रहा है, skill issue” जैसी प्रतिक्रियाएँ बहुत थीं
सिफ़ारिश करूँ तो UTM एक बार आज़माने लायक़ है। अगर पसंद आ गया तो आप काफ़ी पैसा बचा सकते हैं, और अगर मेरी तरह बिल्कुल नहीं चला तो आखिरकार Parallels के लिए सालाना 100 dollar देने पड़ेंगे। Parallels के शायद बस काम कर जाने की संभावना ज़्यादा है
अगर Parallels काम नहीं करता, तो आप उस company से सीधे बात कर सकते हैं जिसके पास आपसे license renew करवाने का incentive है, और आपको सफल कराने की motivation भी है
अगर boot virtual machine disk को एक खास size से बड़ा set करें, वह भी बहुत बड़ा नहीं बल्कि शायद 30GB~100GB के आसपास था, तो virtual machine boot बहुत slow हो जाता है
काफ़ी बड़ा set करें तो boot ही नहीं करता। किसी भी size का दूसरा drive add करने से यह bug trigger नहीं होता
कंपनी से M1 MacBook Pro मिला है, लेकिन development पूरा Linux पर ही कर रहा हूँ। 90 के दशक के अंत से Linux ही मेरी पसंदीदा environment रही है
MacBook Pro का hardware अच्छा है, लेकिन macOS सुस्त और घुटनभरा लगता है, जिससे productivity काफी गिरती है
इसलिए UTM में Fedora aarch64 को full screen में चलाता हूँ। काफी ठीक चलता है, और अक्सर भूल जाता हूँ कि यह Mac के ऊपर चल रहा है
बस चाहता हूँ कि macOS बीच में बाधा न डाले, और कभी-कभी full screen mode से बाहर न फेंके
स्थिर battery life छोड़ना अफसोस की बात होती, इसलिए adapt कर लिया
कहीं न कहीं full screen mode बनाए रखने का कोई workaround हो सकता है
कभी-कभी कोई utility उन command-line arguments को support नहीं करती जिनकी आदत है, लेकिन यह Mac/Linux समस्या से ज्यादा version difference जैसा है, और कंपनी के भीतर दूसरे devices पर जाते समय भी कई बार ऐसा देखा है
सबसे बड़ी परेशानी, हालांकि बहुत बड़ी नहीं, ARM और x86 का फर्क है। कभी-कभी ARM पर support न होने वाले packages मिल जाते हैं, लेकिन यह लगातार कम हो रहा है
UTM पिछले 2 सालों से मेरे लिए एक stable hypervisor रहा है, और इस दौरान इसमें कई शानदार feature improvements भी आए हैं
फिर भी UTM में मुझे सबसे ज्यादा यह पसंद है कि यह Universal Turing Machine का संक्षेप है। virtualization product के नाम के लिए यह लगभग सबसे बेहतरीन है
Parallels और VMWare में मुझे जो बात पसंद नहीं है, वह यह है कि वे operating systems के बीच integration को बहुत ज्यादा push करते हैं। जैसे macOS में Windows windows खोलना, या macOS के documents सीधे Windows में खोलना
मैं prefer करता हूँ कि virtual machine मुख्य macOS से isolated रहे। इसलिए हमेशा settings में खंगालकर देखना पड़ता है कि क्या बंद करना है
GitHub project description में “for iOS” लिखा है, यह समझता हूँ, लेकिन मुझे लगता है यह काफी misleading expression है
iOS installation option मूल रूप से या तो jailbreak है, या नए CPU/iOS versions पर असंभव तरीका है, या फिर semi-tethered हालत में हर कुछ दिनों में app को फिर से load/sign करना पड़ता है
https://docs.getutm.app/installation/ios/#summary
app को खुद फिर से install करने की जरूरत नहीं, सिर्फ signing certificate renew करना होता है
EEA में sideloading implement होने पर यह काफी आसान होगा, इसलिए उम्मीद है
Apple ने ऐसा hardware सफलतापूर्वक बनाया जिसे 1 अरब से ज्यादा लोगों तक distribute किया जा सकता है, और उनमें से कई लोगों को jailbreak से फायदा हो सकता है, फिर भी कोई उसे कर नहीं पाया
उस तरीके के बिना भी यह चलता है, लेकिन तीन execution methods में सबसे धीमा है
अगर Mac पर development environment के लिए virtual machine चला रहे हैं, तो आपको OrbStack चाहिए: https://orbstack.dev/
https://lima-vm.io/
https://github.com/abiosoft/colima
Lima की recommendation मिली थी, और यह macOS के लिए WSL2 जैसा थोड़ा लगता है: https://lima-vm.io
अंदर यह क्या इस्तेमाल करता है, ठीक से नहीं जानता, लेकिन मेरे लिए बहुत अच्छा चला
colima, Lima के ऊपर की एक layer है, जो docker-machine/boot2docker style में virtual machine को आसानी से set up कर देती है
UTM basic uses के लिए बढ़िया है, लेकिन performance बहुत खराब थी, इसलिए रोजमर्रा के कामों के मुख्य tool के रूप में यह ज्यादा practical नहीं लगा
Mac पर Parallels का कोई मुकाबला नहीं, और यह अपनी कीमत पूरी तरह वसूल कराता है
अगर virtual machine aarch64 है, तो performance आश्चर्यजनक रूप से अच्छी है, और UTM की जोरदार recommendation की जा सकती है