प्रलेखन: लिनक्स सत्र की वास्तुकला


20

मैं एक अच्छे अवलोकन दस्तावेज की तलाश कर रहा हूं जो आधुनिक लिनक्स सत्र में शामिल डेमों और सेवाओं के ढेर का वर्णन करता है। हालाँकि dbus, इसके बारे में विभिन्न दस्तावेज पढ़ने के बाद , और systemdमुझे अभी भी बड़ी तस्वीर नहीं मिली है।

विशेष रूप से, मैं इन सवालों के जवाब ढूंढ रहा हूं (प्रश्नों का उत्तर न दें, उन्हें केवल यह स्पष्ट करना चाहिए कि मैं किस तरह के दस्तावेज की तलाश कर रहा हूं):

  • लॉग इन करने के बाद, उपयोगकर्ता के सत्र की जड़ कौन सी प्रक्रिया है?

  • कौन सी प्रक्रियाएं शुरू की जानी चाहिए, और क्यों? मैं एक डेस्कटॉप-अज्ञेयवादी उत्तर की तलाश कर रहा हूं, चाहे कोई भी सूक्ति, केडीई, एफवीडब्ल्यूएम, या एक साधारण शेल शुरू हो।

  • इन सभी डेमन की क्या भूमिका है? उनमें से कौन अकेले चलेगा, जो दूसरों पर निर्भर हैं? किसके द्वारा शुरू किया जाना चाहिए, क्यों, और कब तक? और उस चिड़ियाघर को कौन बनाए रखना चाहिए?

मैं, पूछ रहा हूँ क्योंकि मैंने पाया कि मैं सही बूटिंग के बाद चल डेमॉन की एक पूरी चिड़ियाघर है: systemd-journald, systemd-udevd, dbus-daemon, systemd-logind। लेकिन पर्याप्त: इन के अलावा, रनिंग अल्ट्रा हल्के पीडीएफ-दर्शक zathura आगे के साथ अपने सत्र भरता है dbus-launch, dbus-daemon, at-spi2-registryd, और at-spi-bus-launcher, बाद शुरू अभी तक एक और dbus-daemon। उनमें से कोई भी पहले नहीं रहा है, किसी को भी आमंत्रित नहीं किया गया है, लेकिन वे घर के चारों ओर रहेंगे, मुझे एक डरावना एहसास दे रहा है, जब तक कि मैं लॉग आउट नहीं करता। मुझे यकीन है कि मैं यहाँ कुछ याद कर रहा हूँ ...

एक और उदाहरण: लॉगिन के बाद, मेरे पास systemdमेरे यूआईडी यूआईडी के साथ चल रहा है , लेकिन मुझे नहीं पता कि यह क्या करना चाहिए (संस्करण 206 के बाद से मुझे लगता है कि मैं सत्र प्रबंधक के रूप में उपयोग करने वाला नहीं हूं ?)। इसकी एक बाल प्रक्रिया है (sd-pam), जिसके बारे में मैं प्रलेखन खोजने में विफल रहा।

वो क्या करते हैं? इस सेटअप के पीछे क्या विचार है?

मेरे दृष्टिकोण को स्पष्ट करने के लिए: "पुराने दिनों में" यह जानने के लिए पर्याप्त था कि loginमेरे लॉगिन शेल ( bash, निष्पादित ~/.profile) को लॉन्च किया जाएगा , और उस बिंदु से मैं एक सत्र का निर्माण जारी रख सकता हूं, परिस्थितियों के आधार पर, शायद लॉन्च करना screen, या startx


