ปัญหาปี ค.ศ. 2038 (อังกฤษ: Year 2038 problem) เป็นปัญหาในการเก็บข้อมูลของคอมพิวเตอร์ที่เก็บเวลาในรูปแบบของจำนวนเต็มบิต 32 บิต โดยคอมพิวเตอร์รูปแบบนี้เก็บวันที่ตั้งแต่ 00:00:00 นาฬิกา ของวันที่ 1 มกราคม ค.ศ. 1970 ตามเวลาสากลเชิงพิกัด (เรียกเวลานี้ว่า ต้นยุคอ้างอิง) ทำให้คอมพิวเตอร์รูปแบบนี้ไม่สามารถถอดรหัสเวลาได้หลังจาก 03:14:07 นาฬิกา ของวันที่ 19 มกราคม ค.ศ. 2038 ซึ่งปัญหานี้คล้ายกับ ปัญหาปี ค.ศ. 2000 แต่ไม่ได้คล้ายกันในแง่ของการเก็บข้อมูล ซึ่งในกรณีนั้นเป็นการเก็บจำนวนเต็มของปี ค.ศ. ซึ่งเก็บด้วยจำนวนเต็ม 2 หลัก ทำให้เกิดความสับสนขึ้นเมื่อได้ผ่านปี ค.ศ. 2000 ไป โดยระบบปฏิบัติการแบบยูนิกซ์ แบบ 32 บิต จะเก็บวันที่ในรูปแบบของเวลายูนิกซ์ ซึ่งทำให้เมื่อถึงปี ค.ศ. 2038 จะเกิด"ข้อผิดพลาดสหัสวรรษของยูนิกซ์"
สาเหตุ
เวลาที่สามารถแสดงได้บนระบบเวลาของยูนิกซ์แบบจำนวนเต็ม 32 บิต คือ 03:14:07 ตามเวลาสากลเชิงพิกัด ในวันอังคารที่ 19 มกราคม ค.ศ. 2038 (พ.ศ. 2581) คิดเป็น 2,147,483,647 วินาที หลังจากเริ่มวันที่ 1 มกราคม ค.ศ. 1970 การจัดเก็บเวลาจะถูกย้อนกลับไปอีกครั้งและเก็บเป้นจำนวนเต็มลบ ซึ่งจะทำให้ระบบแสดงวันที่เป็นวันที่ 13 ธันวาคม ค.ศ. 1901 แทนที่จะเป็น 19 มกราคม ค.ศ. 2038 เนื่องจากเกิดบิตจำนวนเต็มล้น (overflow) ทำให้การนับเกิดผิดพลาด และจะกลับบิตเครื่องหมาย โดยจะเป็นจำนวนเต็มลบที่มากที่สุด (เกิดจากการนับขึ้นไปจนถึง 0) โดยปัญหาเช่นนี้เป็นปัญหาใหญ่ในระบบการคำนวณ
โดยจะมีโปรแกรมที่สามารถทำงานกับเวลาในอนาคตได้เพื่อแก้ปัญหานี้ต่อไป (เช่น โปรแกรมสามารถทำงานได้กับวันที่ในอีก 20 ปีข้างหน้า) โดยคาดว่าจะได้รับการพัฒนาภายในปี ค.ศ. 2018
ปัญหา
ในเดือนพฤษภาคม พ.ศ. 2549 ได้มีรายงานเกี่ยวกับการปรากฎของปัญหาปี ค.ศ. 2038 บนซอฟต์แวร์ของเอโอแอลเซิร์ฟเวอร์ ซึ่งซอฟต์แวร์ถูกแบบมาพร้อมกับความยากต่อการจัดการฐานข้อมูล โดยคำร้องขอจะไม่ผิดพลาด ซึ่งคำนวณเหตุการณ์พิเศษเช่นนี้ด้วยการระบุวันที่ที่จะเกิดการผิดพลาดในอนาคต เซิร์ฟเวอร์ได้ระบุถึงเวลาที่เกิดผิดพลาดหลังจากผ่านไป 1 พันล้านวินาที (ประมาณ 32 ปี) หลังจาก 21:27:25 นาฬิกา ในวันที่ 12 พฤษภาคม ค.ศ. 2006 หลังจากถึงเวลานั้นการคำนวณจะล้นและย้อนกลับไปยังเวลาในอดีต เหตุมาจากซอฟต์แวร์ผิดพลาด เมื่อปัญหาได้รับการแก้ไข เอโอแอลเซิร์ฟเวอร์ได้จัดการแก้ไขไฟล์และตั้งเวลาผิดพลาดไปยังค่าที่ต่ำกว่า
ผู้เล่นเกมหรือแอปพลิเคชันจะเกิดปัญหาเมื่อโปรแกรมทำงานผิดพลาด โดยสามารถแก้ไขเบื้องต้นด้วยการปรับเวลาไปยังวันที่ก่อน 19 มกราคม ค.ศ. 2038
ช่องโหว่ของระบบ
ระบบฝังตัว เป็นระบบที่ได้รับผลกระทบกับปัญหานี้มากที่สุดระบบหนึ่ง
ในการขนส่งเช่นเครื่องบินหรือรถยนต์ส่วนใหญ่จะใช้ระบบฝังตัว ซึ่งในระบบฝังตัวของยานยนต์นี้ รวมไปถึงระบบเบรกอัตโนมัติ (ABS), ระบบควบคุมอิเล็กทรอนิกส์ (ESC/ESP), ระบบควบคุมแรง (TCS) และการขับเคลื่อนอัตโนมัติแบบ 4 ล้อ ส่วนเครื่องบินจะได้รับผลกระทบในด้านของระบบระบุพิกัด รวมถึงระบบนำทางด้วย อย่างไรก็ดี ไม่ได้หมายความว่าทุกระบบจะต้องเกิดข้อผิดพลาดโดยที่จะไร้ทางแก้ไข ในหลาย ๆ ระบบไม่ต้องการใช้วันที่ หรืออาจต้องการเพียงความแตกต่างของวันเวลา ซึ่งจะทำให้ไม่เกิดปัญหามากเท่าที่ควร ทำให้กรณีนี้เป็นการออกมาตรฐานตามกฎหมายขึ้น เช่น ซีเออาร์บี (CARB)
ระบบฝังตัวถูกใช้ในการสื่อสารเช่นกัน รวมไปถึงโทรศัพท์มือถือและอุปกรณ์ที่ใช้ระบบอินเทอร์เน็ต (เช่น เราเตอร์, แอคเซสพอยต์ไวเลส) ซึ่งระบบเหล่านี้ต้องการใช้วันเวลาที่ถูกต้องอย่างสม่ำเสมอบนระบบปฏิบัติการแบบยูนิกซ์ ยกตัวอย่างเช่น ปัญหานี้จะทำให้อุปกรณ์ที่ใช้แอนดรอยด์ เกิดข้อผิดพลาดและไม่สามารถเปิดขึ้นมาใหม่ได้เมื่อเวลาเปลี่ยนไปในวันที่นั้น
ในปี ค.ศ. 2012 ระบบฝังตัวส่วนใหญ่จะใช้ไมโครโพรเซสเซอร์ 8 บิต หรือ 16 บิต ยกเว้นคอมพิวเตอร์ที่เริ่มใช้ 64 บิตกันแล้ว
แม้ว่าจะใช้เวลา 18 ถึง 24 เดือน ที่ระบบเทคโนโลยีคอมพิวเตอร์จะได้รับการปรับปรุงใหม่ แต่ระบบฝังตัวนั้นถูกออกแบบให้ใช้ได้อย่างทนทานนานหลายปี ซึ่งจะทำให้เกิดความเป็นไปได้ว่าจะมีระบบฝังตัวคงเหลือใช้อยู่จนถึงปี ค.ศ. 2038 ด้วย อีกทั้งมีความเป็นไปได้สูงที่จะไม่สามารถปรับปรุงซอฟต์แวร์ใหม่ในระบบฝังตัวเหล่านั้น
ฐานข้อมูลมายเอสคิวเอล ที่มีฟังก์ชัน UNIX_TIMESTAMP() จะคืนค่า 0 หลังจาก 03:14:07 น. ของวันที่ 19 มกราคม ค.ศ. 2038
โครงสร้างข้อมูลที่ได้รับผลกระทบ
ระบบโครงสร้างข้อมูลในปัจจุบันมีการจัดเก็บข้อมูลแบบ 32 บิตค่อนข้างมาก ด้านล่างนี้คือรายการของรูปแบบโครงสร้างข้อมูลที่ได้รับผลกระทบ ซึ่งเป็นโครงสร้างที่ใช้ระบบเวลายูนิกซ์
- ระบบจัดเก็บข้อมูล (ระบบจัดเก็บข้อมูลส่วนใหญ่ใช้ได้เพียง 32 บิต ในการแสดงเวลาในไอโนด)
- ไฟล์ไบนารี (ใช้การระบุเวลา 32 บิต)
- ฐานข้อมูล (ใช้การระบุเวลา 32 บิต)
- ภาษาที่ใช้เรียกฐานข้อมูล เช่น เอสคิวแอล (การใช้คำสั่ง UNIX_TIMESTAMP())
ตัวอย่างระบบที่ได้รับผลกระทบในส่วนของโครงสร้างข้อมูลที่มีการจัดเก็บแบบ 32 บิต
- ระบบที่ใช้ภาษาโคบอล ในยุค ค.ศ. 1970–1990 ซึ่งไม่สามารถเข้าได้กับระบบที่รองรับปัญหา ค.ศ. 2038
- โรงงานที่ถูกตั้งโปรแกรมไว้แล้ว
- อุปกรณ์ทางการแพทย์
- อุปกรณ์ทางการทหาร
ในส่วนของระบบที่ใช้โครงสร้างข้อมูลแบบ 32 บิต จะทำให้เกิดความเสี่ยง โดยความเสียหายจะขึ้นอยู่กับความล้มเหลวว่าเกิดผลกระทบมากน้อยเพียงใด
ดูเพิ่ม
อ้างอิง
- "The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition (definition of epoch)". IEEE and . . 2004. สืบค้นเมื่อ 7 March 2008.
- Diomidis Spinellis (2006). Code quality: the open source perspective. Effective software development serie in (illustrated ed.). . p. 49. ISBN .
- "The Future Lies Ahead". 28 June 2006. สืบค้นเมื่อ 19 November 2006.
- Weird "memory leak" problem in AOLserver 3.4.2/3.x 12 May 2006
- "It isn't cheating it's time travel".
- . คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2016-11-18. สืบค้นเมื่อ 2016-11-20.
- Issue 16899 - android - Year 2038 problem
- Trends in embedded software design
- "aj_blk: Year 2038 Bug". Ajoeblk.blogspot.in. สืบค้นเมื่อ 2013-03-12.
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
pyhapi kh s 2038 xngkvs Year 2038 problem epnpyhainkarekbkhxmulkhxngkhxmphiwetxrthiekbewlainrupaebbkhxngcanwnetmbit 32 bit odykhxmphiwetxrrupaebbniekbwnthitngaet 00 00 00 nalika khxngwnthi 1 mkrakhm kh s 1970 tamewlasaklechingphikd eriykewlaniwa tnyukhxangxing thaihkhxmphiwetxrrupaebbniimsamarththxdrhsewlaidhlngcak 03 14 07 nalika khxngwnthi 19 mkrakhm kh s 2038 sungpyhanikhlaykb pyhapi kh s 2000 aetimidkhlaykninaengkhxngkarekbkhxmul sunginkrninnepnkarekbcanwnetmkhxngpi kh s sungekbdwycanwnetm 2 hlk thaihekidkhwamsbsnkhunemuxidphanpi kh s 2000 ip odyrabbptibtikaraebbyuniks aebb 32 bit caekbwnthiinrupaebbkhxngewlayuniks sungthaihemuxthungpi kh s 2038 caekid khxphidphladshswrrskhxngyuniks aexniemchnaesdngthungwnthisungcathukyxnklbipyngcuderimtn emuxichkarekbkhxmulaebbcanwnetm 32 bit thiewla 03 14 08 n tamewlasakl inwnthi 19 mkrakhm kh s 2038 bthkhwamnixangxingkhristskrach khristthswrrs khriststwrrs sungepnsarasakhykhxngenuxhasaehtuewlathisamarthaesdngidbnrabbewlakhxngyuniksaebbcanwnetm 32 bit khux 03 14 07 tamewlasaklechingphikd inwnxngkharthi 19 mkrakhm kh s 2038 ph s 2581 khidepn 2 147 483 647 winathi hlngcakerimwnthi 1 mkrakhm kh s 1970 karcdekbewlacathukyxnklbipxikkhrngaelaekbepncanwnetmlb sungcathaihrabbaesdngwnthiepnwnthi 13 thnwakhm kh s 1901 aethnthicaepn 19 mkrakhm kh s 2038 enuxngcakekidbitcanwnetmln overflow thaihkarnbekidphidphlad aelacaklbbitekhruxnghmay odycaepncanwnetmlbthimakthisud ekidcakkarnbkhunipcnthung 0 odypyhaechnniepnpyhaihyinrabbkarkhanwn odycamiopraekrmthisamarththangankbewlainxnakhtidephuxaekpyhanitxip echn opraekrmsamarththanganidkbwnthiinxik 20 pikhanghna odykhadwacaidrbkarphthnaphayinpi kh s 2018pyhaineduxnphvsphakhm ph s 2549 idmiraynganekiywkbkarprakdkhxngpyhapi kh s 2038 bnsxftaewrkhxngexoxaexlesirfewxr sungsxftaewrthukaebbmaphrxmkbkhwamyaktxkarcdkarthankhxmul odykharxngkhxcaimphidphlad sungkhanwnehtukarnphiessechnnidwykarrabuwnthithicaekidkarphidphladinxnakht esirfewxridrabuthungewlathiekidphidphladhlngcakphanip 1 phnlanwinathi praman 32 pi hlngcak 21 27 25 nalika inwnthi 12 phvsphakhm kh s 2006 hlngcakthungewlannkarkhanwncalnaelayxnklbipyngewlainxdit ehtumacaksxftaewrphidphlad emuxpyhaidrbkaraekikh exoxaexlesirfewxridcdkaraekikhiflaelatngewlaphidphladipyngkhathitakwa phuelnekmhruxaexpphliekhchncaekidpyhaemuxopraekrmthanganphidphlad odysamarthaekikhebuxngtndwykarprbewlaipyngwnthikxn 19 mkrakhm kh s 2038chxngohwkhxngrabbrabbfngtw epnrabbthiidrbphlkrathbkbpyhanimakthisudrabbhnung inkarkhnsngechnekhruxngbinhruxrthyntswnihycaichrabbfngtw sunginrabbfngtwkhxngyanyntni rwmipthungrabbebrkxtonmti ABS rabbkhwbkhumxielkthrxniks ESC ESP rabbkhwbkhumaerng TCS aelakarkhbekhluxnxtonmtiaebb 4 lx swnekhruxngbincaidrbphlkrathbindankhxngrabbrabuphikd rwmthungrabbnathangdwy xyangirkdi imidhmaykhwamwathukrabbcatxngekidkhxphidphladodythicairthangaekikh inhlay rabbimtxngkarichwnthi hruxxactxngkarephiyngkhwamaetktangkhxngwnewla sungcathaihimekidpyhamakethathikhwr thaihkrniniepnkarxxkmatrthantamkdhmaykhun echn siexxarbi CARB rabbfngtwthukichinkarsuxsarechnkn rwmipthungothrsphthmuxthuxaelaxupkrnthiichrabbxinethxrent echn eraetxr aexkhessphxytiwels sungrabbehlanitxngkarichwnewlathithuktxngxyangsmaesmxbnrabbptibtikaraebbyuniks yktwxyangechn pyhanicathaihxupkrnthiichaexndrxyd ekidkhxphidphladaelaimsamarthepidkhunmaihmidemuxewlaepliynipinwnthinn inpi kh s 2012 rabbfngtwswnihycaichimokhrophressesxr 8 bit hrux 16 bit ykewnkhxmphiwetxrthierimich 64 bitknaelw aemwacaichewla 18 thung 24 eduxn thirabbethkhonolyikhxmphiwetxrcaidrbkarprbprungihm aetrabbfngtwnnthukxxkaebbihichidxyangthnthannanhlaypi sungcathaihekidkhwamepnipidwacamirabbfngtwkhngehluxichxyucnthungpi kh s 2038 dwy xikthngmikhwamepnipidsungthicaimsamarthprbprungsxftaewrihminrabbfngtwehlann thankhxmulmayexskhiwexl thimifngkchn UNIX TIMESTAMP cakhunkha 0 hlngcak 03 14 07 n khxngwnthi 19 mkrakhm kh s 2038okhrngsrangkhxmulthiidrbphlkrathbrabbokhrngsrangkhxmulinpccubnmikarcdekbkhxmulaebb 32 bitkhxnkhangmak danlangnikhuxraykarkhxngrupaebbokhrngsrangkhxmulthiidrbphlkrathb sungepnokhrngsrangthiichrabbewlayuniks rabbcdekbkhxmul rabbcdekbkhxmulswnihyichidephiyng 32 bit inkaraesdngewlainixond iflibnari ichkarrabuewla 32 bit thankhxmul ichkarrabuewla 32 bit phasathiicheriykthankhxmul echn exskhiwaexl karichkhasng UNIX TIMESTAMP twxyangrabbthiidrbphlkrathbinswnkhxngokhrngsrangkhxmulthimikarcdekbaebb 32 bit rabbthiichphasaokhbxl inyukh kh s 1970 1990 sungimsamarthekhaidkbrabbthirxngrbpyha kh s 2038 orngnganthithuktngopraekrmiwaelw xupkrnthangkaraephthy xupkrnthangkarthhar inswnkhxngrabbthiichokhrngsrangkhxmulaebb 32 bit cathaihekidkhwamesiyng odykhwamesiyhaycakhunxyukbkhwamlmehlwwaekidphlkrathbmaknxyephiyngidduephimpyhapi kh s 2000xangxing The Open Group Base Specifications Issue 6 IEEE Std 1003 1 2004 Edition definition of epoch IEEE and 2004 subkhnemux 7 March 2008 Diomidis Spinellis 2006 Code quality the open source perspective Effective software development serie in illustrated ed p 49 ISBN 0 321 16607 8 The Future Lies Ahead 28 June 2006 subkhnemux 19 November 2006 Weird memory leak problem in AOLserver 3 4 2 3 x 12 May 2006 It isn t cheating it s time travel khlngkhxmulekaekbcakaehlngedimemux 2016 11 18 subkhnemux 2016 11 20 Issue 16899 android Year 2038 problem Trends in embedded software design aj blk Year 2038 Bug Ajoeblk blogspot in subkhnemux 2013 03 12