출력을 보면 cal 9 1752
다음과 같은 이상한 출력이 표시됩니다.
September 1752
S M Tu W Th F S
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
다음 이야기의 제목은 "1752년 9월 9일 설명”” 1990년대 초반 뉴스 목록에서 복사되어 다음 위치에 보관되었습니다.컴퓨터 시청자를 위한 흥미로운 콘텐츠 모음저자: David G. Wiseman(웨스턴 온타리오 대학교 컴퓨터 과학과 네트워크 관리자)
원래 일부 이전 버전 7 시스템에서 "cal" 명령을 작성한 사람의 코드에는 하나씩 버그가 있었습니다. 이는 malloc 변수가 12개의 추가 바이트를 0으로 덮어쓸 때 일부 잘못된 출력으로 표시되어 위에 표시된 이상한 달력 출력이 발생합니다.
이제 제정신을 가진 사람 중 누구도 1752년 9월 달력에 관심을 두지 않습니다.아이디어UNIX 시간은 1970년 초까지 시작되지 않기 때문에 날짜 1752는 UNIX에 존재하지 않습니다. 따라서 "cal"에 이 버그가 있다는 사실은 훨씬 나중에까지 알려지지 않았습니다. 그 당시에는 수천 개의 "cal" 복사본이 떠돌고 있었고 그 중 대부분은 바이너리였습니다. 모든 문제를 해결하기에는 너무 늦었습니다.
그래서 1975년 중반에 일부 AT&T 고위 관리들이 교황을 만났고 합의가 이루어졌습니다. 달력은 1752년 9월을 UNIX 현실과 일치시키기 위해 소급하여 변경되었습니다. 달력은 세기에 따라 바뀌기 때문에뒤로1752년 9월 14일부터 시작하여 이후의 모든 날짜는 영향을 받지 않습니다. 이전 날짜는 12일 연기되었습니다. 또한 버그를 기능으로 기록하기 위해 "cal"에 대한 매뉴얼 페이지를 수정했습니다.
9월 3일부터 9월 13일까지 11일간은 기록에서 아예 사라졌다. 역사서를 확인해보니 다행히 11일 동안 큰 일이 일어나지 않았다.
전반적으로 이 모든 사건은 전혀 사건이 아니었습니다. 그러다가 한 공상과학 작가가 이 이야기를 듣고 "천국의 선반"이라는 장편 공상과학 소설을 썼습니다. 제 생각엔 이 소설은 실제로 일어난 일과 거의 유사하지 않습니다.
출력 예외에 대한 실제 설명은 무엇입니까?
답변1
실제 이야기를 추적하려면 man cal
직접 실행해 보세요.
The Gregorian Reformation is assumed to have occurred in 1752 on the 3rd of September. By this time, most countries had recognized the reforma- tion (although a few did not recognize it until the early 1900’s.) Ten days following that date were eliminated by the reformation, so the cal- endar for that month is a bit unusual.
그런 다음, 귀하의 역사가 개략적이라면 계속해서 Wikipedia를 사용하여 작성자가 작성한 내용에 대한 정보를 얻으십시오.그레고리 언 달력그리고 전 세계적으로 채택된 역사는 다음과 같습니다.
그레고리력의 개편은 두 부분으로 구성되는데, 하나는 교황 그레고리오 시대에 사용했던 율리우스력의 개편이고, 다른 하나는 교회에서 부활절 날짜를 계산하기 위해 사용했던 음력 주기와 율리우스력의 개편이다.
[...]
1년의 평균 길이가 365.25일(365일, 6시간)에서 365.2425일(365일, 5시간, 49분, 12초)로 변경된 것 외에도 10분 단축됩니다. 1년에 48초로, 그레고리력 개혁에서도 과거에 누적된 이러한 길이의 차이를 다루었습니다.
[...]
그러나 개신교 개혁으로 인해 많은 서유럽 국가들은 처음에는 그레고리오 개혁을 따르지 않고 기존 체제를 유지했습니다. 결국 일관성을 위해 다른 나라들도 이를 따랐지만,율리우스력의 마지막 지지자들에게동유럽(러시아 및 그리스)20세기에 그레고리력 체계로 변경한 후, 1582년 이후 두 달력의 추가 누적 차이로 인해 달력에서 13일을 삭제해야 했습니다..
[...]
영국과 대영제국(현재 미국 동부 포함)은 1752년에 11일의 수정이 필요한 그레고리력을 채택했습니다. 1752년 9월 2일 수요일, 1752년 9월 14일 목요일이 이어졌습니다.
유닉스가 등장하여 1970년 1월 1일에 시작하도록 세계 시계를 재설정했을 때 재설정을 표시할 날짜를 선택하는 것 외에는 전체 혼란에 대해 할 수 있는 일이 거의 없었습니다. 전 세계 여러 국가에서 서로 다른 시기에 현재의 그레고리력 시스템을 채택했기 때문에 이 수정의 정확한 시기는 다소 임의적입니다.
그렇게까지 거슬러 올라가는 소프트웨어에서 날짜를 계산해야 하는 이유가 있다면 재설정보다 더 큰 문제가 발생할 것입니다! 달력의 역사는 놀라움으로 가득 차 있습니다!
답변2
여기 하나 있어요달력에 좋은 에세이(PDF) 에서는 일년 내내 부활절의 느린 변화로 인해 날짜 수정이 필요한 이유를 설명하고 여러 국가에서 언제 전환하는지 설명합니다.
페이지 904:
그[교황 그레고리오]는 또한 달력의 누적된 10일 오류를 수정하여 서기 1582년 10월 4일 목요일(구(율리우스력)의 마지막 날짜) 다음에 서기 1582년 10월 15일 금요일이 올 것이라고 선언했습니다. 새(그레고리력) 달력의 첫 번째 날입니다. 가톨릭 국가들은 이 규칙을 따랐지만 개신교 국가들은 이에 저항했습니다. 스페인, 포르투갈, 이탈리아는 즉시 이 규칙을 채택했고, 독일의 가톨릭 국가들도 마찬가지였습니다. 독일의 개신교 지역에서는 1700년까지 이를 채택하지 않았습니다. 영국과 그 식민지(포함)미국) 까지 기다리세요1752 화러시아는 1918년 혁명까지, 불가리아는 1920년까지 버텼다.
이 논문은 계속해서 천문학자들이 편집한 채택 날짜의 광범위한 목록을 인용하고 서로 다른 달력 시스템 간에 변환하는 방법을 간단한 방식으로 설명합니다.