4
इस सवाल का जवाब नहीं दिया जा सकता क्योंकि हर डिस्ट्रो अपना सामान खुद करता है। इससे भी बदतर, डेस्कटॉप वातावरण KDE और GNOME काफी भिन्न होते हैं, जो एक्स विंडिंग सिस्टम शुरू होने के बाद क्या होता है, से संबंधित है। फिर भी बदतर, डिस्ट्रोस इसे करने के अपने तरीके को बदलते हैं - आप सिस्टमड का उल्लेख करते हैं जो अपेक्षाकृत नया है। अब यदि आप वितरण-अज्ञेयवादी उत्तर चाहते हैं तो यह "लिनक्स कर्नेल प्रारंभ होता है, और बाकी सब कुछ इस बात पर निर्भर करता है कि init कैसे कॉन्फ़िगर किया गया है"। यह उत्तर उतना ही उथला है जितना व्यापक है, जबकि हर गहरे उत्तर के लिए आपको कम से कम वितरण संस्करणों में अपने प्रश्न को सीमित करना होगा।
थोरस्टेन स्टैकर

1
कृपया अपने प्रश्न को विभाजित करें। उदाहरण के लिए, मैं आपको गनोम-सत्र देखने के लिए कह सकता हूं और "रूट सत्र" प्रक्रिया के रूप में शुरुआत कर सकता हूं, जिसे अधिक स्पष्टीकरण की आवश्यकता होगी।
थोरस्टेन स्टैकर

1
@ थोरस्टेन-स्टैकर: "इसका जवाब नहीं दिया जा सकता क्योंकि हर डिस्ट्रो अपना सामान खुद बनाता है" इसलिए आप कह रहे हैं कि मैं इस बारे में कोई अनुमान नहीं लगा सकता कि कौन से डीमॉन चल रहे हैं? मैं वास्तव में ऐसा नहीं मान सकता। क्षमा करें, लेकिन प्रश्न को विभाजित करने से वह उत्तर नहीं मिलेगा जिसकी मुझे तलाश है। लेकिन मैं "डेस्कटॉप-अज्ञेयवादी" को पुनःप्रकाशित करने की कोशिश करूँगा: मैं एक सत्र में अपेक्षित न्यूनतम सामान्य भाजक, या रनिंग डेमॉन (और उनमें से प्रत्येक के लिए औचित्य) के न्यूनतम सेट की तलाश कर रहा हूं। वे कैसे बातचीत करते हैं, और यह सेट अलग-अलग प्रकार के सत्रों के साथ कैसे बदलता है (क्या टर्मिनल सत्र में एक dbusd है? SSH के माध्यम से?)
stefan

1
लिनक्स उन उपकरणों पर चल रहा है जिनमें एलसीडी डिस्प्ले के अलावा कुछ नहीं है। यह उन मोबाइल फोन पर भी चल रहा है, जिनमें एपस्टोर नहीं है और न ही कैमरा है। यह सैमसंग गैलेक्सी पर और मेनफ्रेम पर भी चल रहा है। यह कर सकता है - समझदारी - राम के कई टेराबाइट्स का उपयोग करें और यह कुछ किलोबाइट में फिट हो सकता है। मुझे डर है कि लिनक्स सत्र का सबसे कम आम विभाजक लिनक्स है और आपके पास "पसंद की स्वतंत्रता" है जो कभी-कभी आपको और क्या चाहिए इसे लेने के लिए बदसूरत है। एक डेस्कटॉप के लिए मैं सबसे कम आम भाजक को सूचीबद्ध करने की कोशिश करूंगा, लेकिन आप "सब कुछ" के बजाय डब के बारे में सवाल पूछना बेहतर होगा।
थोरस्टेन स्टैक

जवाबों:


8

मैं आपके प्रश्न से इतना मोहित हो गया कि मैंने इसका उत्तर linuxintro पर दिया । यहाँ आपके प्रश्न के अनुरूप उत्तर दिया गया है:

जब फ़ेडोरा, SUSE या उबंटू जैसे लिनक्स के साथ एक विशिष्ट पीसी कदम इस प्रकार होगा:

  1. BIOS स्व-जाँच चलाता है
  2. BIOS बूट सेक्टर को लोड करता है और इसे निष्पादित करता है
  3. ग्रब या लिलो जैसे बूटलोडर को निष्पादित किया जाता है
  4. बूटमेनू दिखाया गया है (वैकल्पिक)
  5. कर्नेल लोड किया गया है
  6. प्रारंभिक रैम डिस्क भरी हुई है
  7. कर्नेल को निष्पादित किया जाता है
  8. कर्नेल init निष्पादित करता है
  9. init निष्पादित करता है, आपके distro, संस्करण और कॉन्फ़िगरेशन पर निर्भर करता है

    • SysV init स्क्रिप्ट या
    • प्रणाली या
    • कल का नवाब

