यूनिक्स के पास समय की अपनी अवधारणा क्यों है? युग क्या है और Y2038 समस्या क्या है?

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

यूनिक्स समय का उद्देश्य क्या है?

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

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

instagram viewer

जब तक आप गणितीय जीनियस नहीं होंगे तब तक आपके सिर में अनुवाद करना बहुत कठिन है। लेकिन यह अभी भी अधिक पठनीय विकल्पों जैसे कुछ फायदे हैं बुध, 21 अक्टूबर 2015 07:28:00 जीएमटी. आप एक नज़र में बहुत आसानी से दो यूनिक्स टाइमस्टैम्प ऑर्डर कर सकते हैं। यह आमतौर पर दो टाइमस्टैम्प के बीच के अंतर को पूरा करने के लिए भी तेज है। यह विशेष रूप से एक साथ नज़दीकी तारीखों के लिए सच है, जैसे कि आसन्न दिनों में।

युग के बारे में

इसलिए, यूनिक्स समय एक विशिष्ट बिंदु के बाद से सेकंड की कुल संख्या है। लेकिन उस समय क्या है? आईटी इस 00:00:00 यूटीसी पर 1 जनवरी 1970. इसे अक्सर यूनिक्स युग के रूप में जाना जाता है। जब उन्होंने यूनिक्स समय का आविष्कार किया, तो प्रोग्रामर्स ने इस तारीख को सुविधा के लिए चुना क्योंकि यह निकटतम दौर की तारीख थी।

आपने अच्छी तरह से इस तारीख को देखा होगा जब कुछ गलत हो गया है। यह स्पष्ट रूप से एक बग है, लेकिन एक जो बहुत ही अजीब लगता है, जब यह उस तिथि से पहले होता है जब हम में से कई पैदा हुए थे! यह पूरी तरह से समझने योग्य है, हालांकि, जब आप यूनिक्स समय के बारे में जानते हैं। यदि कोई सिस्टम टाइमस्टैम्प को प्रदर्शित करने की कोशिश कर रहा है, जिसका कोई मूल्य नहीं है, तो यह अक्सर 0 पर अनुवाद करेगा और परिणामी समय सही तारीख में होगा।

यूनिक्स समय डेटा प्रारूप

कड़ाई से बोलना, कोई एक नहीं है। मूल डेटा प्रकार 32-बिट पूर्णांक था, और यह अक्सर अधिक शक्तिशाली प्रणालियों में भी मामला बना रहता है।

यह डेटा प्रकार मान को 2 ^ 32 सेकंड में संग्रहीत करने की अनुमति देता है, जो कि 136 वर्षों से अधिक है। यह मान आमतौर पर हस्ताक्षरित है, जिसका अर्थ है कि यह नकारात्मक या सकारात्मक हो सकता है। तो, यह आमतौर पर युग के दोनों ओर 68 साल का प्रतिनिधित्व करता है यानी 1902-2038।

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

लेकिन इसका मतलब यह नहीं है कि यह सीमित समय अवधि समस्याओं के बिना है...

वर्ष 2038 की समस्या

Y2K बग (इतिहास में सबसे खराब प्रोग्रामिंग गलतियों में से एक) प्रभावित कंप्यूटर सिस्टम जो दो-अंकों के मान के रूप में वर्षों को संग्रहीत करता है। जब वर्ष 2000 आसपास आया, तो ऐसी प्रणालियों ने ऐसा व्यवहार किया जैसे कि यह 1900 हो। इस घटना में, यह आशंका के रूप में भयावह नहीं था, मुख्यतः क्योंकि कई लोगों ने अग्रिम तैयारी के लिए बहुत समय और प्रयास खर्च किया था।

इतिहास में 10 सबसे खराब प्रोग्रामिंग गलतियाँ

इसके अतीत में, विनाश को भी कोडित किया। थोड़े से खराब कोड के उदाहरणों के कारण बड़े स्तर पर आपदा आई। इतिहास में सबसे खराब प्रोग्रामिंग गलतियों में से 10 निम्नलिखित हैं।

यदि आप पिछले भाग में ध्यान दे रहे थे, तो आपको एक समान समस्या दिखाई दे सकती है जो यूनिक्स के समय को प्रभावित कर सकती है। खैर, यूनिक्स समय की अपनी एक डेटा समस्या है: Y2k38 समस्या। (यह अक्सर एक समस्या के रूप में संदर्भित किया जाता है, बग नहीं; शायद हम वर्ष २००० से अधिक आशावादी बन गए हैं!) जब २०३, में यूनिक्स का समय सचमुच समाप्त हो जाएगा, तो सिस्टम नई तारीखों को १ ९ ०२ या १ ९ .० मानेंगे। या संभवतः वे पूरी तरह से विफल होंगे।

कम से कम इस समस्या ने हमें नए साल की पूर्व संध्या पर आधी रात को नहीं मारा। 32-बिट यूनिक्स समय का अंतिम दूसरा 19 मार्च को पड़ेगा। आखिरकार, हम संभवतः 2038 तक अधिकांश प्रणालियों को अपग्रेड कर देंगे या फिर वैसे भी अप्रचलित हो जाएंगे।

कुछ उपयोगी टाइमस्टैम्प संसाधन

