लिनक्स कर्नेल को "छवि" क्यों कहा जाता है?


62

मैंने अक्सर लोगों को लिनक्स कर्नेल को लिनक्स कर्नेल छवि के रूप में संदर्भित करते हुए सुना है और मैं किसी भी खोज इंजन पर उत्तर खोजने के लिए प्रतीत नहीं हो सकता कि क्यों इसकी छवि कहा जाता है।

जब मैं एक छवि के बारे में सोचता हूं तो मैं केवल दो चीजों के बारे में सोच सकता हूं या तो एक डिस्क या एक फोटो की एक प्रति। यह निश्चित है कि नरक एक फोटो छवि नहीं है, इसलिए इसे एक छवि के रूप में क्यों जाना जाता है?


10
यह रैम क्षेत्र की प्रतिलिपि भी हो सकती है (जो कर्नेल के साथ IMHO है)
रोमियो निनोव

जवाबों:


60

यूनिक्स बूट प्रक्रिया में एक प्रोग्राम को लोड करने (इसे स्थानांतरित करने, पुस्तकालयों को लोड करने आदि) की केवल सीमित क्षमता है (है)। इसलिए प्रारंभिक कार्यक्रम एक सटीक छवि थी, जिसे डिस्क पर संग्रहीत किया गया था, जिसे कर्नेल में जाने के लिए मेमोरी में लोड करने और "कॉल" करने की आवश्यकता थी।

केवल बहुत बाद की चीजें जैसे (डी-) संपीड़न को जोड़ा गया था और हालांकि अधिक शक्तिशाली बूटलोडर्स अब जगह में हैं, छवि नाम अटक गया है।


1
संपीड़न और अपघटन का किसी चीज से कोई लेना-देना नहीं है जिसे "छवि" कहा जाता है। यह अभी भी स्मृति में एक विशिष्ट बिंदु में लोड है और पुराने दिनों की तरह ही सीधे कहा जाता है। हस्तक्षेप करने वाला बूट लोडर हमेशा मौजूद रहता है। कर्नेल अपने आप में अभी भी एक छवि है, जिसे मेमोरी में एक विशिष्ट बिंदु पर लोड किया जाता है, और सीधे कॉल किया जाता है।
phyrfox

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

टीबीएच सुनिश्चित नहीं है कि आप इसके मूल के बारे में सही हैं, लेकिन आपका स्पष्टीकरण इतना समझ में आता है कि मुझे उखाड़ना होगा। IMHO संकुचित छवि अभी भी एक छवि है। छवि को पुनः प्राप्त करने का तरीका अप्रासंगिक है। यह एक छवि है। यह स्पष्ट करता है कि आप किस बारे में बात कर रहे हैं और शायद यही सबसे महत्वपूर्ण बात है।
अकोस्टैडिनोव

दिलचस्प। इसलिए अगर मेरे पास एक जावास्क्रिप्ट फ़ाइल है जिसमें कर्नेल जैसे कार्यों का एक समूह है, और इसे XMLHttpRequest के माध्यम से लोड किया गया है और इसे NodeJS साइड पर लोड करें और NodeJS सर्वर का उपयोग करें और अनुरोध के माध्यम से इसके साथ बातचीत करने के लिए NodeJS सर्वर का उपयोग करें, मैं इसे कॉल कर सकता हूं। जावास्क्रिप्ट फ़ाइल एक कर्नेल छवि: O
दिमित्री 12

31

शब्द छवि में एक परिभाषा भी है "एक फ़ाइल जिसमें लाइव काम की प्रतिलिपि बनाने के लिए आवश्यक सभी जानकारी होती है।"


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

3
एक छवि स्मृति का एक स्नैपशॉट है।
इकेगामी

2
पूरी तरह से नहीं - मुझे संपूर्ण सिस्टम स्थिति बनाने के लिए (पुनः) पर्याप्त जानकारी की आवश्यकता है। यदि एक मेमोरी डंप इसके लिए पर्याप्त है, तो मुझे अंतर्निहित ज्ञान है (प्रारंभ पता, प्रारंभिक सिस्टम स्थिति); यदि यह पर्याप्त नहीं है, तो मैं छवि के रूप में मेमोरी डंप का संदर्भ नहीं दूंगा ।
साइमन रिक्टर

20