इन सभी कार्यक्रमों की भावना सेवाओं को शुरू करना है

  • dbus जो अनुप्रयोगों के बीच संचार की अनुमति देता है ताकि एक अनुप्रयोग दूसरे चल रहे अनुप्रयोग से कार्यों को कॉल कर सके। यह कुछ ऐसा है जो आमतौर पर उपयोगकर्ताओं को दिखाई नहीं देता है, उदाहरण के लिए, विंडो मैनेजर को कॉल करने वाला एक एप्लिकेशन, जो अपनी खिड़की को फोकस में रखता है
  • लॉगिन जो उपयोगकर्ताओं को CTRL_ALT_F * टर्मिनलों पर लॉग इन करने की अनुमति देता है। सिस्टम ए-सिस्टम के मामले में ps-will द्वारा देखा जाने वाला लॉगिन की प्रक्रिया सिस्टमड-लॉगइंड होगी (वितरण द्वारा फिर से भिन्न हो सकती है)
  • udev जिसके बहुत सारे नाम हैं, उदाहरण के लिए मेरे लिए मैं इसे ps -A के साथ systemd-udevd के रूप में पाता हूं। यह असाइन करता है जैसे कि डिवाइस आपके डिवाइस को / dev / में हैंडल करता है, जिससे आप कनेक्ट होते हैं, जैसे USB डिस्क
  • cron जो / etc / crontab में टाइम टेबल के आधार पर कमांड निष्पादित करेगा, और बूट पर कमांड शुरू करने के लिए "@reboot" सुविधा भी है।

10) लॉगिन प्रक्रिया, जिसे सिस्टमड द्वारा हैंडल किया गया है, वर्चुअल टर्मिनल पर लॉग इन के लिए इंतजार करेगा, एक CTRL_ALT_F1 दबाकर आमतौर पर उपलब्ध है

11) आम तौर पर और डिफ़ॉल्ट रूप से, init प्रक्रिया अब प्रदर्शन प्रबंधक शुरू करेगी, जैसे kdm (KDE प्रदर्शन प्रबंधक) या xdm

12) डिस्प्ले मैनेजर अब ग्राफिकल सिस्टम शुरू करेगा। व्यावहारिक रूप से कोई ग्राफिकल प्रणाली नहीं है, लेकिन Xorg (hildon एम्बेडेड उपकरणों के लिए है)।

13) डिस्प्ले मैनेजर एक लॉगिन स्क्रीन प्रदर्शित करने के लिए Xorg सर्वर को सलाह देगा


अब स्टार्टअप पूरा हो गया है और कंप्यूटर उपयोगकर्ता के लॉग इन करने की प्रतीक्षा कर रहा है।


14) प्रदर्शन प्रबंधक में उपयोगकर्ता लॉग पर केडीई, गनोम या एक्सएफसीई 4 जैसे डेस्कटॉप वातावरण शुरू करेगा। उपयोगकर्ता के KDE सत्र के लिए रूट प्रक्रिया को startkde कहा जाएगा, GNOME के ​​लिए रूट प्रक्रिया को gnome-session कहा जाएगा, XFCE4 के लिए रूट प्रक्रिया को xfce4-session कहा जाएगा

15) केडीई आमतौर पर सभी निष्पादन योग्य फ़ाइलों को ~ / .kde / ऑटोस्टार्ट और .desktop फ़ाइलों से / etc / xdg / autostart ( शेड्यूलिंग कार्य देखें ) से शुरू करता है।

16) जब उपयोगकर्ता ने ग्राफ़िकल रूप से लॉग इन किया है और कंसोल खोलने के लिए आइकन पर क्लिक करता है, तो आमतौर पर बैश को निष्पादित किया जाएगा। बैश पहले निष्पादित करेगा

