Apakah Masa Unix dan Bilakah Unix Epoch?

Apakah Masa Unix dan Bilakah Unix Epoch?

Mengapa Unix mempunyai konsep masa tersendiri? Apa zaman dan apa masalah Y2038?





Waktu Unix adalah kaedah untuk mewakili tarikh dan waktu tertentu, yang digunakan oleh Linux, macOS, dan banyak sistem lain yang boleh beroperasi. Ia sangat meluas, sehingga anda mungkin menggunakannya tanpa menyedarinya. Namun, setelah anda memahami masa Unix, anda akan melihatnya dalam banyak konteks. Beberapa alat dapat membantu anda bekerja dengan waktu Unix.





Apakah Tujuan Masa Unix?

Waktu Unix adalah jumlah detik sejak masa dan tarikh yang tetap. Ini adalah format tarikh / waktu (atau cap waktu) yang kelihatan berbeza dengan tarikh dan masa yang dapat dibaca oleh manusia yang biasa kita gunakan. Ini semata-mata untuk tujuan kecekapan. Memerlukan lebih banyak ruang untuk menyimpan satu nombor yang mewakili beberapa saat daripada menyimpan nilai yang berasingan untuk tahun, bulan, jam, dll.





Sudah tentu, dari segi moden, perbezaan ruang tidak sama sekali. Tetapi pertimbangkan bahawa Unix berasal pada akhir 1960-an apabila simpanan yang ada jauh lebih kecil. Cap waktu juga banyak digunakan, jadi simpanannya bertambah. Sebagai contoh, setiap fail mempunyai tiga cap waktu yang berkaitan dengannya.

Formatnya mustahil untuk diterjemahkan di kepala anda melainkan anda seorang genius matematik. Tetapi ia masih mempunyai beberapa kelebihan berbanding alternatif yang lebih mudah dibaca seperti Rabu, 21 Okt 2015 07:28:00 GMT . Anda boleh memesan dua cap masa Unix dengan mudah, sekilas. Selalunya lebih cepat untuk mengetahui perbezaan antara dua cap waktu. Perkara ini berlaku terutamanya untuk tarikh yang berdekatan, seperti pada hari-hari yang berdekatan.



Mengenai Epoch

Oleh itu, waktu Unix adalah jumlah detik sejak titik waktu tertentu. Tetapi apakah titik waktu itu? Ia 00:00:00 UTC pada 1 Januari 1970 . Ini sering disebut sebagai Unix Epoch. Pengaturcara memilih tarikh ini untuk zaman kerana ia adalah tarikh pusingan terdekat ketika mereka mencipta masa Unix.

Anda mungkin telah melihat tarikh ini apabila ada sesuatu yang tidak kena. Ini jelas bug, tetapi yang kelihatan sangat pelik apabila menghasilkan tarikh sebelum masa kita dilahirkan! Walaupun begitu, anda dapat memahami tentang waktu Unix. Sekiranya ada sistem yang cuba memaparkan cap waktu yang tidak mempunyai nilai, ia sering akan diterjemahkan ke 0 dan menghasilkan tarikh yang tepat.





perkara yang menyeronokkan dengan pi raspberry

Format Data Masa Unix

Tegasnya, tidak ada. Jenis data asal adalah bilangan bulat 32-bit, dan ini sering berlaku, walaupun dalam sistem yang lebih berkuasa.

Jenis data ini membolehkan nilai menyimpan total 2 ^ 32 saat, iaitu lebih dari 136 tahun. Nilai ini biasanya ditandatangani, yang bermaksud boleh negatif atau positif. Jadi, biasanya mewakili 68 tahun di kedua-dua sisi zaman iaitu 1902-2038.





Sudah tentu ini adalah tempoh yang terhad. Tetapi penggunaan utama format cap waktu adalah untuk konsep seperti pengubahsuaian fail. Keperluannya sangat banyak untuk menggambarkan masa yang hampir dengan masa sekarang, bukannya sejarah kuno atau jauh ke masa depan. Walaupun untuk aplikasi seperti kalendar, jarang sekali perlu menunjukkan tarikh lebih dari beberapa dekad ke depan.

Tetapi itu tidak bermaksud jangka masa terhad ini tanpa masalah…

Masalah Tahun 2038

Bug Y2K (salah satu kesalahan pengaturcaraan terburuk dalam sejarah) mempengaruhi sistem komputer yang menyimpan bertahun-tahun sebagai nilai dua digit. Ketika tahun 2000 menjelang, sistem seperti itu memperlakukannya seolah-olah tahun 1900. Dalam kejadian itu, ini bukan bencana seperti yang ditakuti, terutama kerana banyak orang menghabiskan banyak masa dan usaha terlebih dahulu, bersiap sedia.

Sekiranya anda memberi perhatian di bahagian sebelumnya, anda mungkin telah melihat masalah serupa yang boleh mempengaruhi waktu Unix. Baiklah, waktu Unix mempunyai masalah data sendiri: masalah Y2k38. (Ini sering disebut sebagai masalah, bukan bug; mungkin kita menjadi lebih optimis sejak tahun 2000!) Apabila waktu Unix benar-benar habis pada tahun 2038, sistem akan memperlakukan tarikh baru sama seperti 1902 atau 1970. Atau mungkin mereka ' Saya akan gagal sama sekali.