इसका मतलब यह नहीं है कि एक "छवि" एक डिस्क की सिर्फ 1: 1 प्रति है। जिस तरह एक तस्वीर वास्तविकता का प्रतिनिधित्व करती है ठीक उसी तरह जैसे कि शूटिंग के दौरान, एक निष्पादन योग्य प्रोग्राम (या कर्नेल) की छवि एक राज्य में कार्यक्रम का प्रतिनिधित्व करती है, जहां सिस्टम मेमोरी में इसे लोड (या अनपैक) किया जा सकता है, जैसा कि यह है और फिर इस पर नियंत्रण दिया। यह कार्यक्रम तब उस स्थिति से सुसंगत तरीके से चलना शुरू कर सकता है। तो लिनक्स कर्नेल छवि लिनक्स कर्नेल की एक छवि (राज्य की एक तस्वीर) है जो इसे नियंत्रण देने के बाद खुद से चलने में सक्षम है।

आजकल, बूटलोडर हार्ड डिस्क के फाइल सिस्टम (ड्राइवर की आवश्यकता है) से ऐसी छवि को लोड करता है, खुद को इसके साथ बदल देता है और इसलिए इसे नियंत्रण देता है। कंप्यूटर की बूटिंग प्रक्रिया कई बार ऐसा करती है जब तक कि ऑपरेटिंग सिस्टम आखिरकार नहीं चलता। इसे चेन लोडिंग कहा जाता है । या यदि एक छोटा प्रोग्राम (श्रृंखला-) एक अधिक जटिल लोड करता है, तो इसे बूटस्ट्रैपिंग कहा जाता है ।

BIOS बूटलोडर को लोड करता है जो एक छवि भी है, उदाहरण के लिए जिसे boot.imgमामले में कहा जाता है grub। यह boot.imgएक फ़ाइल नहीं है (यदि ग्रब स्थापित है); यह उस भाग के लिए नाम है जो मास्टर बूट रिकॉर्ड (MBR) में है। यदि आप उसे किसी फ़ाइल में डंप करते हैं, तो यह फ़ाइल के रूप में एक छवि होगी, जिसे डिस्क पर नहीं लिखा जाता है, बल्कि एक फ़ाइल में लिखा जाता है। यह उस प्रारंभिक अवस्था का एक चित्र (चित्र) भी है जहाँ grubस्वयं शेष को लोड करने में सक्षम है। grubफिर इसका अपना तंत्र है कि कैसे अन्य छवियों को लोड करके खुद को पूरी तरह से लोड किया जाए। इसमें विभिन्न चरणों का प्रतिनिधित्व किया जाता है grub। उसके बाद, बूटलोडर कर्नेल छवि को उस फ़ाइल की निकाली गई सामग्री के साथ बदलकर लोड करता है।


7

प्राचीन इतिहास। संकलक-> लिंकर से आउटपुट के लिए शब्द की छवि एक पुराने डिजिटल उपकरण निगम शब्द से आती है। फ़ाइल कोड की व्याख्या करने और अपने डिजाइन के निष्पादन योग्य "छवि" बनाने के लिए लिंकर के माध्यम से बनाई गई एक छवि है।


1
यदि आप एक संदर्भ लिंक जोड़ते हैं तो मैं
अपवोट करूंगा

डिजिटल उपकरण निगम के "RSX-11M + सिस्टम संदर्भ नियमावली" DEC 1981 का संदर्भ लें। तब से यह उद्योग के माध्यम से प्रचारित होता है
SkipBerne

5

गणित में कर्नेल कुछ नक्शे की छवि के सबसेट का उलटा चित्र होता है, उपसमूह कोडोमैन में पहचान तत्व के बराबर होता है। मुझे यकीन है कि ये नाम गणितीय अवधारणाओं से प्राप्त होते हैं क्योंकि वे गणित में विभिन्न क्षेत्रों में महत्वपूर्ण रूप से संबंधित हैं। यूनिक्स को ध्यान में रखते हुए एक अकादमिक वातावरण में व्युत्पन्न किया गया था यह संभव हो सकता है कि यह इन शब्दों के कर्नेल का उपयोग करता है और छवि समान हैं।