17) जब उपयोगकर्ता शेल खोलता है तो इसका मतलब है कि उसे पासवर्ड या अधिकृत कुंजी के माध्यम से लॉग इन करना होगा। वह CTRL_ALT_F1 कंसोल पर या कंप्यूटर पर ssh'ing, जैसे कि localhost पर कर सकता है। फिर / .cc/profile.d और .bashrc से .sh स्क्रिप्ट निष्पादित की जाएगी।


1
यह एक लिनक्स सिस्टम शुरू करने के लिए चरणों का एक अच्छा, सामान्य अवलोकन है। विशिष्ट सॉफ्टवेयर (जैसे ग्रब, लिलो, यू-बूट) बदलता है लेकिन फ़ंक्शन समान होता है। मुझे संदेह है कि आप init प्रक्रिया में सबसे अधिक रुचि रखते हैं इसलिए # 8 और # 9 चरणों पर ध्यान दें। सिसविनीट (/ etc / inittab) सिस्टमड या अपस्टार्ट के पक्ष में बहुत अधिक आज्ञाकारी है। ये दोनों sysvinit सेवाओं को चला सकते हैं / उनकी निगरानी कर सकते हैं
dturvene 12

डी-बस के माध्यम से कोई भी ऐप कॉल नहीं करता है ताकि फोकस में यह खिड़की हो। -
बजे रॉबर्ट सिएमर

0

उत्तर 42 है। थोरस्टेन स्टैक ने टिप्पणियों में पहले से ही मुख्य समस्या बताई।

बड़ी तस्वीर प्राप्त करने में आपकी मदद करने के लिए, आपको यह जानना होगा कि लिनक्स और ओपन सोर्स सॉफ्टवेयर लाखों स्वयंसेवकों और कंपनियों द्वारा लिखे और बनाए रखे गए हैं। इसलिए ग्रोथ को बनाए रखना आसान नहीं है।

दूसरी ओर, बहुत सारे दस्तावेज हैं: सॉफ्टवेयर के हर टुकड़े के लिए मैन-पेज, एक अच्छी व्याख्या जो डी-बस है, डेवलपर मेलिंग-लिस्ट, गूगल और इतने पर। इसलिए कुछ वर्षों का समय लें और उन सभी डॉक पैकेजों को पढ़ें, जिनमें आप रुचि रखते हैं। यदि आपको इसकी आवश्यकता है, तो बस यूनिक्स और लिनक्स में कुछ अच्छे प्रश्न पूछें ।

सौभाग्य।


एक इलेक्ट्रिक व्हिस्क को कैसे संचालित करना है, इसके बारे में सब कुछ जानने के बाद मुझे कुछ भी नहीं पता है कि केक कैसे बनाया जाता है। "आप रुचि रखते हैं संकुल के सभी डॉक्टर पढ़ें" - यह एक बेकार जवाब है। आपके द्वारा उल्लेखित प्रलेखन ने मुझे बताया कि ये चीजें क्या करती हैं। लेकिन मैं जानना चाहता हूं कि उनका उपयोग किस लिए किया जाता है। "बस कुछ अच्छे प्रश्न पूछें" - मेरा प्रश्न सरल और सीधा है: प्रलेखन कहाँ है?
स्टीफन

1
शायद आपको यह जानने की ज़रूरत होगी कि आप जिस उत्तर की उम्मीद कर रहे हैं उसे प्राप्त करने के लिए कैसे पूछें। इस मामले में मैं आपको एक बहुत ही उपयोगी प्रश्न

0

इससे पहले कि मैं अपने उत्तर का संस्करण दूं, मुझे कुछ परिभाषाओं के साथ शुरू करने दें

लिनक्स == 'एक ऑपरेटिंग सिस्टम कर्नेल "लिनक्स सिस्टम ==" लिनक्स कर्नेल के आसपास किसी प्रकार का सिस्टम बनाया गया "लिनक्स सिस्टम पर सत्र ==" लिनक्स सिस्टम पर चल रहे संबंधित उपयोगकर्ता कार्यक्रमों के कुछ सेट "

