यूनिक्स समय / आधिकारिक समय कहाँ मापा जाता है? [बन्द है]


20

अस्वीकृति

मैं सिर्फ २० मिनट के लिए .tack StackExchange साइटों की सूची के माध्यम से गया, यह पता लगाने की कोशिश कर रहा हूं कि यह कहां पोस्ट करना है। यदि आप किसी भी साइट को अधिक उपयुक्त जानते हैं, तो कृपया इस प्रश्न को वहां स्थानांतरित करें। मैं इसे यहां पोस्ट कर रहा हूं क्योंकि यूनिक्स समय ने मुझे सोच लिया।


इसलिए जैसा कि हम सभी जानते हैं कि यूनिक्स समय है और यूटीसी है। यूनिक्स समय बस टिक-टिक करता रहता है, सेकंड गिनता है - एक सेकंड प्रति सेकंड -, जबकि यूटीसी मानव-पठनीय प्रारूपों में समय रखने की कोशिश करता है जिसका उपयोग हम पृथ्वी के चरण के साथ इसके रोटेशन में करते हैं। ऐसा करने के लिए, UTC समय-समय पर लीप सेकंड सम्मिलित करता है।

चूंकि समय गुरुत्वाकर्षण बल के सापेक्ष होता है इसलिए समय का अनुभव करने वाली वस्तु, अन्य प्रकार के त्वरण और सापेक्ष गति के संपर्क में आती है, इससे 2 प्रश्न होते हैं। आइए पहले सरल पर जाएं: यूनिक्स का समय कहां मापा जाता है? यदि ऐलिस और बॉब वर्तमान समय से सहमत होना शुरू करते हैं तो 1467932496.42732894722748 होता है, जब वे एक ही स्थान पर होते हैं (निश्चित रूप से एक दूसरे को 9'192'631'770 के रूप में परिभाषित किया जा रहा है जो कि सीज़ियम -133 के दो ऊर्जा स्तरों के बीच संक्रमण के अनुरूप है। विश्राम के समय और 0 K पर), समुद्र के स्तर पर रहने वाले ऐलिस और पहाड़ों के ऊपर रहने वाले बॉब या उत्तरी ध्रुव पर रहने वाले ऐलिस और भूमध्य रेखा पर रहने वाले बॉब के कारण जुड़वा विरोधाभास का अनुभव करते हैं, वे किसी भी अधिक सहमत नहीं होंगे। तो यूनिक्स समय को ठीक कैसे परिभाषित किया जाता है?

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

लेकिन एक दूसरे को 9'192'631'770 विकिरण के रूप में परिभाषित किया गया है जो कि सीज़ियम -133 परमाणु के दो ऊर्जा स्तरों के बीच संक्रमण पर स्थित है, जबकि बाकी के 0 और के 0 और सीज़ियम -133 परमाणु पृथ्वी की कक्षा की परवाह नहीं करते हैं। तो UTC यह तय करता है कि एक छलांग दूसरी कहाँ लगाई जाए लेकिन पृथ्वी की कक्षा के चरण और कहीं परमाणु घड़ी द्वारा मापे गए समय के बीच एक मापा या अनुमानित बदलाव होना चाहिए । वह कहीं है?


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

3
मुझे लगता है कि आपके द्वारा पूछे जाने वाले प्रश्न का मतलब भौतिकी पर विषय पर होगा - लेकिन यह यूटीसी जैसे समय मानकों के बारे में एक प्रश्न है, और यूनिक्स समय के साथ इसका कोई लेना-देना नहीं है। इसे और इस और अन्य संबंधित प्रश्नों को भी देखें ।
डेविड जेड

7
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह भौतिकी, राजनीति और लौकिक मानकों के बारे में है, लेकिन यूनिक्स के बारे में नहीं।
माइकल होमर

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

जवाबों:


30

आपके शीर्षक प्रश्न का वास्तविक उत्तर नहीं है; यूनिक्स समय एक वास्तविक समय नहीं है, और कहीं भी "मापा" नहीं गया है। यह UTC का प्रतिनिधित्व है, एक गरीब के साथ क्योंकि UTC में कुछ क्षण हैं जो यह प्रतिनिधित्व नहीं कर सकता है। यूनिक्स समय हर दिन 86,400 सेकंड होने पर जोर देता है, लेकिन UTC लीप सेकंड के कारण इससे विचलित हो जाता है।

आपके व्यापक प्रश्न के अनुसार, ब्याज के चार महत्वपूर्ण समय हैं:

  1. UT1 (यूनिवर्सल टाइम), जिसकी गणना दुनिया भर के वेधशालाओं द्वारा की जाती है जो निश्चित तारों के संबंध में पृथ्वी के घूर्णन को मापते हैं। इन अवलोकनों और थोड़े से गणित के साथ, हमें पुराने ग्रीनविच मीन टाइम का अधिक आधुनिक संस्करण मिला, जो ग्रीनविच में रॉयल ऑब्जर्वेटरी में सौर दोपहर के क्षण पर आधारित था। यूनिवर्सल टाइम की गणना एक संगठन द्वारा की जाती है जिसे IERS (इंटरनेशनल अर्थ रोटेशन एंड रेफरेंस सिस्टम सर्विस, पूर्व में इंटरनेशनल अर्थ रोटेशन सर्विस) कहा जाता है।

  2. टीएआई (अंतर्राष्ट्रीय परमाणु समय), जिसे दुनिया भर में सैकड़ों परमाणु घड़ियों द्वारा रखा जाता है, राष्ट्रीय मानकों निकायों और ऐसे द्वारा बनाए रखा जाता है। टीएआई में योगदान देने वाली घड़ियों के रखवाले अपनी घड़ियों को एक-दूसरे की ओर चलाने के लिए समय हस्तांतरण तकनीकों का उपयोग करते हैं, व्यक्तिगत घड़ियों की किसी भी छोटी सी त्रुटि को रद्द करते हैं और एक कलाकारों की टुकड़ी का समय बनाते हैं; यह पहनावा TAI, इंटरनेशनल ब्यूरो ऑफ वेट्स एंड मेजर्स (BIPM) द्वारा प्रकाशित किया गया है, जो एसआई सिस्टम ऑफ यूनिट्स के स्टूवर्स हैं। समय के फैलाव के बारे में आपके प्रश्न का उत्तर देने के लिए, TAI को समुद्र के स्तर पर (वास्तव में, जियोइड पर, जो एक ही विचार का एक कट्टर संस्करण है) परमाणु समय परिभाषित किया गया है , और प्रत्येक घड़ी अपने स्वयं के ऊंचाई के प्रभावों के लिए सही है।

  3. यूटीसी (समन्वित यूनिवर्सल टाइम)। UTC को 1 जनवरी 1972 को TAI के दस सेकंड के बराबर सेट किया गया था, और उस तारीख के बाद से यह TAI के समान दर पर टिक जाता है, सिवाय इसके कि जब एक लीप सेकंड जोड़ा जाता है या घटाया जाता है। IERS 0.9 सेकंड के भीतर अंतर रखने के लिए (लगभग 0.6 सेकंड के भीतर, अभ्यास में, एक लीप सेकंड की घोषणा करने का निर्णय करता है; एक जोड़ा लीप सेकंड अंतर को -0.6 से +0.4 तक जाने का कारण बनता है)। सिद्धांत रूप में, लीप सेकंड सकारात्मक और नकारात्मक दोनों हो सकते हैं, लेकिन क्योंकि एसआई और टीएआई द्वारा स्थापित मानक की तुलना में पृथ्वी का रोटेशन धीमा हो रहा है, एक नकारात्मक छलांग दूसरा आवश्यक नहीं है और शायद कभी नहीं होगा।

  4. यूनिक्स समय, जो एकल संख्या के रूप में यूटीसी का प्रतिनिधित्व करने की पूरी कोशिश करता है। हर यूनिक्स समय जो कि 86,400 से अधिक है, मध्यरात्रि यूटीसी से मेल खाता है। चूंकि सभी यूटीसी दिन 86,400 सेकंड लंबे नहीं हैं, लेकिन सभी "यूनिक्स दिन" हैं, एक अपरिवर्तनीय अंतर है जिसे किसी भी तरह पैच करना होगा। एक जोड़ा छलांग दूसरे के लिए कोई यूनिक्स समय नहीं है। व्यवहार में, सिस्टम या तो कार्य करेगा, हालांकि पिछला दूसरा दो बार हुआ था (यूनिक्स टाइमस्टैम्प कूदने के बाद एक सेकंड, फिर आगे बढ़ना), या लीप स्मियरिंग जैसी तकनीक लागू करें जो लंबे समय तक युद्ध की अवधि को दोनों तरफ से आगे बढ़ाती है। एक छलांग दूसरी। या तो मामले में कुछ अशुद्धि है, हालांकि कम से कम दूसरा एक मोनोटोनिक है। दोनों मामलों में,और b , ba के बराबर नहीं है; यह बीए प्लस के बराबर है जो हस्तक्षेप करने वाले लीप सेकंड की संख्या है

चूंकि UT1, TAI, UTC, और IERS दुनिया भर में हैं, बहुराष्ट्रीय प्रयास हैं, कोई एकल "कहाँ" नहीं है, हालांकि IERS बुलेटिन पेरिस ऑब्जर्वेटरी से प्रकाशित होते हैं और BIPM भी पेरिस में आधारित है, यह उत्तर है। एक संगठन जिसे सटीक, ट्रेस करने योग्य समय की आवश्यकता होती है, वह अपने टाइमबेस को "UTC (USNO)" जैसे कुछ के रूप में बता सकता है, जिसका अर्थ है कि उनका टाइमस्टैम्प UTC में है और वे उस समय से यूएस नेवल ऑब्जर्वेटरी में व्युत्पन्न हैं, लेकिन समस्याओं को देखते हुए मैंने यूनिक्स समय के साथ उल्लेख किया है, यह मूल रूप से सटीक के उस स्तर के साथ असंगत है - वास्तव में सटीक समय से निपटने वाले किसी भी व्यक्ति के पास यूनिक्स समय का विकल्प होगा।


1
आपने right/ओल्सन प्रणाली में टाइमज़ोन के अस्तित्व की अनदेखी की है , और वे कैसे मानते हैं time_t
JdeBP

1
@JdeBP मैं वास्तव में उस के बारे में नहीं सुना था। मुझे लगता है कि यह यूनिक्स समय कहलाने के लिए थोड़ा संदिग्ध है, जब यह स्पष्ट रूप से पोसिक्स और लंबे समय से चले आ रहे सम्मेलन दोनों के खिलाफ जाता है, लेकिन यह वैसे भी बहुमूल्य जानकारी है। शायद आप इसके बारे में एक जवाब जोड़ सकते हैं?
जूल

1
आम लोगों के लिए अत्यधिक सटीक समय स्रोत द्वारा प्राप्त करने का सबसे आसान तरीका एक जीपीएस रिसीवर है। उपग्रहों पर लगी घड़ियों को TAI से सिंक्रनाइज़ किया जाता है और सिग्नल लगभग 10 (s (बिना सुधार के, सटीक होने के साथ इसे 10⁻¹⁰ तक सुधारा जा सकता है)।
जान हुदेक

1
@ जानहुडेक ऐसा नहीं है कि आम लोग 10⁻¹⁰ या 10⁻¹⁰ की सटीक घड़ी के बीच का अंतर बता सकते हैं।
जेरिट g'१६ को

1
सिर्फ इस बात पर एक संकेत कि UNIX में लीप सेकंड सपोर्ट शामिल क्यों नहीं है। ऑस्टिन ग्रुप के टेलीकांफ्रेंस में इस पर कई बार चर्चा हुई है और इसका नतीजा यह हुआ है कि लीप सेकंड के लिए समर्थन को जोड़ने से अधिक समस्याएं पैदा हो जाएंगी।
विद्वान

12

घड़ी का समायोजन IERS द्वारा समन्वित है। वे आवश्यकतानुसार समय की धारा में दूसरी छलांग लगाने का समय निर्धारित करते हैं।

से एनटीपी Timescale और लीप सेकंड

अंतरराष्ट्रीय पृथ्वी रोटेशन सेवा पेरिस वेधशाला में (IERS) UT1 (नाविक) की timescale पृथ्वी रोटेशन में अनियमित रूपों के लिए सही निर्धारित करने के लिए USNO और अन्य वेधशालाओं द्वारा प्रदान की खगोलीय प्रेक्षण उपयोग करता है।

मेरे ज्ञान का सबसे अच्छा करने के लिए 23:59:60 (लीप सेकंड) और अगले दिन 00:00:00 यूनिक्स समय में एक ही दूसरा माना जाता है।


8

UNIX चलाने के लिए आपके कंप्यूटर पर UNIX का समय मापा जाता है।

यह उत्तर आपको यह जानने की उम्मीद करने जा रहा है कि कोऑर्डिनेटेड यूनिवर्सल टाइम (यूटीसी), इंटरनेशनल एटॉमिक टाइम (टीएआई), और एसआई दूसरे क्या हैं। उन्हें समझाते हुए यूनिक्स और लिनक्स स्टैक एक्सचेंज के दायरे से परे है। यह फिजिक्स या एस्ट्रोनॉमी स्टैक एक्सचेंज नहीं है।

हार्डवेयर

आपके कंप्यूटर में विभिन्न ऑसिलेटर होते हैं जो घड़ियों और टाइमर को चलाते हैं। वास्तव में इसकी वास्तुकला के आधार पर कंप्यूटर से कंप्यूटर में क्या भिन्नता है। लेकिन आमतौर पर, और बहुत सामान्य शब्दों में:

  • कहीं न कहीं एक प्रोग्रामेबल इंटरवल टाइमर (PIT) है, जिसे दिए गए दोलनों की संख्या की गणना करने और केंद्रीय प्रसंस्करण इकाई में एक बाधा को ट्रिगर करने के लिए प्रोग्राम किया जा सकता है।
  • केंद्रीय प्रोसेसर पर एक चक्र काउंटर है जिसे बस प्रत्येक अनुदेश चक्र के लिए 1 गिना जाता है जिसे निष्पादित किया जाता है।

ऑपरेशन का सिद्धांत, बहुत व्यापक शब्दों में

ऑपरेटिंग सिस्टम कर्नेल पीआईटी का उपयोग टिक बनाने के लिए करता है । यह पीआईटी को फ्री-रन करने के लिए सेट करता है, एक बार के अंतराल के लिए दोलनों की सही संख्या की गिनती करता है, कहता है, एक सेकंड का एक सौवां भाग, एक बाधा उत्पन्न करता है, और फिर स्वचालित रूप से फिर से जाने के लिए गिनती रीसेट कर रहा है। इस पर भिन्नताएं हैं, लेकिन संक्षेप में यह एक निश्चित आवृत्ति के साथ एक टिक अवरोध पैदा करता है।

सॉफ्टवेयर में, कर्नेल हर टिक का एक काउंटर बढ़ाता है। यह टिक आवृत्ति को जानता है, क्योंकि इसने पीआईटी को पहले स्थान पर क्रमादेशित किया था। तो यह जानता है कि एक सेकंड में कितने टिक होते हैं। इसका उपयोग यह जानने के लिए कर सकते हैं कि सेकंड गिनने वाले काउंटर को कब बढ़ाया जाए। यह उत्तरार्द्ध "यूनिक्स टाइम" का कर्नेल विचार है। यह, वास्तव में, प्रति एसआई सेकंड की दर से ऊपर की ओर गिनती करता है अगर अपने उपकरणों के लिए छोड़ दिया जाता है।

चार चीजें इसे जटिल बनाती हैं, जिन्हें मैं बहुत सामान्य शब्दों में प्रस्तुत करने जा रहा हूं।

हार्डवेयर सही नहीं है। एक पीआईटी जिसकी डेटा शीट कहती है कि इसमें एन हर्ट्ज़ की एक थरथरानवाला आवृत्ति है, इसके बजाय स्पष्ट परिणाम के साथ (कहना) एन .00002 हर्ट्ज़ की आवृत्ति हो सकती है ।

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

एप्लिकेशन सॉफ़्टवेयर में कर्नेल के वर्तमान समय को बदलने की क्षमता है। यह वैल्यू को स्टेप कर सकता है या वैल्यू को स्लीव कर सकता है । स्लीविंग में टिकों की संख्या को समायोजित करना शामिल है जिन्हें सेकंड काउंटर को बढ़ाने के लिए जाना पड़ता है। तो सेकंड काउंटर जरूरी SI प्रति एक की दर से गणना नहीं करता है , यहां तक ​​कि सही दोलक भी। स्टेपिंग में सेकंड काउंटर में बस एक नया नंबर लिखना शामिल है, जो कि आमतौर पर 1 एसआई सेकंड तक नहीं होता है क्योंकि अंतिम दूसरा टिक जाता है।

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

सी भाषा और POSIX

सी भाषा के मानक पुस्तकालय एक अपारदर्शी प्रकार, के मामले में समय का वर्णन करता है time_t, एक संरचना प्रकार tmविभिन्न निर्दिष्ट क्षेत्रों के साथ, और जैसे विभिन्न पुस्तकालय कार्यों time(), mktime(), और localtime()

सी भाषा: संक्षेप में ही केवल गारंटी देता है कि time_tउपलब्ध में से एक है संख्यात्मक डेटा प्रकार और calculate समय मतभेद के केवल विश्वसनीय तरीका है कि difftime()कार्य करते हैं। यह POSIX मानक है जो कड़ी गारंटी प्रदान करता time_tहै जो वास्तव में पूर्णांक प्रकारों में से एक है और यह एपच के बाद से सेकंड गिना जाता है । यह POSIX मानक भी है जो timespecसंरचना प्रकार को निर्दिष्ट करता है।

time()समारोह कभी कभी एक सिस्टम कॉल के रूप में वर्णित किया गया है। वास्तव में, यह आजकल काफी समय से कई प्रणालियों पर अंतर्निहित सिस्टम कॉल नहीं है। FreeBSD पर, उदाहरण के लिए, अंतर्निहित सिस्टम कॉल है clock_gettime(), जिसमें विभिन्न "क्लॉक" उपलब्ध हैं जो सेकंड या सेकंड + नैनोसेकंड में विभिन्न तरीकों से मापते हैं। यह वह सिस्टम कॉल है जिसके द्वारा एप्लिकेशन सॉफ्टवेयर कर्नेल से UNIX टाइम पढ़ता है। (एक मिलान clock_settime()प्रणाली कॉल उन्हें इसे स्थानांतरित करने की अनुमति देती है और एक adjtime()सिस्टम कॉल उन्हें इसे सुलाने की अनुमति देता है।)

बहुत से लोग POSIX मानक को बहुत निश्चित और सटीक दावों के साथ इधर-उधर कर देते हैं। ऐसे लोगों के पास, अधिक बार नहीं, वास्तव में पोसिक्स मानक नहीं पढ़ा जाता है। जैसा कि इसका औचित्य निर्धारित होता है, "सेकंड के बाद से सेकंड" की गिनती का विचार, जो कि मानक उपयोग करता है वाक्यांश है, जानबूझकर यह निर्दिष्ट नहीं करता है कि पॉसिक्स सेकंड एसआई सेकंड के समान लंबाई है, और न ही इसका परिणाम है gmtime()कि "आवश्यक" UTC, इसकी उपस्थिति के बावजूद "। POSIX मानक जानबूझकर हैइतना पर्याप्त है कि यह एक UNIX प्रणाली के लिए अनुमति देता है (जहां) प्रशासक जाता है और मैन्युअल रूप से उनके होने के एक सप्ताह बाद घड़ी को फिर से सेट करके लीप सेकंड समायोजन को ठीक करता है। वास्तव में, तर्क यह बताता है कि सिस्टम को समायोजित करने के लिए यह जानबूझकर काफी ढीला है जहां घड़ी को वर्तमान यूटीसी समय के अलावा कुछ समय के लिए जानबूझकर गलत तरीके से सेट किया गया है

UTC और TAI

कर्नेल से प्राप्त UNIX समय की व्याख्या अनुप्रयोगों में चल रहे पुस्तकालय दिनचर्या तक है। POSIX कर्नेल के समय और एक "टूटे हुए समय" के बीच एक पहचान निर्दिष्ट करता है struct tm। लेकिन, जैसा कि डैनियल जे। बर्नस्टीन ने एक बार बताया था, मानक के 1997 संस्करण ने इस पहचान को शर्मनाक तरीके से गलत कर दिया, जिससे ग्रेगोरियन कैलेंडर के लीप ईयर नियम (कुछ ऐसा जो स्कूली बच्चे सीखते हैं) को गड़बड़ कर दिया, ताकि वर्ष 2100 से गणना में गलती हो। "पालन की तुलना में उल्लंघन में अधिक सम्मान" एक वाक्यांश है जो आसानी से मन में आता है।

और वास्तव में यह है। कई सिस्टम आजकल आर्थर डेविड ओल्सन द्वारा लिखित लाइब्रेरी रूटीन पर इस व्याख्या को आधार बनाते हैं, जो कुख्यात "ओल्सन टाइमज़ोन डेटाबेस" से परामर्श करते हैं, आमतौर पर डेटाबेस फ़ाइलों के तहत इनकोड किया गया है /usr/share/zoneinfo/। ओल्सन प्रणाली के दो तरीके थे:

  • कर्नेल की "सेकंड के बाद की अवधि" को 1970-01-01 00:00:00 UTC के बाद से UTC सेकंड की गिनती करने के लिए माना जाता है, केवल कुछ सेकंड के लिए। यह posix/ओल्सन टाइमज़ोन डेटाबेस फ़ाइलों के सेट का उपयोग करता है । सभी दिनों में 86400 कर्नेल सेकंड होते हैं और एक मिनट में कभी भी 61 सेकंड नहीं होते हैं, लेकिन वे हमेशा एक एसआई सेकंड की लंबाई नहीं होते हैं और लीप सेकंड होने पर कर्नेल घड़ी को स्लीपिंग या स्टेपिंग की आवश्यकता होती है।
  • 1970-01-01 00:00:10 TAI के बाद से कर्नेल की "सेकंड्स द एपोकॉच" को TAI सेकंड में गिना जाता है। यह right/ओल्सन टाइमज़ोन डेटाबेस फ़ाइलों के सेट का उपयोग करता है । कर्नेल सेकंड 1 सेकंड लंबे होते हैं और कर्नेल घड़ी को लीप सेकंड के लिए समायोजित करने के लिए कभी भी स्लीव या स्टेपिंग की आवश्यकता नहीं होती है, लेकिन टूटे हुए समय में 23:59:60 जैसे मान हो सकते हैं और दिन हमेशा 86400 कर्नेल सेकंड लंबे नहीं होते हैं।

एम। बर्नस्टीन ने अपने daemontoolsटूलसेट सहित कई उपकरण लिखे, जिनकी आवश्यकता थी right/क्योंकि उन्होंने time_t1970-01-01 00:00:00 टीएआई के बाद से टीएआई सेकंड प्राप्त करने के लिए केवल 10 जोड़ा । उन्होंने इसे मैनुअल पेज में दर्ज किया।

इस आवश्यकता को (शायद अनजाने) जैसे उपकरण सेट द्वारा विरासत में मिला था daemontools-encoreऔर runitऔर फ़ेलिक्स वॉन लेटनर के द्वारा libowfat। उपयोग बर्नस्टीनmultilog , Guentermultilog , या पेपsvlogd एक ओल्सन के साथ posix/विन्यास, उदाहरण के लिए, और TAI64N timestamps के सभी के पीछे 26 सेकंड (इस लेखन के समय) हो जाएगा वास्तविक ताई दूसरा 1970-01-01 00:00:10 के बाद से गिनती ताई।

लॉरेंट बर्कोट और मैंने इसे एस 6 और नोश में संबोधित किया, यद्यपि हमने अलग-अलग दृष्टिकोण अपनाए। एम। बरकोट का tai_from_sysclock()समय-संकलन ध्वज पर निर्भर करता है। nosh टूल जो TAI64N में काम करते हैं TZऔर TZDIRपर्यावरण वैरिएबल को ऑटो-डिटेक्ट posix/और right/यदि वे कर सकते हैं, को देखते हैं।

दिलचस्प है, FreeBSD दस्तावेज़ time2posix()और posix2time()फ़ंक्शन जो TAI सेकंड के right/साथ ओल्सन मोड के बराबर की अनुमति देते हैं time_t। वे स्पष्ट रूप से सक्षम नहीं हैं, हालांकि।

एक बार फिर…

UNIX का समय आपके कंप्यूटर के हार्डवेयर में निहित ऑसिलेटर्स द्वारा आपके कंप्यूटर को UNIX चलाने पर मापा जाता है। यह SI सेकंड का उपयोग नहीं करता है; यह यूटीसी नहीं है, भले ही यह सतही रूप से समान हो; और यह जानबूझकर आपकी घड़ी को गलत होने की अनुमति देता है।

आगे की पढाई

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