2038년 문제
조무위키
본 문서는 향후에 일어날지도 모르는 미래를 담고 있습니다. 이 문서의 내용은 디시 친구들이 미래에서 흘러들어온 전파를 수신하여 사실에 가깝게 적었습니다. 하지만 전파의 상태가 워낙 나빠 실현될지 안 될지는 모르겠습니다. |
32비트로 표현된 유닉스 시간이 1970년 1월 1일 00:00 (UTC)에서 2,147,483,647(231 - 1)초 지난 후인 2038년 1월 19일 03:14:08 (UTC)에 특정한 컴퓨터 소프트웨어에 이상이 발생하는 문제가 나타난다는 것이다.
32비트 시스템에서 시간 저장할때 쓰는 time_t형이 부호있는 32비트 정수여서 저 시간이 지나면 내부적으로 음수로 표현된다는거다. 부호 있는 32비트에서는 2147483647에 1을 더하면 -2147483648이 되서 1970년 또는 1901년을 가리킨다.
그러자고 time_t를 부호 없는 32비트로 바꾸면 2106년까지는 다룰 수 있는데 음수를 표기 못해서 상대값 등을 나타내는데 어려움이 있고, 64비트로 바꾸면 호환성에 이상이 생긴다. 물론 컴퓨터가 64비트 운영체제면 원래부터 time_t가 64비트니까 상관없다.
64비트에는 292,277,026,596년 문제가 있다. 이거랑 같은 원리인데 수천억 년 뒤의 문재이니 우리와는 상관이 없다.
Windows에서[편집]
9x 계열은 존재하지만, NT 계열은 그런 거 없이 2099년까지 설정 가능하다.
대신 NT 계열은 2100년이 되면 엄청난 렉이 발생한다.
디시위키에서 나중에 실제로 보자[편집]
1732458527
이게 2038년 1월 19일에 음수가 된다는 거다. 근데 그때까지 디키가 있을까..?
그 때 되면 거의 다 64 쓰지 않나..?