आगे आप कर्नेल से दूर हो जाते हैं, कम संभावना किसी भी दो "सिस्टम" वास्तव में आम में कुछ भी होगा। जिसका अर्थ है कि वास्तव में "आधुनिक लिनक्स सत्र" की कोई समझदार परिभाषा नहीं है

सच कहूँ तो, उम्मीद है कि किसी तरह का ओवररचिंग सिस्टम डॉक्यूमेंटेशन होना चाहिए जो आपको सभी कंपोनेंट देता है, एक उम्मीद है कि ओपन सोर्स की दुनिया के ज्यादातर हिस्सों में बस अभ्‍यास ही न हों। ओपन सोर्स डेवलपर्स उन विशिष्ट समस्याओं को हल करने (या फिर से हल करने!) के लिए प्रोग्राम लिख रहे हैं, जिनकी वे देखभाल करते हैं - इसलिए वे इसे भाग देने के लिए सिर्फ दस्तावेज करेंगे - यदि वह! :-)

वाणिज्यिक लाइनक्स वितरण के साथ उपलब्ध मैनुअल के साथ आपके पास बेहतर भाग्य हो सकता है, हालांकि उनमें से अधिकांश की रूढ़िवादी प्रकृति को देखते हुए, आप तर्क दे सकते हैं कि उनकी रिलीज़ "आधुनिक" नहीं हैं!

मैं जो प्रमुख सलाह दूंगा वह यह है कि संयुक्त राष्ट्र का बहुत सामान्य ज्ञान यूनिक्स / लिनेक्स सिस्टम विषम है। मैं लोगों को बताता था कि मुझे निक्स सिस्टम पसंद है क्योंकि मैं इनिट के साथ शुरू कर सकता हूं, और वहां से, एक सिस्टम पर चल रहा सब कुछ समझ सकता हूं। सिस्टमड और दोस्तों ने बदल दिया है कि थोड़ा सा, लेकिन मूल सिद्धांत एक ही है - शीर्ष पर शुरू करें और नीचे काम करें - "सत्र बनाने वाले कार्यक्रम" आम तौर पर वे होते हैं जो उस बिंदु से शुरू होते हैं जो आप में दर्ज करते हैं। इसलिए, यदि आप ssh में हैं, तो आपको शायद वही मिलेगा जो आपका डिफ़ॉल्ट शेल है, जैसा कि ssh काम करता है। यदि आप एक ग्राफ़िकल इंटरफ़ेस के माध्यम से लॉग इन करते हैं, तो आपको अपने लॉगिन प्रबंधक द्वारा शुरू किया गया कुछ मिलेगा, जैसा कि आपका लॉगिन प्रबंधक काम करता है

बहुत सारे डेस्कटॉप फ्रेमवर्क इसे थोड़ा कठिन बनाते हैं, विभिन्न उपयोगकर्ता या सिस्टम स्तरीय सेवा डेमोंस को चलाकर - और कभी-कभी, ये मांग पर शुरू किए जाएंगे जब पहला प्रोग्राम जो उन्हें शुरू करने की आवश्यकता है - कमांड लाइन विकल्पों को देखें आपके द्वारा चलाए जा रहे प्रोग्राम, इस व्यवहार को रोकने और "नंगे" मोड में एप्लिकेशन को चलाने के लिए काफी संभावनाएं हैं।

दुर्भाग्य से, इसका मतलब यह है कि "व्यक्तिगत कार्यक्रमों के दस्तावेज़ीकरण को पढ़ना" यह सब समझने का एकमात्र तरीका है, और यह कि सत्र के लिए "डेमोंस का न्यूनतम सेट" नहीं है - किसी दिए गए वितरण के काम करने का तरीका ठीक उसी तरह है लॉगिन / पहुंच विधि, और thats वितरण, डेस्कटॉप, और लॉगिन विधि विशिष्ट।

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