यह एक मुश्किल प्रोसेस है. इसलिए, हम Linux के नए उपयोगकर्ताओं को इसका इस्तेमाल करने का सुझाव नहीं देते.
ChromeOS, वर्चुअल मशीन (वीएम) में किसी भी कोड को चलाने की सुविधा देता है. यह सुविधा से जुड़ा तकनीकी दस्तावेज़ है. इसे आसानी से समझने के लिए, faq देखें.
ज़रूरी शर्तें
- पक्का करें कि आपका ChromeOS डिवाइस, ChromeOS पर Linux के साथ काम करता हो
-
पक्का करें कि आपके डिवाइस में ChromeOS 72 (M72+) या इसके बाद का वर्शन हो. यह वर्शन फ़रवरी 2019 में रिलीज़ हुआ था.
- अगर ज़रूरत हो, तो सिस्टम अपडेट शुरू करें और रीबूट करें.
- यह सुविधा, स्टेबल चैनल में काम करनी चाहिए.
- आपको इसे डेवलपर मोड में डालने की ज़रूरत नहीं है.
- Linux कंटेनर चालू करना
रनटाइम की सुविधाएं
Linux कंटेनर चलाने पर, आपको इन सुविधाओं के काम करने की उम्मीद करनी चाहिए:
- आउटबाउंड नेटवर्क कनेक्शन (IPv4).
- बिना ऐक्सेलरेट किए गए ग्राफ़िक.
- OpenGL की मदद से, ग्राफ़िक्स को तेज़ी से रेंडर किया जाता है.
- Wayland प्रोग्राम (सुझाया गया; Sommelier के ज़रिए).
- X प्रोग्राम (Sommelier और XWayland के ज़रिए काम करने की सुविधा).
- M74+ में ऑडियो आउटपुट और R79+ इमेज में एक्सपेरिमेंट के तौर पर कैप्चर/माइक्रोफ़ोन की सुविधा उपलब्ध है.
सुविधाएं कम हैं
हम कई ऐसे विषयों पर काम कर रहे हैं जिनके बारे में ज़्यादा जानकारी उपलब्ध नहीं है. इसके कुछ उदाहरण यहां दिए गए हैं:
- वीडियो को हार्डवेयर की मदद से डिकोड करने की सुविधा.
- IME.
ChromeOS टीम, नई सुविधाओं को रोल आउट करने के लिए एक तय तरीका अपनाती है. इससे यह पक्का किया जाता है कि सिस्टम की सुरक्षा से कोई समझौता न हो. हालांकि, इस बारे में और भी चीज़ों पर विचार किया जा रहा है. ज़्यादा जानकारी के लिए, Crostini के बारे में अक्सर पूछे जाने वाले सवाल देखें. इसमें ChromeOS पर Linux डेवलपमेंट से जुड़े ज़्यादातर विषयों के बारे में जानकारी दी गई है.
सुरक्षा
आम तौर पर, किसी भी कोड को चलाने से सुरक्षा से जुड़ी समस्या हो सकती है. हालांकि, ChromeOS टीम का मानना है कि ChromeOS कंटेनर पर Linux के इस्तेमाल किए गए रनटाइम मॉडल से, सुरक्षा से जुड़ी इस समस्या को काफ़ी हद तक कम किया जा सकता है. वर्चुअल मशीन (वीएम) एक सुरक्षा सीमा है. इसके अंदर मौजूद हर चीज़ को अविश्वसनीय माना जाता है. मौजूदा वीएम गेस्ट इमेज में भी कस्टम-हार्डेंड कर्नल चल रहा है, ताकि कंटेनर की सुरक्षा को और बेहतर बनाया जा सके. हालांकि, इसे एक अच्छी सुविधा माना जाता है. इस पर पूरी तरह से भरोसा नहीं किया जाता, ताकि सिस्टम की सुरक्षा को पक्का किया जा सके.
इस मॉडल में, ChromeOS सिस्टम के बाकी हिस्सों को ऐसे कोड (नुकसान पहुंचाने वाला या अनजाने में किया गया) से सुरक्षित रहना चाहिए जो वीएम के कंटेनर में चलता है.
बाहरी दुनिया से सिर्फ़ crosvm के ज़रिए संपर्क किया जा सकता है. साथ ही, हर चैनल अलग-अलग प्रोसेस से कम्यूनिकेट करता है. इनमें से हर प्रोसेस को सैंडबॉक्स किया जाता है.
कंटेनर में मौजूद उपयोगकर्ता का डेटा
क्लाउड सेवाओं पर स्विच करने के बाद, सुरक्षा से जुड़ी मौजूदा सोच इस बात पर ज़ोर देती है कि आपके डेस्कटॉप या लैपटॉप पर हमला करने की तुलना में, खाते के क्रेडेंशियल (जैसे, आपके Google/Facebook पासवर्ड) हासिल करना ज़्यादा फ़ायदेमंद है. ये गलत नहीं हैं. फ़िलहाल, ChromeOS के मौजूदा वीएम/कंटेनर समाधान से इसमें कोई सुधार नहीं होता. सीधे तौर पर कहें, तो कंटेनर में डाली गई किसी भी चीज़ की ज़िम्मेदारी फ़िलहाल उपयोगकर्ता की है. इसलिए, अगर आपने किसी असुरक्षित या हैक किए गए कंटेनर को चलाया है और उसमें अपने पासवर्ड डाले हैं, तो उन्हें चोरी किया जा सकता है. भले ही, ChromeOS सिस्टम के बाकी हिस्से सुरक्षित हों.
प्रोसेस को जारी रखना
वीएम और कंटेनर में मौजूद प्रोसेस, लॉग आउट करने के बाद भी चालू रहती हैं. ऐसा इसलिए, क्योंकि ये उपयोगकर्ता के एन्क्रिप्ट (सुरक्षित) किए गए स्टोरेज में मौजूद होती हैं. हालांकि, ये प्रोसेस अपने-आप बंद हो जाती हैं. ये लॉगिन करने पर अपने-आप शुरू नहीं होते, ताकि लगातार होने वाले हमलों से बचा जा सके. साथ ही, ये बूट होने पर भी अपने-आप नहीं चलते, क्योंकि ये ऐक्सेस नहीं किए जा सकते. ऐसा इसलिए, क्योंकि ये उपयोगकर्ता के एन्क्रिप्ट (सुरक्षित) किए गए स्टोरेज में होते हैं.
लिखा और चलाया जा सकने वाला कोड
Termina वीएम डिस्क इमेज, लिखने की सुविधा वाले स्टेटफ़ुल पार्टीशन में डाउनलोड की जाती है. जैसे, अन्य Chrome कॉम्पोनेंट. कॉन्टेंट में बदलाव न हो, इसके लिए dm-verity का इस्तेमाल किया जाता है. इसका यह भी मतलब है कि Google से साइन की गई इमेज ही लोड की जा सकती हैं. साथ ही, इमेज हमेशा सिर्फ़ पढ़ने के लिए होती है.
हार्डवेयर पर किए जाने वाले हमले
Meltdown/Spectre की कमज़ोरियों की वजह से, वीएम का सुरक्षित तरीके से इस्तेमाल करने पर असर पड़ता है. हमने कुछ सुधार किए हैं और जोखिम कम करने के तरीके लागू किए हैं, ताकि वीएम, होस्ट सिस्टम या अन्य वीएम पर हमला न कर सकें. ज़्यादा जानकारी के लिए, ChromeOS डिवाइसों के लिए मेल्टडाउन और स्पेक्टर की कमज़ोरी की स्थिति के बारे में Chromium OS का विकी पेज देखें.
लाइफ़साइकल
Linux कंटेनर चालू करने के बाद, सिस्टम इस्तेमाल के लिए तैयार हो जाता है. Linux कंटेनर, Termina जैसे सभी ज़रूरी कॉम्पोनेंट इंस्टॉल करता है.
ये कॉम्पोनेंट इंस्टॉल किए जा सकते हैं, लेकिन कोई भी कॉम्पोनेंट तुरंत काम करना शुरू नहीं करता. लॉग आउट करने पर, सभी प्रोसेस बंद हो जाती हैं. इसके बाद, लॉग इन करने पर कोई भी प्रोसेस अपने-आप शुरू नहीं होती.
टर्मिनल ऐप्लिकेशन या कंटेनर को शुरू करने वाला कोई अन्य Linux ऐप्लिकेशन चलाने पर, अगर पैरंट कंटेनर अब तक नहीं चल रहा है, तो Termina VM अपने-आप शुरू हो जाएगा. साथ ही, ChromeOS पर डिफ़ॉल्ट Linux कंटेनर (इसे Crostini भी कहा जाता है) भी शुरू हो जाएगा. इससे आपको एसएसएच या एसएफ़टीपी (Files ऐप्लिकेशन के ज़रिए) का इस्तेमाल करके कंटेनर से कनेक्ट करने की अनुमति मिलती है.
दिख रहे सभी ऐप्लिकेशन बंद करने पर, वीएम/कंटेनर बंद नहीं होते हैं. अगर आपको ऐसा करना है, तो मैन्युअल तरीके से उन्हें बंद और चालू करें. साथ ही, डिफ़ॉल्ट कंटेनर के अलावा ज़्यादा कंटेनर भी बनाएं.
डेटा पर्सिस्टेंस
बनाई गई सभी वर्चुअल मशीनें और कंटेनर, उपयोगकर्ता के सभी सेशन (लॉग आउट/लॉग इन) में बने रहेंगे. साथ ही, उन कंटेनर में मौजूद डेटा भी बना रहेगा. इन्हें उपयोगकर्ता के हिसाब से एन्क्रिप्ट (सुरक्षित) किए गए स्टोरेज में रखा जाता है. यह स्टोरेज, ब्राउज़र के बाकी डेटा के लिए भी इस्तेमाल किया जाता है.
अगर किसी वीएम या कंटेनर को अचानक बंद कर दिया जाता है (जैसे, बिजली चले जाने की वजह से), तो डेटा मिट सकता है. ऐसे में, सिस्टम में मौजूद किसी भी अन्य डेटा की तरह, इस डेटा को भी वापस लाना पड़ सकता है.
डिवाइस से जुड़ी सहायता
हमारा मकसद है कि ChromeOS पर Linux की सुविधा सभी Chromebook पर काम करे. हालांकि, ज़रूरी कर्नल और हार्डवेयर की सुविधाओं की वजह से, इसे कुछ ही डिवाइसों पर डिप्लॉय किया जा सकता है. टीम ने सिस्टम की सुरक्षा और स्थिरता पर ध्यान दिया है. साथ ही, उन सुविधाओं को वापस लाया गया है जो काम की हैं. हम इस समस्या को हल करने के लिए लगातार काम कर रहे हैं.
अब उपलब्ध है
फ़िलहाल, जिन डिवाइसों पर Linux काम करता है उनकी सूची देखने के लिए, कृपया Linux के साथ काम करने वाले ChromeOS सिस्टम पर जाएं.
हार्डवेयर की ज़रूरी शर्तें
फ़िलहाल, ChromeOS कंटेनर पर Linux चलाने के लिए, रैम, स्टोरेज या सीपीयू की स्पीड की कोई तय सीमा नहीं है. हालांकि, इनमें से हर चीज़ की ज़्यादा क्षमता होने पर, सिस्टम बेहतर तरीके से काम करेगा.
हालांकि, इसके लिए आपको ऐसे सीपीयू की ज़रूरत होगी जो हार्डवेयर वर्चुअलाइज़ेशन की सुविधा के साथ काम करता हो. x86 प्लैटफ़ॉर्म पर, इसे कई नामों से जाना जाता है. Intel इसे VT-x और VMX कहता है. AMD इसे AMD-V और SVM कहता है.
BayTrail सिस्टम
Intel के BayTrail का इस्तेमाल करने वाले Chromebook में VT-x शामिल नहीं होता. आम तौर पर, इस सीपीयू में वीएमएक्स शामिल होता है. हालांकि, Chromebook में मौजूद सीपीयू में यह शामिल नहीं होता. इसलिए, अफ़सोस की बात है कि यह सुविधा कभी काम नहीं करेगी.
यह देखने के लिए कि कोई बोर्ड, Google Meet के साथ काम करता है या नहीं, हमारी सार्वजनिक डिवाइस की सूची में Platform कॉलम में जाकर BayTrail खोजें.
पुराने कर्नल
Linux 3.14 या इससे पहले के वर्शन के लिए, इस सुविधा को उपलब्ध कराने की कोई योजना नहीं है. इसके लिए, नई सुविधाओं को बैकपोर्ट करने की ज़रूरत होती है. ये सुविधाएं बहुत ज़्यादा होती हैं और अक्सर निजता पर असर डालती हैं. उदाहरण के लिए:
यह देखने के लिए कि कोई बोर्ड काम करता है या नहीं, हमारी सार्वजनिक डिवाइस की सूची में जाकर, Kernel कॉलम में 3.14 से कम वर्शन नंबर खोजें.
32-बिट ARM सीपीयू
32-बिट एआरएम सीपीयू पर वर्चुअल मशीनें चलाना मुश्किल होता है. साथ ही, इसके लिए फ़र्मवेयर के साथ तालमेल बिठाना ज़रूरी होता है. माफ़ करें, ChromeOS फ़र्मवेयर एक्सटेंशन को कॉन्फ़िगर नहीं करता है. इसलिए, इन सिस्टम का इस्तेमाल नहीं किया जा सकता.
यह देखने के लिए कि कोई बोर्ड, Google Meet के साथ काम करता है या नहीं, हमारी सार्वजनिक डिवाइस की सूची में Kernel ABI कॉलम में जाकर arm खोजें.