[time-nuts] Leap seconds and POSIX

Joe Gwinn joegwinn at comcast.net
Thu Jan 1 16:45:16 UTC 2009


Having worked in the POSIX committee for many years, I can shed some 
light on how POSIX handles leap seconds:

In short, POSIX adamantly ignores leap seconds.  All days in POSIX 
have the same length, 86,400 seconds.

This omission is not by accident, instead having been violently 
debated at length, and voted upon.

The rationale is that one cannot assume that all POSIX systems have 
access to leap second information, or even the correct time, and yet 
must work in a reasonable manner.  In particular, file modification 
timestamps must allow one to determine causal order (to within one 
second in the old days) by comparison of timestamps.  (Yes, people do 
realize that timestamps are not the perfect way to establish causal 
order, but are nonetheless widely used in non-critical applications. 
Critical applications instead use some kind of atomic sequence-number 
scheme.)

So, at least in theory, POSIX time is a form of TAI, having a 
constant offset from TAI.

In practice, in platforms that have access to GPS, NTP is used to 
servo the local computer clock into alignment with UTC (or GPS System 
Time (UTC without the accumulated leaps) in systems that abhor time 
steps), and there is a transient error just after a leap second while 
NTP recovers.

Joe




More information about the Time-nuts_lists.febo.com mailing list