Unix Zamanı Nedir ve Unix Dönemi Ne Zamandı?

Unix Zamanı Nedir ve Unix Dönemi Ne Zamandı?

Unix'in neden kendi zaman kavramı var? Çağ nedir ve Y2038 sorunu nedir?





Unix saati, Linux, macOS ve diğer birçok birlikte çalışabilir sistem tarafından kullanılan belirli bir tarih ve saati temsil etmenin bir yoludur. O kadar yaygın ki, muhtemelen farkında olmadan kullanıyorsunuz. Unix zamanını bir kez anladığınızda, onu birçok bağlamda fark edeceksiniz. Birkaç araç, Unix zamanı ile çalışmanıza yardımcı olabilir.





Unix Zamanının Amacı Nedir?

Unix zamanı, sabit bir saat ve tarihten itibaren toplam saniye sayısıdır. Bu, alıştığımız insan tarafından okunabilen tarih ve saatlerden farklı görünen bir tarih/saat (veya zaman damgası) biçimidir. Bu tamamen verimlilik nedenleriyle. Saniyeleri temsil eden tek bir sayıyı saklamak, yıl, ay, saat vb. için ayrı değerleri saklamaktan çok daha az yer kaplar.





Tabii ki, modern anlamda, alan farkı hiç de o kadar fazla değil. Ancak Unix'in, kullanılabilir depolamanın çok daha küçük olduğu 1960'ların sonlarında ortaya çıktığını düşünün. Zaman damgaları da çok kullanılır, bu nedenle depolamaları artar. Örneğin, her dosyanın kendisiyle ilişkilendirilmiş üç zaman damgası vardır.

Matematik dehası değilseniz, biçimi kafanızda çevirmek neredeyse imkansızdır. Ancak yine de daha okunabilir alternatiflere göre bazı avantajları vardır. 21 Ekim 2015 Çarşamba 07:28:00 GMT . Bir bakışta çok kolay bir şekilde iki Unix zaman damgası sipariş edebilirsiniz. Ayrıca iki zaman damgası arasındaki farkı bulmak genellikle daha hızlıdır. Bu, özellikle bitişik günler gibi birbirine yakın tarihler için geçerlidir.



Çağ Hakkında

Dolayısıyla, Unix zamanı, belirli bir zaman noktasından bu yana geçen toplam saniye sayısıdır. Ama zamanın bu noktası nedir? Onun 00:00:00 UTC üzerinde 1 Ocak 1970 . Bu genellikle Unix Çağı olarak adlandırılır. Programcılar, Unix zamanını icat ettiklerinde en yakın yuvarlak tarih olduğundan, bu tarihi çağ için uygun olmayan bir şekilde seçtiler.

Bir şeyler ters gittiğinde bu tarihi görmüş olabilirsiniz. Açıkça bir hatadır, ancak çoğumuzun doğduğu zamandan önceki bir tarihle sonuçlandığında çok garip görünen bir hatadır! Yine de Unix zamanını bildiğinizde bu tamamen anlaşılabilir bir durumdur. Herhangi bir sistem herhangi bir değeri olmayan bir zaman damgası görüntülemeye çalışıyorsa, genellikle 0'a çevrilir ve kesin dönem tarihi ile sonuçlanır.





xbox one nasıl sökülür

Unix Zaman Veri Formatı

Kesin konuşmak gerekirse, öyle biri yok. Orijinal veri türü 32 bitlik bir tam sayıydı ve bu, çok daha güçlü sistemlerde bile genellikle böyle kalır.

Bu veri türü, değerin 136 yıldan biraz fazla olan toplam 2^32 saniye depolamasına izin verir. Bu değer tipik olarak işaretlidir, yani negatif veya pozitif olabilir. Bu nedenle, genellikle çağın her iki tarafında, yani 1902-2038'de 68 yılı temsil eder.





Bu hala sınırlı bir süre tabi. Ancak zaman damgası biçiminin birincil kullanımı, dosya değişikliği gibi kavramlar içindi. Eski tarih ya da uzak geleceğe değil, şimdiki zamana yakın zamanı temsil etmeye çok ihtiyaç vardı. Takvimler gibi uygulamalar için bile, nadiren birkaç on yıldan daha ilerideki tarihleri ​​temsil etmeye ihtiyaç duyulur.

Ancak bu, bu sınırlı zaman aralığının sorunsuz olduğu anlamına gelmez…

2038 Yılı Sorunu

Y2K Bug (tarihin en kötü programlama hatalarından biri), yılları iki haneli değerler olarak saklayan bilgisayar sistemlerini etkiledi. 2000 yılı geldiğinde, bu tür sistemler ona 1900'müş gibi davrandı. Aslında, bu korkulduğu kadar felaket değildi, çünkü birçok insan önceden hazırlanmak için çok zaman ve emek harcamıştı.

