Mengapa waktu Unix dimulai pada 1970-01-01?


Jawaban:


28

Saya tidak akan tahu jawabannya kecuali Google ada di sana untuk saya:

Dari Sini (perlu berlangganan gratis):

Linux mengikuti tradisi yang ditetapkan oleh Unix dalam menghitung waktu dalam hitungan detik sejak "ulang tahun" resminya, yang disebut "zaman" dalam istilah komputasi - yaitu 1 Januari 1970.

Penjelasan yang lebih lengkap dapat ditemukan di artikel Wired News ini . Ini menjelaskan bahwa para insinyur Unix awal memilih tanggal itu secara sewenang-wenang, karena mereka perlu menetapkan tanggal yang seragam untuk permulaan waktu, dan Hari Tahun Baru, 1970, tampaknya paling nyaman.


5

Unix tidak dilahirkan pada tahun 1970.

Masa Unix adalah tengah malam pada tanggal 1 Januari 1970. Penting untuk diingat bahwa ini bukan "ulang tahun" Unix - versi kasar dari sistem operasi ada sekitar tahun 1960-an. Sebaliknya, tanggal diprogram ke dalam sistem sekitar awal 70-an hanya karena nyaman untuk melakukannya, menurut Dennis Ritchie, salah satu insinyur yang bekerja pada Unix di Bell Labs saat awal.


Nyaman saat itu, tidak nyaman untuk pengembang di dunia sejak saat itu.
Chris Halcrow

3
@ ChrisHalcrow: apa yang akan Anda pilih sebagai waktu 0 jika Anda dmr? Dan bagaimana pilihan yang tidak nyaman bagi pengembang? Ketidaknyamanan ini karena mengukur waktu dalam istilah "manusia" (tahun, bulan, hari, jam / menit / detik, zona waktu, waktu siang hari) rumit, bukan karena beberapa (sewenang-wenang) $ t = 0 $ instan dipilih.
NickD

@NickD, prompt yang bagus untuk penjelasan dan poin yang bagus! Saya akan memilih 00:00:00 dari CE 0, karena saya yakin itu akan membuat hal-hal sedikit lebih mudah untuk dihitung. Tolong jelaskan apa itu 'dmr'? Ironisnya, fakta bahwa OP membutuhkan penjelasan mengapa tanggal ini dipilih menunjukkan bahwa secara inheren membingungkan bagi seseorang untuk memahami penggunaan 01/01/70 sebagai tanggal referensi!
Chris Halcrow

2
@ChrisHalcrow: dmr = Dennis Ritchie. Apakah Anda menghitung jumlah detik dari asal yang Anda pilih hingga hari ini? Berapa banyak bit yang dibutuhkan? PDP-11 memiliki register dan kata-kata 16-bit, tetapi memungkinkan Anda untuk mengelompokkan dua register dan dua kata untuk membuat register 32-bit dan kata-kata ganda untuk beberapa operasi. Itu memberi Anda +/- 68 tahun dari 0 waktu Anda (atau +136 tahun jika waktu Anda tidak ditandatangani - tetapi dmr memilih masuk). Pilihannya mungkin agak membingungkan saat pertama kali Anda melihatnya, tapi itu keputusan yang cukup jelas mengingat hal di atas ...
NickD

1
@NickD - penjelasan bagus! Ini harus menjadi bagian dari jawaban yang diterima - mengapa tidak memindahkan komentar Anda di sana, dan kami dapat menghapus komentar kami dari sini?
Chris Halcrow

1

Saya suka pertanyaan :-)

Biarkan saya mencoba untuk menjawabnya (sumber tentu saja: internet)

Waktu Unix diwakili oleh bilangan bulat 32 bit (bilangan bulat) yang bisa positif atau negatif (ditandatangani). Unix awalnya dikembangkan pada 60-an dan 70-an sehingga "awal" Unix Time ditetapkan menjadi 1 Januari 1970 pada tengah malam GMT (Greenwich Mean Time) - tanggal / waktu ini diberi nilai Waktu Unix sebesar 0. Inilah yang diketahui sebagai Unix Epoch.

Bilangan bulat bertanda 32 bit dapat mewakili bilangan bulat antara -2147483648 dan 2147483647. Karena Waktu Unix dimulai pada 0, nilai-nilai Waktu Unix negatif kembali pada zaman Epoch dan angka positif maju dalam waktu. Ini berarti bahwa Unix Time merentang dari nilai Unix Time -2147483648 atau 20:45:52 GMT pada 13 Desember 1901 hingga nilai Waktu Unix 2147483647 atau 3:14:07 GMT pada 19 Januari 2038. Tanggal-tanggal ini mewakili awal, tanggal pra-sejarah dan akhir Waktu Unix.

Akhir Waktu Unix akan terjadi pada 19 Januari 2038 03:14:07 GMT. Pada 19 Januari 2038 03:14:08 GMT semua komputer yang masih menggunakan 32 bit Unix Time akan meluap. Ini dikenal sebagai "Tahun 2038 masalah". Beberapa percaya ini akan menjadi masalah yang lebih signifikan daripada "masalah Tahun 2000". Perbaikan untuk masalah Tahun 2038 adalah menyimpan Waktu Unix dalam integer 64 bit. Ini sudah berlangsung di sebagian besar Sistem Operasi 64 bit tetapi banyak sistem mungkin tidak diperbarui pada tahun 2038.


5
Hanya satu paragraf dari ini yang benar-benar menjawab pertanyaan itu, dan itu agak tidak akurat (zamannya awalnya pada tahun 1971; dipindahkan kemudian)
Michael Mrozek


1
Itu benar Michael. Dari Wikipedia: Versi awal waktu Unix memiliki peningkatan bilangan bulat 32-bit pada kecepatan 60 Hz, yang merupakan laju jam sistem pada perangkat keras sistem Unix awal. Nilai 60 Hz masih muncul di beberapa antarmuka perangkat lunak sebagai hasilnya. Zaman juga berbeda dari nilai saat ini. Edisi pertama Unix Programmer's Manual tertanggal 3 November 1971 mendefinisikan waktu Unix sebagai "waktu sejak 00:00:00, 1 Januari 1971, diukur dalam enam puluh detik per detik".
Nikhil Mulley

@ Nikhil Saya masih belum mengerti mengapa 1970, hanya karena Unix dikembangkan saat itu? Kenapa tidak 1960? atau bulan yang berbeda hari yang berbeda?
Templar

@ Nikhil atau tidak masalah? Hanya bulan pertama hari pertama terlihat lebih baik dan itu dibuat pada tahun 1971 sehingga tahun 1970 akan terlihat lebih baik juga?
Templar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.