Linux कर्नेल स्थिर रिलीज़ मॉडल 2005 में शुरू हुआ, जब यह निर्धारित किया गया कि मौजूदा कर्नेल विकास मॉडल (हर 2-3 महीने में एक नई रिलीज़) अधिकांश उपयोगकर्ताओं की ज़रूरतों को पूरा नहीं कर रहा है। उपयोगकर्ता उन 2-3 महीनों के दौरान बग फिक्स करना चाहते थे, और लिनक्स वितरण को कर्नेल समुदाय से प्रतिक्रिया के बिना कर्नेल को अद्यतित रखना मुश्किल लगता था। सामान्य तौर पर, अलग-अलग गुठली को सुरक्षित रखने का प्रयास और नवीनतम बगफिक्स के साथ बहुत से अलग-अलग व्यक्तियों द्वारा एक बड़ा और भ्रमित करने वाला प्रयास था।
स्थिर कर्नेल रिलीज़ सीधे लिनुस टॉर्वाल्ड्स की रिलीज़ पर आधारित होते हैं, और विभिन्न बाहरी कारकों (वर्ष का समय, उपलब्ध पैच, रखरखाव कार्यभार, आदि) के आधार पर हर हफ्ते या तो जारी किए जाते हैं। स्थिर रिलीज़ की संख्या कर्नेल रिलीज़ की संख्या से शुरू होती है, और इसके अंत में एक अतिरिक्त संख्या जोड़ी जाती है। उदाहरण के लिए, 4.4 कर्नेल लिनुस द्वारा जारी किया जाता है, और फिर इस कर्नेल के आधार पर स्थिर कर्नेल रिलीज़ को क्रमांकित किया जाता है 4.4.1, 4.4.2, 4.4.3, और इसी तरह। स्थिर कर्नेल रिलीज़ ट्री का संदर्भ देते समय इस क्रम को आमतौर पर 4.4.y संख्या के साथ छोटा किया जाता है। प्रत्येक स्थिर कर्नेल रिलीज़ ट्री का रखरखाव एकल कर्नेल डेवलपर द्वारा किया जाता है, जो रिलीज़ के लिए आवश्यक पैच चुनने और समीक्षा/रिलीज़ प्रक्रिया को प्रबंधित करने के लिए ज़िम्मेदार होता है।
स्थिर गुठली को वर्तमान विकास चक्र की लंबाई के लिए बनाए रखा जाता है। लिनुस द्वारा एक नया कर्नेल जारी करने के बाद, पिछले स्थिर कर्नेल रिलीज़ ट्री को रोक दिया जाता है और उपयोगकर्ताओं को नए रिलीज़ किए गए कर्नेल में जाना चाहिए।
लंबे समय तक स्थिर गुठली
इस नई स्थिर रिलीज प्रक्रिया के एक साल बाद, यह निर्धारित किया गया था कि लिनक्स के कई अलग-अलग उपयोगकर्ता चाहते थे कि कर्नेल को केवल कुछ महीनों से अधिक समय तक समर्थित किया जाए। प्रत्युत्तर में, लॉन्ग टर्म सपोर्टेड (LTS) कर्नेल रिलीज़ बनाया गया था, पहला LTS कर्नेल (2.6.16) 2006 में जारी किया गया था। तब से, एक नया LTS कर्नेल वर्ष में एक बार चुना गया है और कर्नेल समुदाय उस कर्नेल को एक के लिए बनाए रखता है। न्यूनतम 2 वर्ष।
इस लेखन के समय, एलटीएस कर्नेल 4.4.y, 4.9.y, 4.14.y, 4.19.y, 5.4.y, और 5.10.y रिलीज़ हैं। एक नया कर्नेल साप्ताहिक जारी किया जाता है। कुछ उपयोगकर्ताओं और वितरणों की जरूरतों के कारण, कुछ अतिरिक्त पुराने कर्नेल कर्नेल डेवलपर्स द्वारा धीमी रिलीज़ चक्र पर बनाए रखा जाता है। सभी दीर्घकालिक स्थिर गुठली के बारे में जानकारी, जो उनके प्रभारी हैं, और उन्हें कब तक बनाए रखा जाएगा, कर्नेल. org रिलीज़ पृष्ठ पर पाया जा सकता है।
एलटीएस कर्नेल प्रति दिन औसतन 6-8 पैच जारी करता है, जबकि सामान्य स्थिर कर्नेल रिलीज में प्रति दिन 10-15 पैच होते हैं। संबंधित विकास कर्नेल रिलीज़ के वर्तमान समय और अन्य बाहरी चरों को देखते हुए पैच की संख्या प्रति रिलीज़ में उतार-चढ़ाव करती है। एलटीएस कर्नेल जितना पुराना होता है, उस पर कम पैच लागू होते हैं क्योंकि कई हालिया बगफिक्स पुराने कर्नेल के लिए प्रासंगिक नहीं हैं। हालाँकि, कर्नेल जितना पुराना होता है, कोडबेस में होने वाले परिवर्तनों के कारण लागू किए जाने वाले परिवर्तनों को बैकपोर्ट करना उतना ही कठिन होता है। इसलिए जबकि कम संख्या में समग्र पैच लागू किए जा रहे हैं, एलटीएस कर्नेल को बनाए रखने में शामिल प्रयास सामान्य स्थिर कर्नेल को बनाए रखने से अधिक है।
स्थिर कर्नेल पैच नियम
स्थिर कर्नेल रिलीज़ में क्या जोड़ा जा सकता है, इसके नियम इसके परिचय के बाद से लगभग समान हैं और नीचे संक्षेप में दिए गए हैं:
- स्पष्ट रूप से सही और परीक्षण किया जाना चाहिए।
- 100 लाइन से ज्यादा बड़ी नहीं होनी चाहिए।
- केवल एक चीज को ठीक करना चाहिए।
- कुछ ऐसा ठीक करना चाहिए जिसे एक समस्या बताया गया है।
- हार्डवेयर के लिए एक नई डिवाइस आईडी या क्वर्की हो सकती है, लेकिन प्रमुख नई कार्यक्षमता नहीं जोड़ सकती।
- पहले से ही लिनुस टॉर्वाल्ड्स के पेड़ में विलय होना चाहिए।
अंतिम नियम, "पहले से ही लिनुस टॉर्वाल्ड्स के पेड़ में विलय होना चाहिए", कर्नेल समुदाय को सुधारों को खोने से रोकता है। समुदाय कभी भी स्थिर कर्नेल रिलीज़ में जाने के लिए एक फिक्स नहीं चाहता है जो पहले से ही लिनुस टॉर्वाल्ड्स के पेड़ में नहीं है, ताकि जो कोई भी अपग्रेड करता है उसे कभी भी रिग्रेशन नहीं देखना चाहिए। यह कई समस्याओं को रोकता है जो एक स्थिर और विकास शाखा बनाए रखने वाली अन्य परियोजनाओं को हो सकती हैं।
कर्नेल अद्यतन
Linux कर्नेल समुदाय ने अपने उपयोक्ता आधार से वादा किया है कि कोई भी अपग्रेड कभी भी किसी ऐसी चीज को नहीं तोड़ेगा जो वर्तमान में पिछली रिलीज में काम कर रही है। वह वादा आज भी सच है। प्रतिगमन होता है, लेकिन वे सर्वोच्च प्राथमिकता वाले बग हैं और या तो जल्दी से ठीक हो जाते हैं, या प्रतिगमन के कारण होने वाले परिवर्तन को लिनक्स कर्नेल ट्री से जल्दी वापस कर दिया जाता है।
यह वादा वृद्धिशील स्थिर कर्नेल अद्यतनों के साथ-साथ हर तीन महीने में होने वाले बड़े प्रमुख अद्यतनों के लिए भी सही है। हालाँकि, कर्नेल समुदाय केवल उस कोड के लिए यह वादा कर सकता है जो कि Linux कर्नेल ट्री में मर्ज किया गया है। कोई भी कोड जो किसी डिवाइस के कर्नेल में मर्ज किया गया है जो कि kernel.org रिलीज़ में नहीं है अज्ञात है और इसके साथ इंटरेक्शन की कभी भी योजना नहीं बनाई जा सकती है, या यहां तक कि विचार भी नहीं किया जा सकता है।
लिनक्स पर आधारित डिवाइस जिनमें बड़े पैच सेट होते हैं, नए कर्नेल में अपडेट करते समय बड़ी समस्याएँ हो सकती हैं, क्योंकि प्रत्येक रिलीज़ के बीच बड़ी संख्या में परिवर्तन (प्रति रिलीज़ 10-14 हज़ार परिवर्तन) होते हैं। SoC पैचसेट को विशेष रूप से नए कर्नेल को अपडेट करने में समस्या होने के लिए जाना जाता है क्योंकि उनके बड़े आकार और आर्किटेक्चर विशिष्ट, और कभी-कभी कोर, कर्नेल कोड के भारी संशोधन के कारण। नतीजतन, अधिकांश एसओसी विक्रेता अपने उपकरणों के लिए एलटीएस रिलीज का उपयोग करने पर मानकीकरण करना शुरू कर रहे हैं, जिससे उन उपकरणों को सीधे लिनक्स कर्नेल समुदाय से बग और सुरक्षा अपडेट प्राप्त करने में मदद मिलती है।
सुरक्षा
कर्नेल रिलीज़ करते समय, Linux कर्नेल समुदाय लगभग कभी भी विशिष्ट परिवर्तनों को सुरक्षा सुधारों के रूप में घोषित नहीं करता है। यह यह निर्धारित करने में कठिनाई की मूल समस्या के कारण है कि बगफिक्स एक सुरक्षा सुधार है या नहीं, निर्माण के समय। साथ ही, कई बग फिक्स केवल काफी समय बीत जाने के बाद सुरक्षा से संबंधित होने के लिए निर्धारित होते हैं, इसलिए कर्नेल समुदाय दृढ़ता से अनुशंसा करता है कि जारी किए गए सभी बगफिक्स को हमेशा लें।
जब कर्नेल समुदाय को सुरक्षा समस्याओं की सूचना दी जाती है, तो उन्हें जल्द से जल्द ठीक किया जाता है और सार्वजनिक रूप से विकास वृक्ष और स्थिर रिलीज में धकेल दिया जाता है। जैसा कि ऊपर वर्णित है, परिवर्तनों को लगभग कभी भी "सुरक्षा सुधार" के रूप में वर्णित नहीं किया जाता है, बल्कि कर्नेल के लिए किसी अन्य बगफिक्स की तरह दिखता है। यह प्रभावित पक्षों को समस्या के रिपोर्टर द्वारा इसकी घोषणा करने से पहले अपने सिस्टम को अपडेट करने की क्षमता की अनुमति देने के लिए किया जाता है।
कर्नेल समुदाय को सुरक्षा बग की रिपोर्ट करने के विवरण के लिए उन्हें जल्द से जल्द हल करने और ठीक करने के लिए, www.kernel.org पर लिनक्स कर्नेल उपयोगकर्ता और व्यवस्थापक की मार्गदर्शिका में सुरक्षा बग देखें।
चूंकि कर्नेल टीम द्वारा सुरक्षा बग की घोषणा जनता के लिए नहीं की जाती है, लिनक्स कर्नेल से संबंधित मुद्दों के लिए सीवीई नंबर आमतौर पर हफ्तों, महीनों और कभी-कभी वर्षों के बाद स्थिर और विकास शाखाओं में विलय होने के बाद जारी किए जाते हैं।
एक सुरक्षित प्रणाली रखना
लिनक्स का उपयोग करने वाले डिवाइस को तैनात करते समय, यह दृढ़ता से अनुशंसा की जाती है कि सभी एलटीएस कर्नेल अपडेट निर्माता द्वारा लिए जाएं और उचित परीक्षण के बाद अपने उपयोगकर्ताओं को बाहर धकेल दिया जाए, यह दिखाता है कि अपडेट अच्छी तरह से काम करता है। इसके कई फायदे हैं:
- रिलीज़ की समीक्षा कर्नेल डेवलपर्स द्वारा समग्र रूप से की गई है, अलग-अलग हिस्सों में नहीं।
- यह निर्धारित करना कठिन है, यदि असंभव नहीं है, तो यह निर्धारित करना कि कौन से पैच "सुरक्षा" मुद्दों को ठीक करते हैं और कौन से नहीं। लगभग हर एलटीएस रिलीज में कम से कम एक ज्ञात सुरक्षा सुधार होता है, और कई अभी तक "अज्ञात" होते हैं।
- यदि परीक्षण में कोई समस्या दिखाई देती है, तो कर्नेल डेवलपर समुदाय समस्या को हल करने के लिए शीघ्रता से प्रतिक्रिया करेगा।
- केवल आपके द्वारा चलाए जा रहे परिवर्तनों को फ़िल्टर करने के प्रयासों के परिणामस्वरूप एक कर्नेल ट्री होगा जो भविष्य के अपस्ट्रीम रिलीज़ के साथ सही ढंग से विलय करना असंभव है।