유닉스 타임과 2038년 문제 이야기

in kr •  6 years ago 

https://steemit.com/kr/@yani98/1970-1-1

[급질문]1970년1월1일이 무슨 의미가 있나요?

라고 질문을 올려주셨습니다

1970년은 뭘까요?

글을 보면 스팀잇서버의 시간표시에 대한 내용입니다

우선 결론부터 보면 스팀잇 서버에 기록되어 있는 시간

표시입니다

binary-3322478_1280.png

서버시간은 유닉스타임이라고...

합니다

협정 세계시(UTC)는 1972년 1월 1일부터

시행된 국제 표준시입니다.

협정 세계시를 세계 협정시라고 단어 순서를

바꾸어 표현하고 사용하는 경우도 많습니다.

UTC는 국제원자시와 윤초 보정을 기반으로

표준화되었습니다.

griffith-observatory-1642514_1920.jpg

세계시는 1972년 1월 1일 0시를 기점으로 사용합니다

곧 이 날 0시를 기준으로 "원자시"와 "원자초"를 적용하는데

원자초란 국제천문연맹 (IAU)이 1967년, 세슘

원자시계에 기본을 둔 "원자초" 시간단위입니다.

3000만년에 1초의 오차를 보이는 매우 정밀한 시계입니다

GMT 시간 기점은 1970년 1월 1일이고

UTC 시간 기점은 1972년 1월 1일입니다

그런데 UTC 기점보다 더 앞쪽 시간을 사용하고

있네요?

왜일까요?

그건... 유닉스(UNIX)가 1969년에 개발하기

시작하여 1973년에 AT&T 벨 연구소에서 처음

발표된 운영체제라서 그렇습니다

UTC의 약자 역시 국제 전기 통신 연합은 협정 세계시에 대한

통일된 약자를 원했으나, 영어권의 사람들과

프랑스어권의 사람들은 각각 자신의 언어로 된 약자인

CUT(Coordinated Universal Time)와

TUC(Temps Universel Coordonné)를 사용하길 원했습니다.

이 분쟁은 결국 두 언어 모두 C, T, U로 구성되어 있다는

것에 착안하여 UTC라는 약어를 탄생시켰습니다.

"UTC"는 보통 "Universal Time Code"이나

"Universal Time Convention"의 약어라 알려지기도

하는데 이는 틀린 것이라고 합니다.

32비트로 표현된 유닉스 시간은

1970년 1월 1일 00:00 (UTC)에서 2,147,483,647 (231 - 1)

지난 후인 2038년 1월 19일 03:14:08 UTC에

2038년 문제를 발생시킨다고하죠

year 2038 problem, Unix Millennium bug, y2k38

laptop-3317007_1920.jpg

라고

하는데 32비트운영체제의 버퍼오버플로 오류가 발생하게

된다고 하네요

해결책은 64비트운영체제로 바꾸면 된다고 합니다

background-3228704_1920.jpg

64비트인경우에는 1970년01월01일로 표시되지않고

1601년 01월 01일 00:00:00.0000000 (00000000 : 00000000)

이런 형태로 표시된다고 하네요

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

질문에 친절한 포스팅 감사합니다.
의문이 풀렸네요.

보팅.팔로우하고 갑니다.

감사합니다

!!! 힘찬 하루 보내요!
https://steemit.com/kr/@mmcartoon-kr/5r5d5c
어마어마합니다!! 상금이 2억원!!!!!!

공모하고 싶은데.. 그림실력이... ㅠㅠ