Bir önceki bölüme dikkat ettiyseniz, Unix zamanını etkileyebilecek benzer bir sorun fark etmiş olabilirsiniz. Unix zamanının kendine ait bir veri sorunu var: Y2k38 sorunu. (Buna genellikle bir bug değil, bir problem denir; belki 2000 yılından beri daha iyimser olduk!) Unix zamanı 2038'de tam anlamıyla dolduğunda, sistemler yeni tarihleri ​​ya 1902 ya da 1970 olarak ele alacaklar. Ya da muhtemelen onlar' Tamamen başarısız olacak.

En azından bu sorun, Yılbaşı Gecesi gece yarısı vuruşunda bizi vurmayacak. 32-bit Unix zamanının son saniyesi 19 Mart'ta düşecek. Sonunda, muhtemelen çoğu sistemi 2038 yılına kadar yükselteceğiz ya da o zamana kadar zaten eskimiş olacaklar.

Bazı Faydalı Zaman Damgası Kaynakları

NS Dönem Dönüştürücü site muhtemelen mevcut en kapsamlı zaman damgası dönüştürücüsüdür. Geçerli Unix zamanını gerçek zamanlı olarak göstererek başlar ve bunun üzerine akla gelebilecek hemen hemen her özelliği ekler. Ana kullanımı, zaman damgaları ve insan tarafından okunabilir tarihler arasında her iki yönde de dönüşüm yapmaktır.

Dan's Tools, kullanışlı web uygulamalarından oluşan devasa bir koleksiyondur. zaman damgası dönüştürücü . Daha basit, ancak çok temiz bir sunuma sahip ve kullanımı kolay.

Zaman başka, daha da minimalist bir görünüm sunar. Unix saati de dahil olmak üzere bir dizi formatta zamanı gösterir. Kullanışlı olan sayfa başlığında geçerli saati içerir.

Unix Zamanını Komut Satırı Araçları ile Kullanma

Linux ve macOS'ta, tarih programı, Unix zaman damgaları da dahil olmak üzere tarih/saat ile uğraşmak için temel yardımcı programdır. Herhangi bir argüman olmadan çağrıldığında, geçerli tarih/saati insan tarafından okunabilir bir biçimde döndürür:

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

Unix saatinde geçerli tarih/saate ihtiyacınız varsa, +%s argüman:

$ date +%s
1612960114

Kullanarak insan tarafından okunabilir bir tarihten zaman damgasına dönüştürebilirsiniz. -NS sürümünüz varsa işaretleyin tarih onu destekler. Çoğu Linux sürümü varsayılan olarak şunları yapmalıdır:

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

macOS'ta, tarih farklı bir dizi bayrak gerektiren farklı bir programdır:

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

Diğer yöne giderek, bir Unix zaman damgasından şunu kullanarak dönüştürebilirsiniz: -r bayrak:

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

Diğer bazı programlar, %s Unix zamanı ile başa çıkmak için format. Örneğin, bir dosyanın değiştirilme tarihini Unix zamanında göstermek istiyorsanız, Linux sürümü ls , aşağıdakileri kullanabilirsiniz:

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

Unix Time Programlama Dillerinde Nasıl Kullanılır

PHP'nin sahip olduğu zaman() geçerli Unix zaman damgasını döndüren işlev. Onun tarih() işlev, ikinci argümanı olarak bir zaman damgası alır:

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

JavaScript, olaylara ilginç bir şekilde yaklaşır. bir tarih.şimdi () Unix çağından bu yana geçen milisaniye sayısını alma yöntemi. Tabii ki, bunu 1.000'e bölebilir ve sonucu, eşdeğer Unix süresini saniye cinsinden verecek şekilde yuvarlayabilirsiniz:

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

Unix Zamanını Anlamak

Unix zamanı, birçok yerde ortaya çıkan basit bir kavramdır. Bir kez anladığınızda, örneğin zaman farklarını hesaplarken oldukça faydalı bulabilirsiniz. Belirli hataların nedeninin ne zaman olabileceğini de anlayabilirsiniz.

Dönem ve zaman damgaları gibi kavramlar, Linux'a başlamanın önemli bir parçasıdır. gibi temel bilgiler hakkında daha fazla bilgi edinmek için ls , temel Linux komutlarına yönelik kılavuzumuza göz atın.

Paylaş Paylaş Cıvıldamak E-posta Linux'u Kullanmaya Başlamak için 9 Temel Komut

Linux ile aşinalık kazanmak ister misiniz? Standart bilgi işlem görevlerini öğrenmek için bu temel Linux komutlarıyla başlayın.

Sonrakini Oku
İlgili konular Yazar hakkında Bobby Jack(58 Makale Yayımlandı)

Bobby, yirmi yılı aşkın bir süredir yazılım geliştiricisi olarak çalışan bir teknoloji tutkunu. Oyun oynama konusunda tutkulu, Switch Player Magazine'de İnceleme Editörü olarak çalışıyor ve çevrimiçi yayıncılık ve web geliştirmenin tüm yönleriyle ilgileniyor.

Bobby Jack'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın