शटडाउन पर हार्डवेयर क्लॉक और सिस्टम क्लॉक के बीच संबंध [बंद]


1

मैं कर्नेल 3.10 के साथ Centos 7 का उपयोग कर रहा हूं और इसमें hwclock और chrony स्थापित और चल रहा है। यह लिखा है कि सिस्टम घड़ी को बूट समय पर हार्डवेयर घड़ी से सेट किया गया है। (यहाँ http://tldp.org/HOWTO/Clock-2.html )

"अन्य" सिस्टम घड़ी "है (कभी-कभी" कर्नेल घड़ी "भी कहा जाता है)   या "सॉफ्टवेयर क्लॉक") जो टाइमर पर आधारित एक सॉफ्टवेयर काउंटर है   बीच में। यह मौजूद नहीं है जब सिस्टम नहीं चल रहा है, तो यह है   आरटीसी (या कुछ अन्य समय स्रोत) से आरंभिक रूप से बूट होने के लिए   पहर।"

और यह init स्क्रिप्ट (जिसे systemd द्वारा प्रतिस्थापित किया गया था) या कर्नेल द्वारा ही (यहाँ पर) सेट किया जा सकता है https://wiki.gentoo.org/wiki/System_time ):

“आमतौर पर सिस्टम क्लॉक को सेटअप करने के लिए हार्डवेयर क्लॉक का उपयोग किया जाता है   बूट। यह कर्नेल द्वारा या एक बूट सेवा (init) द्वारा किया जा सकता है   स्क्रिप्ट)। "

हालांकि बाद में यह उल्लेख किया गया है कि आधुनिक कर्नेल पर (लेख थोड़ा पुराना लगता है) लिनक्स खुद को संभालता है (यहां) https://wiki.gentoo.org/wiki/System_time )।

"पर्याप्त रूप से आधुनिक कर्नेल (3.9 या नया) पर, लिनक्स हो सकता है   सिस्टम समय को स्वचालित रूप से सेट करने के लिए कॉन्फ़िगर किया गया है। "

मैंने / var / log / dmesg फ़ाइल की जाँच की और यह मेरा मामला लगता है, अर्थात् कर्नेल ने बूट पर RTC से सिस्टम क्लॉक सेट किया है।

2.596137] rtc_cmos 00:00: सिस्टम क्लॉक को 2018-05-08 14:49:58 UTC (1525790998) पर

हालाँकि शटडाउन समय में बूट टाइम के बारे में मुझे बहुत कम जानकारी मिली है (और मेरे लिए जैसा कि काफी विवादास्पद)। यह लिखा है (यहाँ https://wiki.gentoo.org/wiki/System_time ) उस सिस्टम क्लॉक को शटडाउन पर आरटीसी में वापस सेट किया गया है। क्योंकि बूट सिस्टम समय पर कर्नेल द्वारा सेट किया गया है, मैंने अनुमान लगाया कि शटडाउन पर RTC में सिस्टम टाइम सेट करने के लिए कर्नेल जिम्मेदार हो सकता है, लेकिन उस पर कोई निश्चित जानकारी नहीं मिल सकती है।

इसलिए मेरे सवाल हैं: क्या सिस्टम बंद होने से सिस्टम घड़ी से आरटीसी तक का समय निर्धारित होता है या इसके कुछ अपवाद हो सकते हैं? (अपवाद शायद कर्नेल संस्करण या विशेष झंडे की तरह) और यदि हां, तो इसके लिए कौन जिम्मेदार है, कर्नेल या एक स्क्रिप्ट?

वैसे मैंने सवाल पढ़ा हार्डवेयर घड़ी और सिस्टम घड़ी के बीच संबंध लेकिन मेरा सवाल थोड़ा अधिक विशिष्ट और इतना अलग है।

// ------------------------------------------------ -------------------------------------------------- -------------- // मेरा प्रश्न होल्ड पर है इसलिए मैं यहां लिख रहा हूं

बग चर्चा के अनुसार यहाँ (हालांकि थोड़ा पुराना) ( https://bugzilla.redhat.com/show_bug.cgi?id=753487 ) आरटीसी वास्तव में शटडाउन पर सिस्टम समय के लिए सेट है और यह कर्नेल द्वारा किया जाता है

hwclock --systohc को हर शटडाउन पर उपयोग किया जाता है, लेकिन यह नहीं है   अब और।

कर्नेल को पुन: असाइन करना।

ऐसा लगता है कि आरटीसी को सिस्टम टाइम मान सेट करने से संबंधित प्रश्न हल हो गए हैं।


ऐसा लगता है कि मुझे अपने प्रश्न का उत्तर मिल गया। बग चर्चा के अनुसार यहाँ (हालांकि थोड़ा पुराना) ( bugzilla.redhat.com/show_bug.cgi?id=753487 ) RTC वास्तव में सिस्टम टाइम पर सेट है और यह कर्नेल द्वारा किया जाता है
Dmitriy Kormulev

ध्यान रखें कि जो भी उत्तर आपको मिल रहा है वह वितरण विशिष्ट है। IOW ये ऑपरेशन यूजरस्पेस में शुरू किए गए हैं, न कि लिनक्स कर्नेल के नियंत्रण में। "यह कर्नेल द्वारा किया जाता है" - बेशक I / O है "किया हुआ" कर्नेल द्वारा, लेकिन उपयोक्ता से अनुरोध पर।
sawdust

चूरा आपके उत्तर के लिए धन्यवाद। आपने लिखा है कि "बेशक I / O कर्नेल द्वारा" किया गया "है, लेकिन यूजर्सस्पेस के अनुरोध पर।", क्या आपका मतलब है कि इस कर्नेल "I / O" को सक्षम करने के लिए उपयोगकर्ता द्वारा विशेष ध्वज सेट किया जाना है (हमारे मामले में RTC से सिस्टम टाइम तक)?
Dmitriy Kormulev

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