ทำไมเวลา Unix ถึงเริ่มตั้งแต่ 1970-01-01 ทำไมไม่ 1971-01-01 หรือวันอื่น ๆ
ทำไมเวลา Unix ถึงเริ่มตั้งแต่ 1970-01-01 ทำไมไม่ 1971-01-01 หรือวันอื่น ๆ
คำตอบ:
ฉันจะไม่รู้จักคำตอบยกเว้น google อยู่ที่นั่นสำหรับฉัน:
จากที่นี่ (ต้องการสมัครฟรี):
Linux ปฏิบัติตามประเพณีที่กำหนดโดย Unix นับเวลาไม่กี่วินาทีนับตั้งแต่ "วันเกิด" อย่างเป็นทางการ - เรียกว่า "ยุค" ในแง่การคำนวณ - ซึ่งคือ 1 มกราคม 1970
คำอธิบายที่สมบูรณ์มากขึ้นสามารถพบได้ในนี้บทความสายข่าว มันอธิบายว่าวิศวกร Unix ยุคแรกเลือกวันนั้นโดยพลการเพราะพวกเขาจำเป็นต้องกำหนดวันที่สม่ำเสมอสำหรับการเริ่มต้นและวันปีใหม่ปี 1970 ดูเหมือนจะสะดวกที่สุด
Unix ไม่ได้เกิดในปี 1970
ยุค Unix คือเที่ยงคืนของวันที่ 1 มกราคม 1970 มันสำคัญที่ต้องจำไว้ว่านี่ไม่ใช่ "วันเกิด" ของ Unix - ระบบปฏิบัติการรุ่นคร่าวๆนั้นอยู่ในช่วงทศวรรษ 1960 แทนวันที่ถูกตั้งโปรแกรมเข้าสู่ระบบบางครั้งในช่วงต้นยุค 70 เท่านั้นเพราะสะดวกในการทำตาม Dennis Ritchie หนึ่งในวิศวกรที่ทำงานกับ Unix ที่ Bell Labs ในการเริ่มต้น
ฉันชอบคำถาม :-)
ให้ฉันพยายามตอบ (แหล่งที่มาของหลักสูตร: อินเทอร์เน็ต)
Unix Time แสดงด้วยจำนวนเต็ม 32 บิต (จำนวนเต็ม) ที่สามารถเป็นค่าบวกหรือค่าลบ (เซ็นชื่อ) Unix ได้รับการพัฒนาใน 60 และ 70 ดังนั้น "เริ่มต้น" ของ Unix Time ถูกตั้งค่าเป็น 1 มกราคม 1970 เวลาเที่ยงคืน GMT (เวลามาตรฐานกรีนิช) - วันที่ / เวลานี้ถูกกำหนดค่า Unix Time เป็น 0 นี่คือสิ่งที่รู้ เป็น Unix Epoch
จำนวนเต็มที่ลงนาม 32 บิตสามารถแทนตัวเลขทั้งหมดระหว่าง -2147483648 และ 2147483647 เนื่องจาก Unix Time เริ่มต้นที่ 0 ค่า Unix Time เชิงลบจะย้อนเวลากลับจาก Epoch และตัวเลขที่เป็นบวกเดินหน้าต่อไป ซึ่งหมายความว่า Unix Time มีช่วงเวลาจากค่า Unix Time ของ -2147483648 หรือ 20:45:52 GMT ในวันที่ 13 ธันวาคม 1901 ถึง Unix Time ค่า 2147483647 หรือ 3:14:07 GMT วันที่ 19 มกราคมในปี 2038 วันที่เหล่านี้แสดงถึงจุดเริ่มต้น ก่อนประวัติศาสตร์และสิ้นสุดเวลา Unix
เวลาสิ้นสุดของ Unix จะเกิดขึ้นในวันที่ 19 มกราคม 2038 03:14:07 GMT ในวันที่ 19 มกราคม 2038 03:14:08 GMT คอมพิวเตอร์ทุกเครื่องที่ยังคงใช้ Unix Time 32 บิตจะล้น สิ่งนี้เรียกว่า "ปัญหาปี 2038" บางคนเชื่อว่านี่จะเป็นปัญหาที่สำคัญกว่า "ปัญหาปี 2000" การแก้ไขปัญหาปี 2038 คือการจัดเก็บ Unix Time ในจำนวนเต็ม 64 บิต นี่กำลังดำเนินการอยู่ในระบบปฏิบัติการ 64 บิตส่วนใหญ่แล้ว แต่หลายระบบอาจไม่ได้รับการอัพเดตภายในปี 2581