기 타 Y2K 유사 문제 - 2038년 문제와 GPS WNRO
2019.11.02 20:56
1999년 12월 31일에서 2000년 1월 1일로 넘어가던 때 전세계는 Y2K 문제가 발생해 난리가 날꺼라고들 했었습니다.
아주 극소수의 분야에서만 문제가 발생했었고 대다수는 큰 문제없이 지나갔던것을 기억합니다.
비슷한 문제가 유닉스(리눅스) 시스템과 GPS에도 있습니다. 이름하여 각각 2038년 문제와 WNRO(Week Number Rollover)
먼저 유닉스 시스템을 살펴 보면 시간 표시를 32비트를 이용해 합니다. 따라서 UTC+00:00 기준 2038년 1월 19일 오전 3시 14분 07초(한국시간 2038년 1월 19일 오후 12시 14분 07초)가 되면 32비트로 표시되는 시간 정보가 01111111 11111111 11111111 11111111 이 됩니다. 그다음 초에 10000000 00000000 00000000 00000000 이 되어 컴퓨터는 현재 시간을 UTC+00:00 기준 1901년 12월 13일 20시 45분 52초로 표기해 엉망이 됩니다.
2038년이 먼 훗날처럼 생각되지만 오늘부터 19년 후 일이고 일로 하면 6653일 후의 일이며 1977년생이 61세부터 연금을 탄다고 가정할 때 2038년부터 연금을 수령하게 되는데, 만약 이들이 연금수령 예상액등을 조회할 경우 1970년부터 연금을 수령한다고 나올 수 있습니다. 태어나기전에 연금부터 수령하는 꼴...
시간 표시를 64비트로 하면 해결될거라 생각할 수 있지만 그렇게 하면 다른 프로그램들의 실행파일, 라이브러리등을 모조리 손봐야하는 엄청난 문제가 생깁니다.
참고로 64비트로 시간 표시를 하면 서기 292,277,026,596년까지 동일한 증상없이 사용 가능합니다. 292,277,026,596년이 읽기 힘들것 같아서 풀어 쓰면 서기 2922억 7702만 6596년입니다. 2922억 7702만 4577년 후의 일입니다. 현재까지의 우주 나이를 138억년으로 계산하면 21번 지나야 오는 엉겁의 시간입니다.
이를 잘 표현한 이미지입니다. 참고로 시간은 세계 표준시입니다.
이 문제는 리눅스 커널 4.18 이후에 해결되었습니다.
이번에는 GPS 시스템상 오류로 인해 발생하는 WNRO입니다.
GPS 시스템을 처음 설계할 때 1980년을 기준으로 주 표시를 1024비트를 이용해 표기했습니다. 따라서 1024주 후 즉 약 19.7년 후에 모든것이 리셋되어 다시 0이 됩니다.
1980년부터 19.7년이 지난 시점이 1999년에 한번 왔었고 지난 2019년 4월 7일에 두번째 주기가 도달해 문제가 발생했었습니다. 지난 4월 7일 이 문제를 해결하지 못한 구형 GPS 칩셋을 장착한 네비게이터등은 오류를 일으켰으나 uBlox 같은 GPS 칩셋이나 휴대전화에서는 미리 프로그램 패치를 해 문제없이 지나갔습니다.
Y2K 때도 마찬가지로 처음 프로젝트를 설계할 당시 미쳐 생각하지 못한 부분이거나 해당 시스템이 그렇게 오래 사용될 줄 예상 못해 생긴 문제입니다.
그러나 GPS 이후에 나온 위성 항법체계인 러시아의 글로나스나 유럽연합의 갈릴레오 그리고 중국의 베이도우(북극성) 시스템은 GPS에서 이미 겪었던 문제라 같은 문제는 발생하지 않습니다.
댓글 [7]
-
메리아 2019.11.03 19:23 -
모르면물어봐야지 2019.11.04 09:36 19년뒤면 우리나라는 농경시대로 돌아기에 괜찮겠군요
-
fftl 2019.11.03 19:33
보통 이 문제를 unix timestamp를 64bit로 확장하면 해결되는 것으로 생각하는데, wiki에 보면 생각보다 문제가 다양하네요.
https://en.wikipedia.org/wiki/Year_2038_problem
파일 시스템이나 자료 구조에서 날짜를 기록하는 필드가 32bit이고 unix timestamp와 연동되어 있다면, 모두 2038년에 문제를
일으킬 수 있다는군요.
-
회오리BOi 2019.11.04 01:57
설마 KMS 2038 이... (?)
-
마라톤2 2019.11.04 16:13
좋은 정보 감사합니다. ^_^
-
미리내i 2019.11.06 03:25
Y2K 문제 해결 한다고 1997년에 미국 Air Touch회사에 스카웃 되어 일 한적이 있는데 그때가 생각납니다.
Cobol 언어 만이 해결할 수 있다고 해서 5년간 일하다가 왔습니다. Cobol 좀 한다고 .....
그후 2000년대 중반인가 후반에 Air Touch 회사는 텔레풍켄과 M&A로 세계적인 화제가 되기도 했었죠. 역대 최대 인수합병이라고......
유닉스도 Cobol 언어를 토대로 만들어진 시스템인걸로 아는데.... Cobol 바탕으로 만들어진 C 언어로 해결하면 될 것도 같은데
애당초 컴퓨터를 만들때 2진법 말고 10진법으로 만들었으면 이런 일이 일어나지 않았을텐데.. 8 bit 를 1 byte 하면서 문제의 시작 ㅋㅋㅋㅋ
-
럭키데이 2019.11.06 21:09
19년 후면...정년퇴직 할때정도 되겠네...
편안히 "나는 자연인이다." 처럼 사는게 좋겠어요...ㅋ
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
3522 | 기 타| 크로미움 엣지에서 IDM 확장사용 [3] | 부는바람 | 2458 | 4 | 11-06 |
» | 기 타| Y2K 유사 문제 - 2038년 문제와 GPS WNRO [7] | asklee | 1993 | 1 | 11-02 |
3520 | 윈 도 우| OS 마이그레이션 [12] | gooddew | 4395 | 9 | 11-02 |
3519 | 윈 도 우| 윈도우 10 만능 복구 이미지 만들기 [49] | gooddew | 12801 | 28 | 11-02 |
3518 | 윈 도 우| 윈도우 10 디스크에서 바로 설치 하기 (WinToHDD) [11] | gooddew | 4267 | 10 | 10-28 |
3517 | 윈 도 우| 윈도우 10 디스크에서 바로 설치 하기 (윈도우 설치본) [14] | gooddew | 3812 | 15 | 10-27 |
3516 | 윈 도 우| Windows 10 CMD 화면 클릭하면 진행이 안 됩니다 [4] | suk | 1483 | 12 | 10-28 |
3515 | 윈 도 우| 윈빌더로 빌드시 빌드 부분 확인 하세요. [2] | 오늘을사는 | 1182 | 6 | 10-27 |
3514 | 소프트웨어| 윈도우 설치 빨리하기 - SmartFTP 설정 빨리하기 [8] | 박삿갓 | 3516 | 3 | 10-24 |
3513 | 윈 도 우| RSImageX 이용해서 wim 설치 동영상(youtube) [11] | gooddew | 3579 | 11 | 10-21 |
3512 | 기 타| 차단된 사이트 프로그램 설치없이 접속하는 팁! [17] | 보노보노아 | 6454 | 12 | 10-21 |
3511 | 소프트웨어| PE 유틸 업데이트 하기 - RSImageX 사용 [18] | suk | 7005 | 30 | 10-20 |
3510 | 윈 도 우| Visual Studio 2019 설치방법에 대하여 알아봅니다 [5] |
|
1978 | 4 | 10-15 |
3509 | 윈 도 우| 윈도우에 닷넷 3.5 설치하기 [12] | suk | 3848 | 19 | 10-11 |
3508 | 소프트웨어| 암호 관리 프로그램 KeePass를 파이어폭스에 적용해보기 (F... [12] | Waffen-SS | 1590 | 6 | 10-09 |
3507 | 소프트웨어| 빈 폴더 구조 복사와 파일을 0byte로 복사하기 [10] | 지후빠 | 2134 | 7 | 10-07 |
3506 | 소프트웨어| TC 검색된 파일들을 폴더 구조와 함께 복사하기 [9] | 지후빠 | 1583 | 5 | 10-04 |
3505 | 소프트웨어| VMware 구버젼(신버젼) 필요할 때... [6] | 디폴트 | 3072 | 10 | 09-23 |
3504 | 윈 도 우| 홈 에디션에 새 사용자 만들기 [5] | suk | 2082 | 3 | 09-18 |
3503 | 소프트웨어| TC 선택한 파일명으로 폴더 만들기, 이동하기 [16] | 지후빠 | 1493 | 7 | 09-14 |
-