वर्ष २०३ the अंक की समस्या बहुत अधिक होने की संभावना क्या है ?
वर्ष २०३ the अंक की समस्या बहुत अधिक होने की संभावना क्या है ?
जवाबों:
मुझे एक अंतर्निहित लिनक्स सिस्टम में इस समस्या का सामना करना पड़ा है जो कि कुछ दीर्घकालिक क्रिप्टोग्राफिक प्रमाणपत्रों में 2038 से पहले की तारीखों को संभालने की आवश्यकता थी, इसलिए मैं कहूंगा कि इसकी पसंद आपके आवेदन डोमेन पर निर्भर करती है।
जबकि अधिकांश प्रणालियां 2038 से पहले अच्छी तरह से तैयार होनी चाहिए, यदि आप खुद को आज भविष्य में तारीखों की गणना करते हुए पाते हैं, तो आपको समस्या हो सकती है।
mktime
कॉल चुपचाप विफल हो रहा था।
मुझे लगता है कि यह एक महत्वपूर्ण समस्या होने जा रही है, 1999/2000 के Y2K मुद्दों की तुलना में बहुत अधिक खतरनाक है क्योंकि प्रभावित कोड आम तौर पर निचले स्तर (यह CTIME) है और इसलिए उन जगहों पर स्पॉट करना कठिन है जहां समय उस तरह से संग्रहीत किया जा रहा है।
आगे के मामलों को जटिल करने के लिए, तथ्य यह है कि वाई 2 के को नम स्क्वैब माना जाता था, इससे रनअप में होने वाली समस्या पर ध्यान आकर्षित करना मुश्किल हो जाएगा।
सांस्कृतिक संदर्भ:
कोरी डॉक्टरो, ओपन लाइसेंस के तहत लघु कथाएँ शुरू करने / प्रकाशन के लिए एक नया मॉडल आज़मा रहे थे, और मैंने उनमें से एक 2038 थीम ओ में से एक का सुझाव दिया, जिसे उन्होंने एपिक: http://craphound.com/?p=2337 में शानदार ढंग से किया।
64 बिट OS अंततः 2037 की समस्या के लिए अप्रासंगिक है। (CTIME 2038 के मुकाबले 2037 के करीब चलता है)।
सवाल ओएस की थोड़ी गहराई का नहीं है, बल्कि यह है कि ओएस कैसे स्टोर करता है। या डेटाबेस कॉलम समय को स्टोर करने के लिए कैसे चुनता है। या यह निर्देशिका सेवा समय सिंटैक्स विशेषता स्टोर बैक बैक में कैसे करती है।
लोगों की सोच से यह बहुत बड़ी समस्या है, क्योंकि यह 32 बिट टाइम काउंटर्स का उपयोग करने के लिए इतना स्थानिक और आम है।
प्रत्येक उदाहरण जो समय को संग्रहीत करता है, उसे पुन: संशोधित करने की आवश्यकता होती है, और सभी एपीआई के अपडेट किए गए, और सभी उपकरण जो इसे अपडेट करते हैं, साथ ही अपडेट भी करते हैं।
अमूर्त परतें जो आपको एक मानव पठनीय समय प्रारूप के माध्यम से समय निर्धारित करने देती हैं, बजाय बाहर लिखे कच्चे आंकड़ों के बजाय इसे आसान बनाती हैं, लेकिन यह केवल एक मामला है।
मुझे लगता है कि यह ज्यादातर लोगों की तुलना में बहुत बड़ा सौदा होने जा रहा है।
time_t
। यह वर्ष, महीने और दिन को एक 16-बिट मान में फ़ील्ड के रूप में संग्रहीत करता है: दिन के लिए 5 बिट्स, महीने के लिए 4, वर्ष के लिए 7 छोड़कर। 2107 1980 (FAT भूमि में वर्ष शून्य) + 2 ^ 7-1 है। अधिक मज़ा के लिए, एफएटी दिन के समय को दूसरे 16-बिट मान में उसी तरह संग्रहीत करता है, लेकिन यदि आप गणित करते हैं, तो आप पाते हैं कि आपको दिन के समय को स्टोर करने के लिए 17 बिट्स की आवश्यकता है। सेकंड के लिए एक बिट रिज़ॉल्यूशन छोड़ने से FAT इसके आसपास हो जाता है; FAT 2 सेकंड से कम के बदलाव को अलग नहीं कर सकता। आह, Microsoft, यह एक उबाऊ दुनिया आपकी अनावश्यक असंगतियों के बिना क्या होगा!
यह मेरी राय है, लेकिन यह समस्या 32 बिट काउंटर समस्या के कारण है, आज अधिकांश ओएस 64 बिट (कम से कम 64 बिट कंप्यूटर) पर समय को संभालने के लिए अपडेट किए जाते हैं, इसलिए मुझे लगता है कि सभी ओएस और सॉफ्टवेयर एक लंबा तैयार हो जाएगा २०३ only से पहले का समय, चलो २०२० कहते हैं। इसलिए आपको केवल समस्याएँ हो सकती हैं यदि २०३ let's में आप अभी भी २०२० से सॉफ़्टवेयर चला रहे हैं।
यह लगभग सभी मामलों में समस्या नहीं होगी। मुझे उम्मीद है।
पहले Y2K ब्लिट्ज के दौरान, जिसमें सॉफ्टवेयर और हार्डवेयर विक्रेताओं को अपने उत्पादों को "Y2K कंप्लेंट" के रूप में प्रमाणित करने की आवश्यकता होती थी, (मुझे याद है कि पीसी कनेक्शन पर नेटवर्क केबल प्रमाणित Y2K कंप्लेंट होने के कारण) बहुत सारी कंपनियों ने सभी चीजों का विस्तृत ऑडिट किया था। , भविष्य में घड़ियों की स्थापना और परीक्षण द्वारा।
उस समय, चूंकि परीक्षण की लागत इतनी अधिक थी, उन्होंने लगभग हमेशा कई तिथियों के साथ परीक्षण किया, जैसे कि 1/1/99 (कुछ डेवलपर्स ने 99 को एक संतरी के रूप में इस्तेमाल किया हो सकता है), 12/31/99, 1/1 /। 00, 2000 की छलांग, 1/19/38, और कई अन्य। एक थकाऊ सूची के लिए यहाँ देखें ।
इस प्रकार मेरा मानना है कि १ ९९९ के आसपास जो भी महत्वपूर्ण सॉफ्टवेयर था, उसमें २०३ but बग्स नहीं होंगे, लेकिन तब से लिखे गए नए सॉफ्टवेयर शायद अज्ञानी सैनिकों के हो सकते हैं। पूरे Y2K पराजय के बाद प्रोग्रामर आम तौर पर तारीख एन्कोडिंग मुद्दों के बारे में अधिक जागरूक हो जाते हैं, इसलिए यह उतना बड़ा प्रभाव होने की संभावना नहीं है जितना कि Y2K था (जो कि, अपने आप में एक एंटीक्लामेक्स का कुछ था)।
32 बिट सिस्टम तब भी चल रहा है, एक समस्या होगी।
#include <time.h>
#include <stdio.h>
int main() {
time_t t = (time_t)(1L << (sizeof(time_t)*8 - 9));
printf("%d\n", sizeof(time_t));
}
यह 9 के बजाय 1 होना चाहिए, लेकिन ctime बड़ी तारीख को नहीं संभालती है:
8 - Sun Jun 13 07:26:08 1141709097
मेरा सिस्टम (64 बिट) का समय 1 मिलियन वर्ष अधिक चल सकता है। समाधान 64 बिट्स के लिए सिस्टम को अद्यतन करना है।
पकड़ यह है कि कार्यक्रम इसे संभाल नहीं सकते हैं। विशेष रूप से पुराने, उचित और बनाए नहीं रखा। देवों का उपयोग निम्नलिखित तथ्यों के लिए किया जाता है:
int
32 बिट्स हैं (वास्तव में वे दूसरों के बीच 64-बिट सिस्टम पर 32 बिट्स के रूप में संरक्षित हैं क्योंकि यह माना गया था कि वे 32 बिट्स हैं:time_t
) सुरक्षित रूप से डाले जा सकते हैंint
लोकप्रिय FLOSS सॉफ्टवेयर में दोनों चीजें संभवत: 'कई आंखों की समीक्षा' के माध्यम से नहीं मिलेंगी। कम लोकप्रिय और उचित पर यह बड़े पैमाने पर लेखक पर निर्भर करेगा।
मुझे लगता है कि नि: शुल्क * निक्स दुनिया पर 2038 का ध्यान नहीं जाएगा, जबकि मैं "प्रॉपरटरी" प्लेटफॉर्म पर समस्या की उम्मीद करता हूं (यानी बड़ी संख्या में प्रॉपर सॉफ्टवेयर के साथ) - खासकर अगर कुछ क्रूटिकल पार्ट का रखरखाव नहीं किया जाएगा।
time_t
(या समतुल्य) 32 बिट OS पर होता है जबकि 32 बिट्स time_t
(या समतुल्य) 64 बिट OS पर होता है जबकि 64 बिट्स होता है। मुझे लगा कि कुछ सरलीकरण के साथ भी यह पर्याप्त रूप से स्पष्ट है।
यदि यह Y2K जैसा कुछ भी है, तो कुछ लोग पहले से ही प्रभावित हैं और सॉफ्टवेयर को बदल रहे हैं, लेकिन अधिकांश डेवलपर्स इसे 2030 के दशक में, शायद 2035 या इसके बाद तक अनदेखा करेंगे, जिस बिंदु पर बहुत काम किया जाएगा, और कोई भी पुराना K & R C को जानने के लिए और अभी तक बहुत कम पैसे के लिए अचानक से अनुबंध करने में सक्षम नहीं होगा। वास्तविक संक्रमण बहुत सारी चीजें दिखाएगा जो अभी तक नहीं किया गया है, शायद यह सब महत्वपूर्ण नहीं है।
Y2K समस्या चार के बजाय वर्ष का प्रतिनिधित्व करने वाले दो चार्टर्स थे।
कई प्रणालियों में 1900 से 2000 के बीच अंतर करने का कोई तरीका नहीं था क्योंकि उन्होंने केवल '00' संग्रहीत किया था।
लगभग सभी सिस्टम या तो अब वर्ष को संग्रहीत करने के लिए 4 वर्णों का उपयोग करते हैं, या वे किसी प्रकार के पुस्तकालय का उपयोग करते हैं।
तो इसके बजाय सभी वर्ष 10000 (Y10K) के बारे में चिंता करते हैं। ओएस और लाइब्रेरी लेखकों को छोड़कर ...