डेमन, सेवा और प्रक्रिया के बीच तकनीकी अंतर क्या है?


121

मैं जानना चाहता हूं कि उबंटू में चल रहे एक डेमन, प्रोसेस और सर्विस के व्यवहार में क्या अंतर हैं।


3
यह स्टैकऑवरफ्लो के लिए एक बेहतर फिट है, जहां यह सुविधाजनक रूप से पहले से ही पूछा और उत्तर दिया गया है
टॉम ब्रॉसमैन

5
@Tom: नहीं, एसई पोस्ट का जवाब नहीं है कि एक सेवा क्या है। और कुल मिलाकर यहां के उत्तर अधिक विस्तृत हैं।
मैड्स स्केजर्न

3
@TomBrossman, आपके द्वारा लिंक की गई पोस्ट सेवाओं के बारे में कुछ भी नहीं कहती है ।
पचेरियर

4
StackOverflow कोडिंग के बारे में है। डेमन एक यूनिक्स चीज हैं, यहाँ से पूछने के लिए कोई बेहतर जगह नहीं है
Mr.Robot

1
है ना? यह सवाल कभी बंद कैसे हो सकता है?
जैकब व्लिजम

जवाबों:


123

डेमॉन - डेमन डिस्क और निष्पादन मॉनिटर ( http://www.takeourword.com/TOW146/page.html.html ) के लिए खड़ा नहीं होता है । वे प्रक्रियाएं हैं जो पृष्ठभूमि में चलती हैं और इंटरैक्टिव नहीं हैं। उनके पास कोई नियंत्रण टर्मिनल नहीं है।

वे पूर्वनिर्धारित समय पर या कुछ घटनाओं के जवाब में कुछ क्रियाएं करते हैं। * NIX में, डेमन के नाम d में समाप्त होते हैं ।

सेवाएं - विंडोज में, डेमोंस को सेवाएं कहा जाता है

यदि आप सोच रहे हैं कि क्यों * NIX में सेवा नाम की एक कमांड है , तो इसका उपयोग init स्क्रिप्ट चलाने के लिए किया जाता है ( इनिशियलाइज़ेशन स्क्रिप्ट्रूनेल के लिए आशुलिपि )।

प्रोसेस - प्रोसेस एक रनिंग प्रोग्राम है। किसी विशेष समय पर, यह या तो चल सकता है , सो रहा है , या ज़ोंबी (पूरी होने वाली प्रक्रिया, लेकिन रिटर्न वैल्यू लेने के लिए इसकी मूल प्रक्रिया का इंतजार कर रहा है)।

स्रोत और आगे की जानकारी :


2
लिनक्स पर प्रक्रियाओं में कुछ और राज्य हैं, यहाँ एक उत्कृष्ट आरेख है: linux-tutorial.info/modules.php?name=MContent&pageid=84
एप

आधिकारिक उबंटू प्रलेखन का यह टुकड़ा "सेवाओं" के बारे में बात करता है, और मुझे लगता है कि वे विंडोज के बारे में बात नहीं कर रहे हैं! तो क्या मुझे सिर्फ डेमॉन के रूप में पढ़ना चाहिए? help.ubuntu.com/community/UbuntuBootupHowto
Mads

1
वास्तव में ओपी उबंटू के भीतर सेवाओं के बारे में पूछता है, जबकि यह जवाब विंडोज पर सेवाओं के बारे में बताता है। तो जाहिर है, एनोन का जवाब सही है
मैड्स स्केजर्न

के अनुसार serverfault.com/questions/129055/... डेमॉन और सेवाओं ही नहीं हैं
Mr.Robot

41
  1. एक डेमॉन एक पृष्ठभूमि, गैर-संवादात्मक कार्यक्रम है । यह किसी भी इंटरैक्टिव उपयोगकर्ता के कीबोर्ड और डिस्प्ले से अलग है। पृष्ठभूमि कार्यक्रम को निरूपित करने के लिए डेमन शब्द यूनिक्स संस्कृति से है; यह सार्वभौमिक नहीं है।

  2. एक सेवा एक कार्यक्रम है जो कुछ अंतर-प्रक्रिया संचार तंत्र (आमतौर पर एक नेटवर्क पर) पर अन्य कार्यक्रमों से अनुरोधों का जवाब देती है। एक सेवा वह है जो एक सर्वर प्रदान करता है। उदाहरण के लिए, एनएफएस पोर्ट मैपिंग सेवा को एक अलग पोर्टमैप सेवा के रूप में प्रदान किया जाता है, जिसे portmapdडेमन के रूप में लागू किया जाता है।

    एक सेवा के लिए एक डेमॉन होना जरूरी नहीं है, लेकिन आमतौर पर यह है। एक जीयूआई के साथ एक उपयोगकर्ता आवेदन में एक सेवा हो सकती है: उदाहरण के लिए, एक फ़ाइल साझाकरण अनुप्रयोग। एक अन्य उदाहरण एक्स विंडो सेवा है, जो पृष्ठभूमि में कुछ भी है: यह आपकी स्क्रीन, कीबोर्ड और पॉइंटिंग डिवाइस को संभालती है। यह एक सेवा है क्योंकि यह अनुप्रयोगों के अनुरोधों का जवाब देती है (विंडोज़, एट सीटेरा बनाने और हेरफेर करने के लिए), जो नेटवर्क पर कहीं और भी हो सकती है। लेकिन एक्स सर्विस आपके हर कीस्ट्रोके और माउस मूवमेंट का भी जवाब देती है।

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

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

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


क्या आप सिस्टम के RAM के लिए सीधे क्वेरी करके अन्य प्रक्रियाओं की मेमोरी प्राप्त नहीं कर सकते हैं?
पचेरियर

1
एक प्रक्रिया आम तौर पर सिस्टम के RAM के लिए सीधे क्वेरी नहीं कर सकती है। आधुनिक ओएस वर्चुअल एड्रेस स्पेस ( en.wikipedia.org/wiki/Virtual_address_space ) का उपयोग करते हैं , जिसका अर्थ है कि प्रत्येक प्रक्रिया केवल स्मृति के एक नकली दृश्य के साथ बातचीत कर सकती है जहां ओएस ठीक से पहुंच योग्य है।
अकरॉय

"एक प्रक्रिया निष्पादन के इन थ्रेड्स के लिए एक वातावरण बनाती है जो ऐसा दिखता है कि उनके पास खुद के लिए एक पूरी मशीन है: यह एक आभासी मशीन है।" इसे लगाने का बहुत अच्छा तरीका है, इसके बारे में कभी भी ऐसा नहीं सोचा था। लेकिन निश्चित रूप से अमूर्त लीक हो रहा है। जैसे, एक प्रक्रिया जो समय को माप सकती है (जो कि प्रोसेसर के माध्यम से भी कर सकती है) यह नोटिस कर सकती है कि यह मशीन पर अकेली नहीं है। और निश्चित रूप से ओएस अन्य प्रक्रियाओं की गणना करने के लिए तंत्र प्रदान करता है।
मास्टरएक्सिलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.