यदि आपके पास एक सेट है जो "पूर्ण" OS के बारे में कुछ स्तर की जानकारी का प्रतिनिधित्व करता है, यदि वह जानकारी भी एक समूह बनाती है तो आप समूह होमोमोर्फिज्म को उस सेट पर परिभाषित कर सकते हैं या मूल रूप से विभिन्न आकारों वाले अन्य सेटों पर मैप कर सकते हैं तो मूल सेट इतना लंबा है वे मूल समूह की संरचना का "सम्मान" करते हैं जिसने इसे एक समूह बना दिया। आप यह देख सकते हैं कि सेट को किसी छोटे सेट पर सेट करने के लिए या किसी सेट के सबसेट में जहां सबसेट छोटा है, उसके पक्ष में हो सकता है।

छवि - एक समूह होमोमोर्फिज्म की छवि और सामान्य कार्यों और मानचित्रों में, बस कुछ सेट का एक सबसेट होता है, जिनके तत्वों को वास्तव में मैप किया जाता है। फ़ंक्शन हर एक तत्व को मैप नहीं कर सकता है और उन तत्वों को छवि में शामिल नहीं किया जाएगा।

कर्नेल - मूल रूप से मूल से केवल वे तत्व होते हैं जो चित्र में मैप करते हैं, लेकिन केवल छवि में पहचान तत्व के लिए मैप करते हैं। मूल रूप से 0 में मैप करने वाले तत्व छवि में चीज़ की तरह हैं।

यदि छवि आकार में छोटी है तो मूल सेट तो हम देख सकते हैं कि कई वस्तुओं को एक ही तत्व में मैप करना होगा। इसलिए उदाहरण के लिए, कर्नेल से कई तत्व हो सकते हैं जो चित्र में मैप करते हैं और हम पहले से ही जानते हैं कि उन सभी को 0 से मैप करना होगा।

हम देख सकते हैं कि यदि हम बाइनरी या 1 और 0 के परिमित दृश्यों के लिए मूल सेट चुनते हैं और बाइनरी के अनुक्रम भी होने के लिए कोडोमैन (मैप्ड टू), तो हम इस तरह की चीजों का निर्माण कर सकते हैं यदि और केवल यदि, एक उपयुक्त उत्पाद संरचना परिभाषित किया जा सकता है (यह थोड़ा गहराई से और असंबंधित प्रश्न से जुड़ा हुआ है)।

इसलिए हम पूरी निश्चितता के साथ देखते हैं कि OS का "कर्नेल" और "इमेज" पूरी तरह से परिभाषित है और इसका गणितीय अर्थ है। शायद शर्तों के अन्य उपयोगों से स्वतंत्र।


मूल रूप से कर्नेल ओएस का 'थिनर्ड' संस्करण हो सकता है, या ओएस का वह हिस्सा जो महत्वपूर्ण है और 'एब्स्ट्रैक्टेड' हो सकता है, बशर्ते नक्शा इंजेक्टिव होमोर्फिज्म हो और ज्ञात हो, चारों ओर पैर की अंगुली रखने के साथ पूरी छवि को बाहर निकाल सकता है। पूरी छवि। ऐसा लगता है कि डेटा कॉमेडी की एक विधि "कर्नेल" और "इमेज" शब्द है। लेकिन वास्तव में वे प्रसिद्ध गणितीय अवधारणाओं से उपजी हैं।
मार्शल शिल्प

3
हाय मार्शल। टिप्पणियों को जोड़ने के बजाय इसे संपादित करके अपनी पोस्ट को बेहतर बनाना बेहतर है।
एंथनी गोगेगन

4
मेरा मानना ​​है कि कर्नेल का कंप्यूटिंग उपयोग एक अखरोट के " केंद्रीय (आमतौर पर खाद्य)) भाग से होता है, विशेष रूप से एक बार हार्ड को हटा दिया गया है। " ( विकिपीडिया देखें ) - यह ऑपरेटिंग सिस्टम का छोटा, आंतरिक हिस्सा है; सभी "बाहरी परतों" (GUIs, कमांड-शेल्स, लोड करने योग्य ड्राइवरों) को अलग करने के बाद यह कुछ उपयोगी फैशन में हार्डवेयर को संचालित / बनाने के लिए आवश्यक (लगभग) न्यूनतम हिस्सा है।
ट्रिपहाउंड

वाह सिर्फ वाह। अटकलें w / o आधार। ट्राइपहाउंड सही हो गया। मार्शल शिल्प सिर्फ अनुमान लगाया।
जोशुआ

अपने "काफी कुछ" ty को संशोधित करें :)
hobbs
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.