2 puan yazan GN⁺ 2024-12-27 | 1 yorum | WhatsApp'ta paylaş
  • Epoch'tan sonraki saniyeler

    • POSIX zamanı veya Unix zamanı genellikle 1 Ocak 1970 00:00:00'dan bu yana geçen saniyeler olarak bilinir. Ancak bu tam olarak doğru değildir. Örneğin, 25 Aralık 2024 18:54:53 UTC için POSIX zamanı 1735152686'dır; bu değer, gerçekte geçen 1735152715 saniyeden 29 saniye daha düşüktür.

    • POSIX zamanı, IEEE 1003.1'de Eşgüdümlü Evrensel Zaman'dan (UTC) türetilir. Standart, her günün tam olarak 86.400 saniye olduğunu varsayar. Ancak gerçekte bir günün uzunluğu 86.400 saniye değildir ve zaman içinde değişir. Bunu düzeltmek için gökbilimciler UTC'ye düzenli olarak artık saniyeler ekler.

  • Arkeoloji

    • IEEE 1003'ün Ek B bölümü, artık saniyeler hakkında ilginç bir tartışma içerir. Standart yayımlandığında, 1 Ocak 1970'ten sonra 14 artık saniye eklenmişti. Zaman farklarını kolayca hesaplamak için bu artık saniyeler yok sayılmıştır.

    • Çoğu sistem zamanı sürekli artan bir değer olarak ele alır. Ancak çoğu sistem artık saniyeleri takip etmez ve standart zaman referansına senkronize değildir. Bu nedenle, Epoch'tan sonraki saniyelerin referans verilen zaman ile Epoch arasındaki saniyeleri tam olarak göstermesi gerektiği yönündeki bir gereklilik uygun değildir.

    • Epoch'tan sonraki saniyelerin tutarlı bir yorumu, belirli türde dağıtık uygulamalar için önemli olabilir. Artık saniyelerin birikimi öngörülemez ve Epoch'tan sonraki artık saniye sayısının artması muhtemeldir.

  • Bunun yerine ne yapmalı

    • Tek bir bilgisayarda iki olay arasındaki süreyi hesaplamak için CLOCK_MONOTONIC kullanılmalıdır. Başka sistemlerle POSIX zamanı paylaşmanız gerekmiyorsa TAI, GPS veya LORAN kullanılabilir.

    • POSIX zaman damgası sistemiyle yaklaşık hizalama gerekiyorsa, artık saniyeler daha uzun bir zaman aralığına yayılabilir. qntm'nin t-a-i gibi kütüphaneleri POSIX ile TAI arasında dönüşümü destekler.

    • Artık saniyeleri ortadan kaldırmaya yönelik çalışmalar sürüyor ve bunun 2035'e kadar tamamlanması umuluyor. Bu, "bir günde 86.400 saniye" varsayımını kullanan her şey için dönüşüm tabloları oluşturma gibi ek işler gerektirecek, ancak iki zaman arasındaki saniye sayısını sormayı daha basit hale getirecek. En azından 2035 sonrası zamanlar için.

1 yorum

 
GN⁺ 2024-12-27
Hacker News yorumu
  • "A Deepness in the Sky" adlı SF kitabını okudum. Kitapta epoktan sonraki saniyelere yapılan gönderme ilgimi çekti

    • Qeng Ho'nun zaman ölçüm yöntemi karmaşıktı ve saniyeleri insanların Ay'a ilk kez ayak bastığı andan itibaren saymaya başlıyordu
    • Başlangıç anı aslında yaklaşık 15 milyon saniye sonraydı ve bu, ilk bilgisayar işletim sisteminin 0. saniyesiydi
  • Artık saniyeyi kaldırmaya yönelik çalışmalar sürüyor ve bunun 2035'e kadar tamamlanması umuluyor

    • UTC'nin amacı, TAI'den tam sayı saniye kadar saparak ortalama güneş zamanını yaklaşık olarak karşılamaktır
    • MST'yi takip etmek istemiyorsanız TAI'ye geçmeniz gerekir; UTC, MST'den uzaklaşırsa tarihsel artık saniyelerin anlamı kalmaz
  • Modern "UTC epoku" 1 Ocak 1972'dir

    • 1971 sonlarında 0.107758 TAI saniyelik düzensiz bir sıçrama oldu ve sonrasında UTC'nin tik hızı TAI ile tam olarak eşleşecek şekilde değiştirildi
    • 1970 ve 1971'deki Unix zamanı aslında o dönemin UTC zamanı ile örtüşmüyor
  • Zaman ölçümü hakkında her okuduğumda yeni bir şey öğreniyorum

    • Unix zamanının zamanı takip etmenin en basit yolu olduğunu düşünüyordum
    • Artık saniyelerin uygulanmadığını sanıyordum ama belli ki yeterince düşünmemişim
  • Yakın zamanda VAX ya da OpenVMS üzerinde çalışan kodlarla uğraştım ve epokun 17 Kasım 1858 olduğunu ilk kez gördüm

    • Kodda bu, Unix epokuna soyutlanmıştı
  • Bazı zaman noktaları POSIX zaman damgalarıyla ifade edilemez ve bazı POSIX zaman damgaları da gerçek zamanla eşleşmez

  • Bu makalenin Noel'i mahvettiğini düşünüyorum

    • Saniyeler, epoktan sonraki saniyeler olmalı; güneş gününden sapması önemli değil
    • Saniye-epok dönüştürücü düzeltme işini üstlenmeli
  • Veritabanına tarih kaydederken her zaman Unix epok zamanını saklıyor, saat dilimi bilgisini ayrıca tutuyorum

    • Zaman damgalarını TAI biçiminde saklayıp gerektiğinde UTC'ye dönüştürmenin daha iyi olup olmayacağını düşünüyorum
    • Saat dilimleri insanların yarattığı kavramlardır ve zaman içinde ayarlanırlar
    • Mutlak zamanı temel alıp gerektiğinde yerel zaman biçimine dönüştürmek gerekir
  • Yaklaşık 10 yıl önce bir konferansta Google'ın artık saniye kullanmadığını, bunu normal saniyelere yaydığını duydum

    • Google, NTP sunucularını artık saniyeyi yayacak şekilde değiştiriyor
  • Senkronize olan ve monotonik olarak artan bir zaman ölçüm yöntemi olup olmadığını merak ediyorum