Unix berumur 50 tahun. Apakah maksudnya?

2020 adalah tahun yang penting untuk Unix: sistem pengendalian asal telah berusia 50 tahun pada awal tahun. Masa Unix, juga dikenali sebagai "tarikh zaman", ialah bilangan saat yang telah berlalu sejak 1 Januari 1970. Tetapi apakah kebimbangan pembangun kernel mengenai ulang tahun ke-50 Unix?

Unix berumur 50 tahun. Apakah maksudnya?

Walaupun beberapa perkembangan awal Unix mendahului permulaan rasmi "era"nya, 1 Januari 1970, kekal sebagai titik sifar dalam masa POSIX. Oleh itu, dengan bermulanya 1 Januari 2020, platform secara rasminya berusia 50 tahun.

Masa Unix berbanding masa manusia

Dari segi masa manusia, 50 tahun adalah masa yang lama. Dari segi masa Unix, 50 tahun bukanlah sesuatu yang istimewa, dan 43 tahun tidak kurang pentingnya. Sistem Unix (termasuk Linux) menyimpan nilai tarikh dan masa sebagai bilangan saat berlalu sejak 1970-01-01 00:00:00 UTC, ditulis dalam 32 bit. Untuk menentukan berapa saat telah berlalu sejak itu, dan oleh itu nilai masa Unix semasa, anda boleh menjalankan arahan:

$ tarikh +%s

1576883876

Argumen %s kepada arahan tarikh menyebabkan tarikh dan masa semasa dipaparkan sebagai bilangan saat sejak 1970-01-01.

Unix berumur 50 tahun. Apakah maksudnya?

Apakah tarikh maksimum yang boleh disimpan oleh sistem? Unix?

Untuk memahami berapa banyak masa yang boleh disimpan oleh sistem Unix, anda perlu menganggarkan kapasiti medan 32-bit. Ini boleh dikira seperti berikut:

$ echo '2^32' | bc

4294967296

Walau bagaimanapun, oleh kerana Unix membenarkan nombor negatif disimpan, satu bit dikhaskan untuk tanda, dengan itu mengurangkan nilai masa kepada:

$ echo '2^31' | bc

2147483648

Dan oleh kerana penomboran Unix bermula pada 0, ini bermakna kita mempunyai 2,147,483,648 nilai, tetapi yang terbesar ialah 2,147,483,647—nilai tarikh dan masa Unix tidak boleh melebihi nombor ini. Sama seperti odometer kereta tidak boleh menunjukkan lebih daripada 999,999 kilometer—tambah 1 dan nilai diset semula kepada sifar.

Berapa lama setahun dalam saat?

Bilangan saat dalam setahun boleh dikira seperti berikut:

$ expr 24 * 60 * 60 * 365

31536000

Dalam tahun lompat, satu hari lagi ditambah:

$ expr 24 * 60 * 60 * 366

31622400

Unix berumur 50 tahun. Apakah maksudnya?

Bagaimanakah Unix memaparkan hari lahirnya yang ke-50?

Pada 1 Januari 2020, pada 12:00 AM, masanya ialah 1577836800. Pengiraan agak rumit kerana tahun lompat mesti diambil kira. Sejak awal era Unix, terdapat 12 tahun seperti itu, bermula pada 1972 dan berakhir pada 2016. Ini bermakna 38 tahun biasa telah berlalu.

Inilah rupa arahan expr untuk mengira saat sepanjang 50 tahun yang lalu:

$expr 24 * 60 * 60 * 365 * 38 + 24 * 60 * 60 * 366 * 12

1577836800

Atau seperti ini, dengan mengambil kira pengiraan yang dijalankan sebelum ini:

$expr 31536000 * 38 + 31622400 * 12

1577836800

Kaedah rakaman masa ini menjadikan sistem Unix kebal terhadap masalah Y2K, yang menyebabkan orang ramai bimbang pada akhir 1999 bahawa peralihan Y2K akan mendatangkan malapetaka pada sistem komputer. Masalahnya ternyata jauh lebih sedikit daripada yang dijangkakan. Malah, hanya aplikasi yang merekodkan tahun dalam format dua digit mengalami peralihan tarikh. Ramai pembangun mengambil langkah tambahan untuk memastikan aplikasi mereka tidak terjejas oleh masalah Y2000K.

Bilakah masanya Adakah Unix akan menghadapi masalah?

Sistem Unix akan menghadapi cabaran yang sama tidak lebih awal daripada 2038, apabila tarikh yang disimpan dalam format yang diterangkan di atas akan melebihi ruang 32-bit. Itu masih 18 tahun lagi, tetapi pembangun kernel sudah berusaha untuk mengelakkan kegagalan masa depan ini.

Masalah Tahun 2038 kadangkala dirujuk sebagai masalah Y2K38. Jika ia tidak diselesaikan pada hari Selasa, 19 Januari 2038, sistem selepas tarikh itu mungkin menganggap ia adalah 1901. Satu cara untuk menyelesaikan masalah ini ialah menukar kepada perwakilan 64-bit maklumat tarikh dan masa. Sesetengah percaya ini akan menjadi lebih sukar daripada yang kelihatan.

Walau apa pun, masih terlalu awal untuk panik. Apa yang benar-benar penting hari ini ialah ulang tahun ke-50 sistem Unix, yang diiktiraf sebagai beberapa sistem pengendalian yang paling penting dalam sejarah.



Sumber: 3dnews.ru
Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster