Tahun 2020 merupakan tahun yang penting bagi Unix: sistem operasi aslinya genap berusia 50 tahun di awal tahun. Waktu Unix, juga dikenal sebagai "tanggal epoch", adalah jumlah detik yang telah berlalu sejak 1 Januari 1970. Namun, apa yang dikhawatirkan para pengembang kernel tentang peringatan 50 tahun Unix?

Meskipun beberapa perkembangan awal Unix mendahului dimulainya "era" resminya, 1 Januari 1970 tetap menjadi titik nol dalam waktu POSIX. Oleh karena itu, dengan dimulainya 1 Januari 2020, platform ini resmi berusia 50 tahun.
Waktu Unix versus waktu manusia
Dalam skala waktu manusia, 50 tahun adalah waktu yang lama. Dalam skala waktu Unix, 50 tahun bukanlah sesuatu yang istimewa, dan 43 tahun pun tidak kalah signifikan. Sistem Unix (termasuk Linux) menyimpan nilai tanggal dan waktu sebagai jumlah detik yang telah berlalu sejak 1970-01-01 00:00:00 UTC, ditulis dalam 32 bit. Untuk menentukan berapa detik telah berlalu sejak saat itu, dan karenanya nilai waktu Unix saat ini, Anda dapat menjalankan perintah:
$ tanggal +%s
1576883876
Argumen %s pada perintah tanggal menyebabkan tanggal dan waktu saat ini ditampilkan sebagai jumlah detik sejak 1970-01-01.

Berapa tanggal maksimum yang dapat disimpan sistem? Unix?
Untuk memahami berapa banyak waktu yang dapat disimpan oleh sistem Unix, Anda perlu memperkirakan kapasitas bidang 32-bit. Perhitungannya dapat dilakukan sebagai berikut:
$ gema '2^32' | bc
4294967296
Namun, karena Unix memperbolehkan angka negatif untuk disimpan, satu bit dicadangkan untuk tanda, sehingga mengurangi nilai waktu menjadi:
$ gema '2^31' | bc
2147483648
Dan karena penomoran Unix dimulai dari 0, artinya kita memiliki 2.147.483.648 nilai, tetapi nilai terbesarnya adalah 2.147.483.647—nilai tanggal dan waktu Unix tidak boleh melebihi angka ini. Sama seperti odometer mobil yang tidak boleh menunjukkan jarak lebih dari 999.999 kilometer—tambahkan 1, dan nilainya akan kembali ke nol.
Berapa lama setahun dalam detik?
Jumlah detik dalam setahun dapat dihitung sebagai berikut:
$ expr 24 * 60 * 60 * 365
31536000
Pada tahun kabisat, satu hari lagi ditambahkan:
$ expr 24 * 60 * 60 * 366
31622400

Bagaimana Unix menampilkan ulang tahunnya yang ke-50?
Pada tanggal 1 Januari 2020, pukul 12.00 dini hari, waktunya akan menjadi 1577836800. Perhitungannya agak lebih rumit karena tahun kabisat harus diperhitungkan. Sejak awal era Unix, telah terjadi 12 tahun kabisat, dimulai pada tahun 1972 dan berakhir pada tahun 2016. Artinya, 38 tahun normal telah berlalu.
Berikut tampilan perintah expr untuk menghitung detik selama 50 tahun terakhir:
$expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12
1577836800
Atau seperti ini, dengan mempertimbangkan perhitungan yang dilakukan sebelumnya:
$expr 31536000 * 38 + 31622400 * 12
1577836800
Metode pencatatan waktu ini membuat sistem Unix kebal terhadap masalah Y2K, yang membuat orang-orang khawatir pada akhir tahun 1999 bahwa transisi Y2K akan merusak sistem komputer. Masalahnya ternyata jauh lebih sedikit dari yang diperkirakan. Bahkan, hanya aplikasi yang mencatat tahun dalam format dua digit yang mengalami pergantian tanggal. Banyak pengembang mengambil langkah ekstra untuk memastikan aplikasi mereka tidak terpengaruh oleh masalah Y2000K.
Kapan waktunya Akankah Unix mengalami masalah?
Sistem Unix akan menghadapi tantangan serupa paling lambat tahun 2038, ketika tanggal yang disimpan dalam format yang dijelaskan di atas akan melebihi ruang 32-bit. Hal ini masih 18 tahun lagi, tetapi para pengembang kernel sudah berupaya untuk menghindari kegagalan serupa di masa mendatang.
Masalah Tahun 2038 terkadang disebut sebagai masalah Y2K38. Jika tidak diselesaikan sebelum Selasa, 19 Januari 2038, sistem setelah tanggal tersebut mungkin mengira tahunnya adalah 1901. Salah satu cara untuk menyelesaikan masalah ini adalah dengan beralih ke representasi 64-bit untuk informasi tanggal dan waktu. Beberapa orang yakin ini akan jauh lebih sulit daripada yang terlihat.
Bagaimanapun, masih terlalu dini untuk panik. Yang benar-benar penting hari ini adalah peringatan 50 tahun sistem Unix, yang diakui sebagai salah satu sistem operasi terpenting dalam sejarah.
Sumber: 3dnews.ru