युग परिवर्तक साइट संभवतः सबसे व्यापक टाइमस्टैम्प कनवर्टर उपलब्ध है। यह वर्तमान यूनिक्स समय को वास्तविक समय में प्रदर्शित करके शुरू होता है — और इसके शीर्ष पर लगभग हर कल्पनीय विशेषता को जोड़ता है। इसका मुख्य उपयोग टाइमस्टैम्प और मानव-पठनीय तारीखों के बीच दोनों दिशाओं में परिवर्तित करने के लिए है।

दान के उपकरण उपयोगी वेब ऐप्स का एक विशाल संग्रह है, जिनमें से एक है टाइमस्टैम्प कनवर्टर. यह अधिक बुनियादी है, लेकिन इसकी बहुत ही साफ प्रस्तुति है और इसका उपयोग करना आसान है।

समय है एक और प्रस्तुत करता है, और भी न्यूनतर रूप। यह यूनिक्स समय सहित कई स्वरूपों में समय दिखाता है। इसमें इसके पृष्ठ शीर्षक में वर्तमान समय शामिल है जो उपयोगी है।

लिनक्स और मैकओएस पर, तारीख कार्यक्रम यूनिक्स टाइमस्टैम्प सहित तिथि / समय से निपटने के लिए मुख्य उपयोगिता है। बिना किसी तर्क के, इसे वर्तमान तिथि / समय को मानव-पठनीय प्रारूप में लौटाया जाता है:

$ तारीख
बुध फरवरी 10 12:28:30 जीएमटी 2021

यदि आपको यूनिक्स समय में वर्तमान दिनांक / समय की आवश्यकता है, तो उपयोग करें +% s बहस:

$ तारीख +% s
1612960114

आप एक मानव-पठनीय तिथि से टाइमस्टैम्प में उपयोग करके परिवर्तित कर सकते हैं डी यदि आपका संस्करण तारीख इसका समर्थन करता है। अधिकांश लिनक्स संस्करण डिफ़ॉल्ट रूप से चाहिए:

$ तारीख -d "जन 2 1970" +% s
82800

MacOS पर, तारीख एक अलग कार्यक्रम है, जिसके लिए अलग झंडे की आवश्यकता होती है:

$ तारीख -j -f "% b% d% Y% T" "जन ०२ १ ९ :00० ००:००:00" "+% s"
82800

दूसरी दिशा में जा रहे हैं, आप का उपयोग करके यूनिक्स टाइमस्टैम्प से परिवर्तित कर सकते हैं आर झंडा:

$ तारीख -r 1600000000
सूर्य 13 सितंबर 2020 13:26:40 बीएसटी

कुछ अन्य कार्यक्रम उपयोग करते हैं % s यूनिक्स समय से निपटने के लिए प्रारूप। उदाहरण के लिए, यदि आप यूनिक्स समय में किसी फ़ाइल का संशोधन दिनांक दिखाना चाहते हैं, तो का लिनक्स संस्करण रास, आप निम्नलिखित का उपयोग कर सकते हैं:

$ ls -l --time-style = +% s index.tmp.html
-rw-r - r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

प्रोग्रामिंग भाषाओं में यूनिक्स समय का उपयोग कैसे करें

PHP में है समय() फ़ंक्शन जो वर्तमान यूनिक्स टाइमस्टैम्प लौटाता है। आईटी इस तारीख() फ़ंक्शन अपने दूसरे तर्क के रूप में टाइमस्टैम्प लेता है:

$ php -r 'इको डेट ("वाई-एम-डी", समय ());'
2021-02-11

जावास्क्रिप्ट एक दिलचस्प तरीके से चीजों तक पहुंचता है। इसमें दिनांक। यूनिक्स युग के बाद से मिलीसेकंड की संख्या प्राप्त करने की विधि। बेशक, आप इसे 1,000 से विभाजित कर सकते हैं और परिणाम को सेकंड में बराबर यूनिक्स समय देने के लिए गोल कर सकते हैं:

> मठ
1613083012

यूनिक्स समय को समझना

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

इस तरह के युग और टाइमस्टैम्प जैसे अवधारणाओं को लिनक्स के साथ आरंभ करने का एक महत्वपूर्ण हिस्सा है। इस तरह के रूप में आवश्यक के बारे में और अधिक जानकारी प्राप्त करने के लिए रासबुनियादी लिनक्स कमांड के लिए हमारे गाइड की जाँच करें।

ईमेल
लिनक्स के साथ शुरू करने के लिए 9 बुनियादी कमांड

लिनक्स के साथ परिचित होना चाहते हैं? मानक कंप्यूटिंग कार्यों को सीखने के लिए इन मूल लिनक्स कमांड्स से शुरू करें।

संबंधित विषय
  • अनिर्दिष्ट
लेखक के बारे में
बॉबी जैक (27 लेख प्रकाशित)

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

बॉबी जैक से अधिक

हमारे न्यूज़लेटर की सदस्यता लें

टेक टिप्स, रिव्यू, फ्री ईबुक और एक्सक्लूसिव डील्स के लिए हमारे न्यूज़लेटर से जुड़ें!

एक और कदम…!

कृपया हमें आपके द्वारा भेजे गए ईमेल में अपने ईमेल पते की पुष्टि करें।

.