Sekurang-kurangnya masalah ini tidak akan menimpa kita pada waktu tengah malam pada Malam Tahun Baru. Detik terakhir masa Unix 32-bit akan jatuh pada 19 Mac. Pada akhirnya, kami mungkin akan menaik taraf kebanyakan sistem pada tahun 2038 atau mereka akan usang pada masa itu pula.

Beberapa Sumber Cap Masa Berguna

The Penukar Epoch laman web mungkin merupakan penukar cap waktu paling komprehensif yang ada. Ia dimulakan dengan menampilkan waktu Unix semasa - dalam masa nyata - dan menambah hampir semua ciri yang dapat dibayangkan di atasnya. Penggunaan utamanya adalah untuk menukar antara cap waktu dan tarikh yang dapat dibaca manusia, di kedua arah.

Dan's Tools adalah koleksi aplikasi web yang berguna, salah satunya adalah penukar cap masa . Ia lebih asas, tetapi mempunyai persembahan yang sangat bersih dan mudah digunakan.

Masa adalah menyajikan penampilan lain yang lebih minimalis. Ini menunjukkan masa dalam beberapa format, termasuk waktu Unix. Ini termasuk masa semasa dalam tajuk halamannya yang berguna.

Menggunakan Unix Time With Command Line Tools

Pada Linux dan macOS, yang Tarikh program adalah utiliti utama untuk menangani tarikh / masa, termasuk cap waktu Unix. Dipanggil tanpa sebarang argumen, ia mengembalikan tarikh / masa semasa dalam format yang boleh dibaca oleh manusia:

$ date
Wed Feb 10 12:28:30 GMT 2021

Sekiranya anda memerlukan tarikh / masa semasa dalam waktu Unix, gunakan +% s hujah:

$ date +%s
1612960114

Anda boleh menukar dari tarikh yang dapat dibaca manusia menjadi cap waktu menggunakan -d benderakan jika versi anda Tarikh menyokongnya. Sebilangan besar versi Linux, secara lalai:

$ date -d 'Jan 2 1970' +%s
82800

Pada macOS, Tarikh adalah program yang berbeza, yang memerlukan satu set bendera yang berbeza:

$ date -j -f '%b %d %Y %T' 'Jan 02 1970 00:00:00' '+%s'
82800

Ke arah lain, anda boleh menukar dari cap waktu Unix menggunakan -r bendera:

$ date -r 1600000000
Sun 13 Sep 2020 13:26:40 BST

Beberapa program lain menggunakan % s format untuk menangani masa Unix. Sebagai contoh, jika anda ingin menunjukkan tarikh pengubahsuaian fail dalam waktu Unix, dengan Versi Linux dari ls , anda boleh menggunakan yang berikut:

$ ls -l --time-style=+%s index.tmp.html
-rw-r--r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

Cara Menggunakan Waktu Unix dalam Bahasa Pengaturcaraan

PHP mempunyai masa() fungsi yang mengembalikan cap waktu Unix semasa. Ia Tarikh() fungsi mengambil cap waktu sebagai argumen kedua:

$ php -r 'echo date('Y-m-d', time());'
2021-02-11

JavaScript menghampiri sesuatu dengan cara yang menarik. Ia mempunyai Tarikh. Sekarang () kaedah untuk mendapatkan bilangan milisaat sejak zaman Unix. Sudah tentu, anda boleh membahagikannya dengan 1,000 dan membulatkan hasilnya untuk memberi masa Unix yang setara dalam beberapa saat:

> Math.floor(Date.now() / 1000)
1613083012

Memahami Waktu Unix

Waktu Unix adalah konsep mudah yang tumbuh di banyak tempat. Sebaik sahaja anda memahaminya, anda mungkin menganggapnya sangat berguna, ketika mengira perbezaan masa, misalnya. Anda juga dapat mengenali kapan mungkin penyebab pepijat tertentu.

Konsep seperti zaman dan cap waktu adalah bahagian penting untuk memulakan Linux. Untuk mengetahui lebih lanjut mengenai keperluan seperti ls , lihat panduan kami untuk arahan asas Linux.

Berkongsi Berkongsi Tweet E-mel 9 Perintah Asas untuk Memulakan Anda Dengan Linux

Ingin mengetahui dengan Linux? Mulakan dengan arahan asas Linux ini untuk mempelajari tugas pengkomputeran standard.

Baca Seterusnya
Topik-topik yang berkaitan Mengenai Pengarang Bobby Jack(58 Artikel Diterbitkan)

Bobby adalah peminat teknologi yang bekerja sebagai pembangun perisian selama hampir dua dekad. Dia meminati permainan, bekerja sebagai Editor Ulasan di Switch Player Magazine, dan terlibat dalam semua aspek penerbitan dalam talian & pembangunan web.

Lagi Dari Bobby Jack

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan