यह एक मुश्किल प्रोसेस है. इसलिए, हम Linux के नए उपयोगकर्ताओं को इसका इस्तेमाल न करने का सुझाव देते हैं.
ChromeOS, वर्चुअल मशीन (वीएम) में किसी भी कोड को चलाने की सुविधा देता है. यह सुविधा से जुड़ा तकनीकी दस्तावेज़ है. इसे आसानी से समझने के लिए, faq देखें.
ज़रूरी शर्तें
- पक्का करें कि आपका ChromeOS डिवाइस, ChromeOS पर Linux के साथ काम करता हो
-
पक्का करें कि आपके डिवाइस में ChromeOS 72 (M72+) या इसके बाद का वर्शन हो. यह वर्शन फ़रवरी 2019 में रिलीज़ हुआ था.
- अगर ज़रूरी हो, तो सिस्टम अपडेट शुरू करें और रीबूट करें.
- यह सुविधा, स्टेबल चैनल में काम करनी चाहिए.
- आपको इसे डेवलपर मोड में डालने की ज़रूरत नहीं है.
- Linux कंटेनर चालू करना
रनटाइम की सुविधाएं
Linux कंटेनर चलाने पर, आपको ये सुविधाएं मिलनी चाहिए:
- आउटबाउंड नेटवर्क कनेक्शन (IPv4).
- बिना ऐक्सेलरेट किए गए ग्राफ़िक.
- Wayland प्रोग्राम (सुझाया गया; Sommelier के ज़रिए).
- X प्रोग्राम (Sommelier और XWayland के ज़रिए काम करने की सुविधा).
- M74+ में ऑडियो आउटपुट और R79+ इमेज में एक्सपेरिमेंट के तौर पर कैप्चर/माइक्रोफ़ोन की सुविधा उपलब्ध है.
सुविधाएं कम हैं
- वीडियो को हार्डवेयर की मदद से डिकोड करने की सुविधा.
- आईएमई.
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 ऐप्लिकेशन के ज़रिए) का इस्तेमाल करके कंटेनर से कनेक्ट किया जा सकता है.
दिख रहे सभी ऐप्लिकेशन बंद करने पर, वीएम/कंटेनर बंद नहीं होते हैं. अगर आपको ऐसा करना है, तो मैन्युअल तरीके से उन्हें बंद और चालू करें. साथ ही, डिफ़ॉल्ट कंटेनर के अलावा ज़्यादा कंटेनर भी बनाएं.
डेटा पर्सिस्टेंस
बनाई गई सभी वर्चुअल मशीनें और कंटेनर, उपयोगकर्ता के सभी सेशन (लॉग आउट/लॉग इन) में बने रहेंगे. साथ ही, उन कंटेनर में मौजूद डेटा भी बना रहेगा. इन्हें उपयोगकर्ता के हिसाब से एन्क्रिप्ट (सुरक्षित) किए गए स्टोरेज में रखा जाता है. यह स्टोरेज, ब्राउज़र के बाकी डेटा के लिए भी इस्तेमाल किया जाता है.
अगर किसी वीएम या कंटेनर को अचानक बंद कर दिया जाता है (जैसे, बिजली चले जाने की वजह से), तो डेटा मिट सकता है. ऐसे में, सिस्टम में मौजूद किसी भी अन्य डेटा की तरह, इस डेटा को भी वापस लाना पड़ सकता है.
डिवाइस से जुड़ी सहायता
हमारा मकसद है कि Linux on ChromeOS की सुविधा सभी 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 खोजें.