Unix zamanı neden 1970-01-01'de başlıyor?


Yanıtlar:


28

Google'ın benim için orada olması dışında cevabı bilemezdim:

Gönderen Burada (serbest abonelik gerekiyor):

Linux, Unix’in belirlediği geleneği, bilgisayarlı terimlerle "çağ" denen resmi "doğum günü" nden bu yana saniyeler içinde sayma zamanını takip ediyor - 1 Ocak 1970.

Bu Wired News makalesinde daha ayrıntılı bir açıklama bulunabilir . İlk Unix mühendislerinin bu tarihi keyfi seçtiklerini açıklıyor, çünkü zamanın başlangıcı için tek tip bir tarih koymaları gerekiyordu ve 1970 Yeni Yıl Günü en uygun görünüyordu.


5

Unix 1970 yılında doğmadı.

Unix dönemi 1 Ocak 1970’te gece yarısı. Unix’in “doğum günü” olmadığını hatırlatmak önemlidir - işletim sisteminin kaba versiyonları 1960’larda buralarda. Bunun yerine, tarih sisteme bir zamanlar '70'lerin başında programlanmıştı, çünkü başlangıçta Bell Laboratuarlarında Unix'te çalışan mühendislerden biri olan Dennis Ritchie'ye göre.


O zamandan beri rahat, o zamandan beri dünyadaki geliştiriciler için elverişsiz.
Chris Halcrow

3
@ChrisHalcrow: Eğer dmr olsaydınız 0 olarak ne seçtiniz? Ve seçim geliştiriciler için ne kadar uygun değil? Buradaki rahatsızlık, "insan" terimlerinde (yıl, ay, gün, saat / dakika / saniye, saat dilimi, gün ışığı süresi) ölçüm süresinin karmaşık olması, çünkü bazı (keyfi) $ t = 0 $ anında seçildi.
NickD

@NickD, bir açıklama için iyi istemi ve iyi bir nokta! Hesaplamaları biraz daha kolaylaştıracağından emin olduğumdan, 00:00:00 CE 0 seçecektim. Lütfen 'dmr' nedir? Ayrıca, ironik olarak, OP'nin bu tarihin niçin seçildiğinin bir açıklamasını gerektirmesi, birisinin 01/01 / 70'in referans tarih olarak kullanımını anlaması için kafa karıştırıcı olduğunu gösteriyor!
Chris Halcrow

2
@ ChrisHalcrow: dmr = Dennis Ritchie. Seçtiğiniz kaynaktan bugüne kadar geçen saniye sayısını hesapladınız mı? Kaç bit gerektiriyor? PDP-11'de 16 bitlik kayıtlar ve kelimeler vardı, ancak bazı işlemlerde 32 bitlik kayıtlar ve çift kelimeler yapmak için iki kayıt ve iki kelimeyi birlikte gruplamanıza izin verdi . Bu size 0 zamanınızdan +/- 68 yıl verir (veya zamanınız imzalanmamışsa +136 yıl - ancak dmr imzaladı). Onun seçimi, ilk gördüğünüzde biraz gizemli olabilir, ancak yukarıda verilen oldukça açık bir karardır ...
Nick

1
@NickD - harika bir açıklama! Bu kabul edilen cevabın bir parçası olmalı - neden yorumunuzu oraya taşımayın, biz de kendimizi buradan silebiliriz?
Chris Halcrow

1

Ben soruyu sevdim :-)

Cevap vermeye çalışmama izin verin (kaynak: internet)

Unix Time, pozitif veya negatif (işaretli) olabilen 32 bit tam sayı (tam sayı) ile gösterilir. Unix aslen 60'lı ve 70'li yıllarda geliştirildi, bu yüzden Unix Zamanının "başlangıcı", GMT (Greenwich Ortalama Saati) gece yarısında 1 Ocak 1970'e ayarlandı - bu tarih / saate, Unix Zaman değeri 0 atandı. Unix Epoch olarak.

32 bit işaretli bir tamsayı, -2147483648 ve 2147483647 arasındaki tüm sayıları temsil edebilir. Unix Süresi 0'dan başladığından, negatif Unix Süresi değerleri Epoch'tan zaman içinde geriye gider ve pozitif sayılar zaman içinde ileri gider. Bu, Unix Time'ın 13 Aralık 1901'de Unix Time değerinden -2147483648 veya 20:45:52 GMT'ye, 1938'de 2038'de Unix Time değerine 2147483647 veya 3:14:07 GMT'ye kadar uzandığı anlamına gelir. tarih öncesi ve Unix Zamanının sonu.

Unix Zamanının sonu 19 Ocak 2038 03:14:07 GMT'de gerçekleşecektir. 19 Ocak 2038 03:14:08 GMT hala 32 bit Unix Time kullanan tüm bilgisayarlar taşacak. Bu, "2038 Yılı Sorunu" olarak bilinir. Bazıları bunun "2000 yılı sorunu" ndan daha önemli bir sorun olacağına inanıyor. 2038 Yılı probleminin çözümü, Unix Time'ı 64 bit tamsayıda saklamaktır. Bu, çoğu 64 bit İşletim Sisteminde zaten devam etmekte ancak çoğu sistem 2038 tarafından güncellenmeyebilir.


5
Bunun sadece bir paragrafı aslında soruyu ele alıyor ve biraz yanlış. (Dönem aslen 1971’de oldu; daha sonra taşındı)
Michael Mrozek


1
Bu doğru Michael. Wikipedia'dan: Unix zamanının en eski sürümleri, eski Unix sistemlerinin donanımındaki sistem saatinin oranı olan 60 Hz oranında 32-bit bir tamsayıya sahipti. Sonuç olarak, 60 Hz değeri hala bazı yazılım arayüzlerinde görünmektedir. Çağ, mevcut değerden de farklıydı. 3 Kasım 1971 tarihli Unix Programcı El Kitabı'nın ilk baskısı, Unix zamanını "saniyenin altmışıncı metrelerinde ölçülen 1 Ocak 1971, 1 Ocak 1971'den bu yana" olarak tanımlar.
Nikhil Mulley

@Nikhil Neden hala 1970, sadece Unix o zaman geliştirildi çünkü anlamıyorum? Neden 1960 değil? veya farklı ay farklı gün?
Templar

@Nikhil ya da gerçekten önemli değil mi? Sadece ilk ay ilk gün daha iyi görünüyor ve 1971'de yapıldı, böylece 1970 de daha iyi görünecek mi?
Templar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.