Systemd - आपको क्या पता होना चाहिए
जब तक कि आप एक चट्टान के नीचे नहीं रह रहे हैं, या इससे भी बदतर - आप लिनक्स कैसे काम करते हैं, इस बारे में बहुत परवाह नहीं करते हैं, आपने हाल ही में पुराने और पुराने एसआईएसवी इनिट को प्रतिस्थापित करने के लिए सिस्टम (डी अपेक्षाकृत) नई init प्रणाली के बारे में सुना होगा, जो हाल ही में अधिकांश प्रमुख लिनक्स द्वारा अपनाया गया है distros।
एक init प्रणाली क्या है?
जब आपकी लिनक्स मशीन शुरू होती है तो यह पहले कुछ "अंतर्निहित" कोड चलाएगी, जिसे पहले BIOS या UEFI से लोड किया गया था, उसके बाद बूटलोडर के बाद, जो इसके कॉन्फ़िगरेशन के अनुसार एक लिनक्स कर्नेल लोड करता है। कर्नेल ड्राइवरों को लोड करता है, और क्योंकि इसकी पहली नौकरी इनिट प्रक्रिया शुरू करती है, जिसे पहले पीआईडी (प्रोसेस आईडी) 1 को सौंपा जाता है।
उपयोगकर्ता के दृष्टिकोण से यह नेटवर्किंग और डेटाबेस इत्यादि शुरू करने जैसा दिखता है, लेकिन हकीकत में हुड के तहत एक जटिल प्रक्रिया हो रही है। सेवाएं शुरू हो जाती हैं, रुक जाती हैं और फिर से शुरू होती हैं, अक्सर एक-दूसरे के समानांतर होती हैं। कुछ दूसरों के मुकाबले अलग-अलग विशेषाधिकारों के तहत चलाए जाते हैं, सेवा की स्थिति की सूचना दी जा रही है और लॉग इन किया जा रहा है, और कई अन्य कार्यों का प्रदर्शन किया जाता है जो आपके सिस्टम के काम का अलग-अलग हिस्सा बनेंगे और अपने उपयोगकर्ताओं और पर्यावरण के साथ बातचीत करने में सक्षम होंगे।
यह कैसे कार्यान्वित किया जाता है, हालांकि, वर्दी से बहुत दूर है, और यह वास्तव में वह है जहां यह सब आम और अच्छी तरह परिभाषित होने से रोकता है।
पुरानी init प्रणाली
अधिकांश मुख्यधारा के लिनक्स द्वारा उपयोग की जाने वाली इनिट सिस्टम हाल ही में सिस्टम वी इनिट (या एसआईएसवी इनिट इन शॉर्ट) थी, जिसने अपना नाम फॉर्म यूनिक्स सिस्टम वी (उच्चारण "सिस्टम फाइव") प्राप्त किया है, जो पहले व्यावसायिक रूप से उपलब्ध यूनिक्स सिस्टम है। सिस्टम वी ओएस के पास अपनी इनिट प्रक्रिया को चलाने का एक विशिष्ट तरीका है, और एसआईएसवी इनिट ने पिछले कुछ वर्षों से वफादार रखा है।
और यह कई सालों से रहा है। यूनिक्स सिस्टम वी को मूल रूप से 1 9 83 में रिलीज़ किया गया था, जिससे लिनक्स मशीनों को शुरू करने के लिए इनिट एसआईएसवी 30 से अधिक पुराने दृष्टिकोण में प्रवेश कर रहा था।
बदलाव की आवश्यकता
जैसा कि यह उल्लेख किया गया है, SysV init पुराना हो गया है और प्रतिस्थापित होने के लिए लंबे समय से अतिदेय है। इसके कुछ कारणों में शामिल हैं:
- SysV init init प्रक्रिया शुरू करने के लिए / sbin / init का उपयोग करता है, लेकिन init में ही बहुत सीमित भूमिका है। / etc / initab से पढ़ने वाली कॉन्फ़िगरेशन के अनुसार init /etc/init.d/rc शुरू करने से थोड़ा अधिक करता है, जो बदले में इनिट प्रक्रिया के वास्तविक कार्य को करने के लिए स्क्रिप्ट चलाएगा। यह, जब तक स्पष्ट रूप से पैनलबद्ध नहीं किया जाता है (जैसे डेबियन पर स्टार्टपर के साथ), अनुक्रमिक रूप से होता है, एक स्क्रिप्ट दूसरे के बाद शुरू होती है, जिससे पूरी प्रक्रिया धीमी हो जाती है क्योंकि प्रत्येक स्क्रिप्ट को पिछले एक के लिए इंतजार करना पड़ता है।
- SysV init को पीआईडी तक पहुंच नहीं है या इसकी प्रक्रियाओं (अप्रत्यक्ष रूप से) शुरू हुई है। यह केवल पीआईडी पढ़ता है और उन्हें परिस्थिति संबंधी, जटिल तरीके से वास्तविक प्रक्रियाओं से जोड़ता है।
- सिस्टम प्रशासकों के लिए पर्यावरण को संशोधित करने की कोशिश कर रहा है जिसके अंतर्गत एक निश्चित प्रक्रिया शुरू होगी, एसआईएसवी इनिट के साथ यह काफी मुश्किल है। (इसे प्राप्त करने के लिए उन्हें दिए गए प्रक्रिया को शुरू करने के लिए जिम्मेदार इनिट स्ट्रिप को संशोधित करना होगा।)
- एसआईएसवी लागू नहीं होने वाली हर सेवा के लिए कुछ कार्यक्षमता सामान्य होती है, लेकिन प्रत्येक प्रक्रिया को स्वयं को "डिमोनिज़िंग" (सिस्टम डिमन) बनना, जो एक विस्तृत और लंबी प्रक्रिया है, को स्वयं लागू करना होगा। एक बार इन चरणों को लागू करने के बजाय, एसआईएसवी को प्रत्येक प्रक्रिया को स्वयं नौकरी करने की आवश्यकता होती है।
- एसआईएसवी बाहरी कार्यक्रमों के लिए कुछ कार्यक्षमता भी छोड़ देता है और उन लोगों द्वारा शुरू की जाने वाली सेवाओं के बारे में कुछ भी नहीं जानता है।
उपर्युक्त सभी, और कई अधिक डिज़ाइन त्रुटियां, या बल्कि एसआईएसवी के पुराने सिस्टम डिज़ाइन ने आधुनिक इनिट सिस्टम को लंबे समय से अतिदेय बना दिया है।
Systemd दर्ज करें
एक वैकल्पिक init प्रणाली बनाने के कई प्रयास थे, जिनमें से systemd उनमें से केवल एक है। उबंटू अपस्टार्ट नामक अपनी खुद की प्रणाली को चलाने के लिए प्रयोग किया जाता था। Gentoo अभी भी ओपनआरसी का उपयोग करता है। अन्य इनिट सिस्टम में initng, busybox-init, runit, और मुद्र और अन्य शामिल हैं।
सिस्टमड एक स्पष्ट विजेता का कारण यह है कि इसे अधिकांश प्रमुख वितरणों द्वारा अपनाया गया है। आरएचएल और सेंटोस स्वाभाविक रूप से व्यवस्थित तरीके से चला गया, क्योंकि फेडोरा 2011 में आधिकारिक तौर पर सिस्टम को अपनाने वाला पहला डिस्ट्रो था। लेकिन सिस्टम वास्तव में उन सभी पर शासन करने के लिए एक इनिट सिस्टम बन गया है, जब डेबियन 8 आधिकारिक तौर पर सिस्टम में स्विच हो गया था, इसके साथ उबंटू और डेरिवेटिव लाया गया था, कैनोनिकल (या अधिक सटीक मार्क शटलवर्थ के) पर प्रणाली के प्रति प्रारंभिक विपक्ष पर काबू पाने।
Systemd अलग कैसे है?
- सिस्टमड का उद्देश्य शुरुआत से अंत तक इनिट प्रक्रिया को संभालने के लिए एक एकल, केंद्रीकृत तरीका प्रदान करना है।
- यह उनकी निर्भरताओं का ट्रैक रखते हुए प्रक्रियाओं और सेवाओं को शुरू और बंद करता है। यह किसी अन्य प्रक्रिया की निर्भरता आवश्यकता के जवाब के रूप में एक प्रक्रिया भी शुरू कर सकता है।
- बूट समय के दौरान प्रक्रियाओं को शुरू और बंद करने के अलावा, सिस्टमड भी किसी भी समय शुरू हो सकता है जब सिस्टम कुछ ट्रिगर घटनाओं के जवाब में होता है जैसे कि डिवाइस में प्लग इन होने पर।
- इसे प्रक्रियाओं को खुद को डिमोनिज़ करने की आवश्यकता नहीं होती है। SysV init के विपरीत, systemd डिमन्स बनने की लंबी प्रक्रिया के बिना चलने वाली सेवाओं को संभाल सकता है।
- एसआईएसवी इनिट के विपरीत, सिस्टमडी पीआईडी समेत सभी प्रक्रियाओं को जानता है और ट्रैक करता है, और सिस्टम प्रशासकों के लिए सिस्टम प्रशासकों के लिए प्रक्रियाओं के बारे में जानकारी प्राप्त करना बहुत आसान है।
- Systemd उन कंटेनर का समर्थन करता है जो वर्चुअल मशीनों की आवश्यकता के बिना मूल रूप से पृथक सेवा वातावरण हैं। भविष्य में यह अधिक सुरक्षित और सरल सिस्टम डिज़ाइन की दिशा में बड़ी क्षमता है।
बेशक ये केवल कुछ प्रमुख फायदे हैं। सिस्टम के फायदों पर पूरी चर्चा के लिए, आपको डेबियन 8 के "सिस्टमड स्टेटस स्टेटमेंट" को पढ़ना चाहिए
विवाद
बेशक systemd का स्वागत नहीं किया गया था। असल में, बहुत से लोग इसे अभी भी फेंकते हैं, इसे एकजुट और बोझिल कहते हैं, कुछ लोग इसे केंद्रीकृत करने के "विंडोज़ तरीके" जाने का भी आरोप लगाते हैं। कई लोग तर्क देते हैं कि यह "लिनक्स रास्ता" नहीं है, और निश्चित रूप से व्यवस्थित पीओएसईक्स मानकों के अनुसार प्रतीत नहीं होता है, और यदि हम टूलकिट (केवल द्विआधारी से परे) के रूप में सिस्टम पर विचार करते हैं, तो यह निश्चित रूप से हूगे है।
फिर भी, systemd स्पष्ट रूप से एक कदम आगे है, और जब यह सही नहीं है, तो इसे प्राप्त की गई अधिकांश आलोचनाओं को इसके मूल लेखक और डेवलपर लेनार्ट पोएटरिंग द्वारा संबोधित किया गया है। यह निश्चित रूप से एक बहुत ही आवश्यक प्रगति है और पुरानी init प्रणाली से एक कदम है। लिनक्स के निर्माता लिनस टोरवाल्ड्स, सिस्टम को बहुत ज्यादा दिमाग में नहीं लगते हैं, और हम "निर्माता" के साथ बहस करने के लिए कौन हैं।
निष्कर्ष
सभी प्रमुख लिनक्स वितरणों द्वारा अपनाया जाने के बाद, systemd रहने के लिए यहां है। जो कुछ भी सिस्टम प्रशासक किसी भी कारण से कहता है, systemd मुख्यधारा के लिनक्स का भविष्य है, चाहे व्यक्तिगत उपयोगकर्ता इसे पसंद करते हैं या नहीं, जो इसके विशिष्ट फायदे देख रहे हैं, यह एक बुरी चीज नहीं है।
औसत उपयोगकर्ता के लिए यह तेजी से बूट समय और शायद अधिक विश्वसनीय सिस्टम लाता है, जबकि भावी वितरण में इसे एक दूसरे के साथ अधिक "संगत" बन सकता है। उपयोगकर्ता के अंत में हम निश्चित रूप से अधिक अद्यतित और समकालीन सिस्टम डिज़ाइन से लाभ उठाएंगे जो यह हमारे डेस्कटॉप पर लाता है।