आइए कहते हैं फेडोरा और उबंटू?
… ये दोनों आजकल के ऑपरेटिंग सिस्टम हैं।
Systemd ऑपरेटिंग सिस्टम में क्या होता है
देशी तंत्र
सिस्टमड विभिन्न प्रकार की इकाइयों को नियुक्त करता है। .mountइकाई फाइलें इसे वॉल्यूम माउंट करने का निर्देश देती हैं। .swapयूनिट फाइलें इसे स्वैप विभाजन के बारे में कर्नेल को बताने का निर्देश देती हैं। ( .serviceइकाई फाइलें यह निर्देश देती हैं कि सेवाओं को कैसे चलाया जाए। और इसी तरह।) ये देशी सिस्टम तंत्र हैं। उन्हें अधिनियमित करने के लिए, सिस्टमड स्वयं ही उन बाल प्रक्रियाओं को बंद कर देता है जो संबंधित सिस्टम कॉल करते हैं।
यदि आप इस तरह के सिस्टमड ऑपरेटिंग सिस्टम पर systemctlकमांड (साथ --all) का उपयोग करते हैं , तो यह आपको लोड की .swapगई इकाइयों के बारे में बताएगा । उदाहरण के लिए:
dev-disk-by \ x2dpartuuid-40549710 \ x2d05.swap सक्रिय सक्रिय / dev / डिस्क / by-partuuid / 40549710-05 लोड किया गया
dev-disk-by \ x2duuid-1bb589e8 \ x2d929f \ x2d4041 \ x2d81f4 \ x2dff2b339b4e2a.swap सक्रिय सक्रिय / देव / डिस्क / बाय-यूड / 1bb589e8-929f-4041 -4041 -4041 -4041 -4041
dev-sda5.swap लोड सक्रिय / देव / sda5
यह आपको .mountइकाइयों के बारे में भी बताएगा ।
एक सिस्टम प्रशासक वास्तव में इस तरह लिख सकते हैं .swap, हाथ से इकाई फ़ाइलों बस के रूप में XE लिख सकते हैं .service, .socketहाथ से दूसरी इकाई फ़ाइलें, और। systemd ही फाइल सिस्टम में केवल यूनिट फाइलों की तलाश करता है। वे इसके मूल तंत्र हैं।
यहां तक कि आपको ये दिखाने के लिए सिस्टमड मिल सकता है कि इन यूनिट फाइलों में क्या है और फाइलसिस्टम में वे कहां मिल सकते हैं:
$ systemctl cat dev-disk-by \\ x2duuid-1bb589e8 \\ x2d929f \\ x2d4041 \\ x2d81f4 \\ x2dff2a9a9b4e2a.swap
#run/systemd/generator/dev-disk-by\x2duuid-1bb589e8\x2d929f\x2d4041-26x2d81f4\x2d223333bb9e2a.swap
# सिस्टमड-एफस्टैब-जनरेटर द्वारा स्वचालित रूप से उत्पन्न
[यूनिट]
Sourcepath = / etc / fstab
प्रलेखन = आदमी: fstab (5) आदमी: systemd-fstab-जनरेटर (8)
[स्वैप]
क्या = / dev / डिस्क / दर-UUID / 1bb589e8-929f-4041-81f4-ff2b339b4e2a
विकल्प = sw
$
स्वचालित रूप से जनरेट की गई फ़ाइल
कोई उन्हें हाथ से लिख सकता है। आमतौर पर हालांकि ऐसी .mountऔर .swapयूनिट फाइलें स्वचालित रूप से जनरेटर के रूप में ज्ञात कार्यक्रमों द्वारा उत्पन्न होती हैं । इस तरह के दो जनरेटर systemd-fstab-generatorऔर हैं systemd-gpt-auto-generator। वे दोनों बूटस्ट्रैप प्रक्रिया में और systemctl daemon-reloadकमांड के जवाब में जल्दी चलते हैं , और (जैसा कि आप ऊपर देख सकते हैं) वे यूनिट फ़ाइलों का एक पूरा लोड एक अनजाने में उपनिर्देशिका में उत्पन्न करते हैं /run/systemd/। systemd ही उन जेनरेट की गई यूनिट फ़ाइलों का उपयोग करता है ।
पूर्व जनरेटर पढ़ता है /etc/fstab, उस फ़ाइल प्रारूप में कई systemd एक्सटेंशन को पहचानता है। जैसा कि मैंने एक उत्तर टिप्पणी में बताया है, पारंपरिक रूप से स्वैप विभाजन में माउंट प्रकार होता है swऔर इस तरह से कोई अन्य ऑपरेटिंग सिस्टम इस तालिका में स्वैप रिकॉर्ड को पहचानता है। लेकिन लिनक्स सॉफ्टवेयर्स ने VFS प्रकार को पहचानने का वैकल्पिक शुल्क लिया है, VFS प्रकार की तलाश में swap। systemd-fstab-generatorयहाँ कोई अपवाद नहीं है, और यह है कि यह कैसे /etc/fstabदेशी तंत्र में परिवर्तित करते समय व्याख्या करता है।
उत्तरार्द्ध जनरेटर EFI विभाजन तालिका को संसाधित करता है जो उसी डिस्क पर है जो EFI सिस्टम विभाजन को रखती है, EFI विभाजन तालिका प्रविष्टियों की तलाश में है जिसमें विभिन्न प्रसिद्ध विभाजन प्रकार GUID हैं। उन GUID में से एक पारंपरिक GUID है जो Linux स्वैप विभाजन को सौंपा गया है; और अगर systemd-gpt-auto-generatorउस GUID के साथ एक विभाजन मिलता है (जो कि सिस्टम डोको में दिए गए मानदंड को संतुष्ट करता है) यह इसके लिए एक .swapइकाई बना देगा ; बिलकुल नहीं/etc/fstab ।
बेशक, इस प्रक्रिया के बहुत सारे दुष्प्रभाव हैं। उदाहरण के लिए, क्योंकि /etc/fstabमेज पर कोई प्राथमिक कुंजी नहीं है, रिकॉर्ड में "कल्पना" और "फ़ाइल" (यानी "क्या" और "जहां") फ़ील्ड डुप्लिकेट हो सकते हैं। हालांकि, "फाइल" (यानी "जहां") क्षेत्र .mountइकाइयों के लिए एक अद्वितीय कुंजी है , सिस्टम सिस्टेम के मूल नाम में एम्बेडेड है। कोई भी दो .mountइकाइयाँ इसे साझा नहीं कर सकती हैं। के लिए .swapइकाइयों "कल्पना" (यानी "क्या") क्षेत्र इकाइयों के लिए अद्वितीय कुंजी है। कोई भी दो .swapइकाइयाँ साझा नहीं कर सकती हैं। तो सभी रिकॉर्ड /etc/fstabमूल रूप से देशी तंत्र के लिए परिवर्तनीय नहीं हैं और काम करेंगे, खासकर अगर लोग दो अलग-अलग उद्देश्यों के लिए एक ही माउंट बिंदु की सूची जैसी चीजें करते हैं या एक ही स्वैप विभाजन को दो अलग-अलग तरीकों से सूचीबद्ध करते हैं।
इसी तरह, क्योंकि यह /etc/fstabमूल तंत्र में अनुवादित है और systemd के मूल तंत्र में इकाइयों को सक्रिय करने के अन्य तरीके हैं , व्यवहार सूक्ष्म रूप से गैर-प्रणालीगत ऑपरेटिंग सिस्टम से भिन्न है। एक .mountइकाई, डिफ़ॉल्ट रूप से, माउंट किए गए स्टोरेज डिवाइस की उपस्थिति के जवाब में, बूटस्ट्रैप के बाद भी स्वचालित रूप से सक्रियsystemd-udevd हो जाएगी । या यह एक के रूप में सूचीबद्ध किया जा सकता है Wants=या Requires=कुछ की .serviceया .socketइकाई है, जिसका अर्थ है कि यह (फिर से) हो जाएगा सक्रिय जब वे कर रहे हैं। सम है RequiresMountsFor=।
इंस्टॉलर प्रोग्राम और सिस्टमड तरीका
परंपरागत रूप से, ऑपरेटिंग सिस्टम इंस्टॉलर प्रोग्राम, और सिस्टम एडमिनिस्ट्रेटर बाद में सिस्टम को फिर से कॉन्फ़िगर करने के लिए, swप्रविष्टियों को लिखा है /etc/fstab। और इस तरह देशी .mountऔर .swapइकाइयाँ स्वतः उत्पन्न होती हैं। स्थापित / कॉन्फ़िगरेशन उपयोगिता "जानता है" जहां स्वैप फ़ाइल रखी गई थी, क्योंकि इसके उपयोगकर्ता इंटरफ़ेस में सिस्टम प्रशासक ने किसी प्रकार का चुनाव किया, और /etc/fstabमैच के लिए लिखता है । कभी-कभी वह पसंद मुझे स्थापना के भाग के रूप में एक स्वैप विभाजन बनाने के लिए होती है। ; कभी-कभी यह बस स्वैप विभाजन का उपयोग करता है जो आपको डिस्क पर पहले से ही मिला है। (इंस्टॉलर्स विभाजन के प्रकारों को देखते हुए भी)।
लेकिन सिस्टमड लोगों के पास ऑपरेटिंग सिस्टम का यह विचार है कि ऑटो खुद को काफी हद तक खाली /etcपेड़, तथाकथित स्टेटलेस सिस्टम से कॉन्फ़िगर करता है , और यही है कि जनरेटर जैसे तंत्र जो ईएफआई विभाजन तालिका पढ़ते हैं, वे सभी के बारे में हैं। सिस्टमड लोगों की योजना में, कोई नहीं है /etc/fstab, और वास्तव में कोई भी स्थायी कॉन्फ़िगरेशन डेटा /etcबिल्कुल भी नहीं है, और यह सब सामान डिस्क पर विभाजन तालिका की सामग्री से , हर बूटस्ट्रैप और हर पर घटाया जाता है systemctl daemon-reload। वे आजकल ऑपरेटिंग सिस्टम इंस्टॉलर प्रोग्राम को बढ़ावा नहीं देते हैं, जैसे कि एक नहीं लिखते हैं/etc/fstab ।
पारंपरिक योजना में, निश्चित रूप से आपके पास वास्तव में प्रत्येक ऑपरेटिंग सिस्टम का अपना निजी स्वैप विभाजन हो सकता है, न कि उन्हें एक दूसरे के स्वैप विभाजन को छूना होगा। और वास्तव में यदि आप एक स्वैप विभाजन के माध्यम से डिस्क के लिए हाइबरनेट का उपयोग कर रहे हैं और उम्मीद कर रहे हैं कि हाइबरनेट होने के दौरान किसी अन्य ऑपरेटिंग सिस्टम को मल्टी-बूट करने में सक्षम हो ( जो एक बहुत बुरा विचार है क्योंकि फाइलसिस्टम भ्रष्टाचार का इस तरह से सामना करना बहुत आसान है ) ज़रूरी।
सिस्टमड स्कीम में, भले ही ऑपरेटिंग सिस्टम अभी तक नहीं है क्योंकि सिस्टमड लोग इसकी परिकल्पना करते हैं और "स्टेटलेस" होते हैं, उक्त जनरेटर चलते हैं; और इस प्रकार अपेक्षित विभाजन के साथ सभी स्वैप विभाजन (ESP / रूट डिस्क पर) स्वचालित रूप से सभी systemd ऑपरेटिंग सिस्टम द्वारा नियोजित होते हैं। चूंकि वे सभी स्वचालित रूप से खोज किए गए स्वैप विभाजन साझा कर रहे हैं, किसी को वास्तव में स्थापित ऑपरेटिंग सिस्टम प्रति एक स्वैप विभाजन बनाने की आवश्यकता नहीं है।
आगे की पढाई