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

in #kr7 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)

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

Sort:  

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

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

감사합니다

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

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

Coin Marketplace

STEEM 0.22
TRX 0.21
JST 0.035
BTC 91569.43
ETH 3174.28
USDT 1.00
SBD 3.07