"बम्प एबी" के साथ एक कर्नेल अपडेट क्या है?


19

जैसा कि आप लिनक्स कर्नेल के लिए चैंज में देख सकते हैं , "Bump ABI - Maverick ABP 28" जैसे अपडेट संदेश हैं।

उबंटू विकी के अनुसार , एबीआई कर्नेल स्थान और अन्य मॉड्यूल (मेरी व्याख्या) के बीच एक पुल की तरह है।

क्या इस तरह का अपडेट अतिरिक्त सुविधाओं और / या बगफिक्स को जोड़ता है? क्या मुझे अपने कर्नेल को अगले संस्करण में अपग्रेड करना चाहिए?

जवाबों:


12

NB: मैं कोई कर्नेल विशेषज्ञ नहीं हूं - इसलिए यह एकत्रित ज्ञान और अनुभव पर आधारित है।

एक एबीआई "बम्प" को नई विशेषताओं को नहीं लाना चाहिए, भले ही यह कुछ मॉड्यूल / अनुप्रयोगों में बग को "ठीक" कर सकता है जो एबीआई के उच्च संस्करण की तलाश में हैं। आपको अभी भी इन अद्यतनों को स्थापित करना चाहिए, क्योंकि आम तौर पर सभी घटकों को सिंक में रखने से स्थिरता और सुरक्षा सुनिश्चित होगी।


12

सबसे पहले, आप लिनक्स कर्नेल के लिए चैंज को नहीं देख रहे हैं। आप मेटा पैकेज को देख रहे हैं, जो एक पैकेज है जो नवीनतम कर्नेल पर निर्भर करता है। आप शायद ऐसा कुछ चाहते हैं: http://changelogs.ubuntu.com/changelogs/pool/main/l/linux-image-2.6.35-28-generic/linux-image-2.6.35-28-generic_2.6.35- 28.50 / बदलाव का

इस मेटा-पैकेज का उद्देश्य उपयोगकर्ता को इन ABI धक्कों के माध्यम से संक्रमण करना है।

मैं एबीआई और कर्नेल पर आपके जैसा ही विचार रखता हूं। व्यावहारिक रूप से, एक ABI बम्प का अर्थ है कि सभी मॉड्यूल्स को अपडेट किए गए कर्नेल के विरुद्ध पुनर्निर्माण करना होगा।

मेरी समझ रोलाण्ड के अनुरूप भी है, जिसमें एक ABI बम्प का मतलब नई सुविधाएँ, सिर्फ महत्वपूर्ण सुधार और सुरक्षा अद्यतन नहीं है।


2
इंगित करने के लिए धन्यवाद कि यह सिर्फ एक मेटा-पैकेज है। मैं उसके बारे में भूल गया हूं। aptitude changelog linux-image-2.6.35-28-genericपरिवर्तनों की सूची प्रदर्शित करता है। मुझे यकीन नहीं है कि मेटा-पैकेज में पैकेज के अपडेट क्यों नहीं हैं linux-{image,headers}-*-generic; शायद इसलिए कि linux-{image,headers}-*-serverपैकेज भी हैं?
लेकेनस्टाइन

4

ABI अनुप्रयोग बाइनरी इंटरफ़ेस है, (API, एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस के साथ भ्रमित नहीं होना चाहिए)। एबीआई उन आकारों, संकेतों और संख्याओं को परिभाषित करता है जो अनुप्रयोग का उपयोग कर रहे हैं।

स्पष्ट होने के लिए, यहां एक उदाहरण है: मैं एक इमारत की उम्र को सांकेतिक शब्दों में बदलना चाहता हूं, जिसे वर्षों में व्यक्त किया गया है। ऐसा करने के लिए, मैं एक C का उपयोग कर सकता हूं unsigned char, जो कि एक प्रकार है जिसका आकार 1 बाइट है, और जो 0 से 255 तक मानों को एनकोड कर सकता है। अब मान लीजिए कि मुझे पता चलता है कि 255 एक बहुत कम सीमा है क्योंकि ऐसी इमारतें हैं जिन्हें और अधिक बनाया गया था 255 साल पहले की तुलना में। फिर मैं एक सी का उपयोग कर सकता हूं unsigned int, जो 4-बाइट लंबा है और 0 से 65535 तक मानों को एन्कोड कर सकता है।

से प्रकार बदलने charके लिए int, मैं मैदान के अर्थ अर्थ नहीं बदली हैं (यह एक उम्र के वर्षों में व्यक्त किया गया है और यह अभी भी है), हालांकि मैं इसके आकार बदल दिया है। मेरे अनुप्रयोग के साथ इंटरैक्ट करने वाले प्रत्येक सॉफ़्टवेयर को बदलने की आवश्यकता नहीं होगी, हालाँकि यह एक अलग "भाषा" बोलेगा।

इसलिए, जब कोई कर्नेल अपने ABI को बदलता है, तो इसका मतलब है कि उसने उस भाषा को बदल दिया है जिसे वह बोलता है, लेकिन कोई भी कार्यक्षमताओं को जोड़ा, हटाया या संशोधित नहीं किया गया है। इस नए भाषा को बोलने के लिए कर्नेल के साथ बातचीत करने वाले सभी तीसरे पक्ष के मॉड्यूलों को फिर से जोड़ने की आवश्यकता है, लेकिन उन्हें सही तरीके से काम करने के लिए किसी भी तरह से बदलने की आवश्यकता नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.