On Jul 3, 2012, at 1:08 PM, Keith Medcalf wrote:
The system clock needs to be UTC, not UTC ± some offset stuck somewhere that keeps some form of running tally of the current leap second offset since the epoch.
Nope. UTC *includes* leap seconds already. It's UT1 that does not.
Are you suggesting that NTP timekeeping should be based on UT1?
The system clock should be based on UT1 and should be monotonically increasing since this matches the common concept of time. Calculations done with this value are all based on it being UT1 and using the "common" notion of UT1 rules. The root cause of the difficulties is that someone decided that the system clock would not maintain "wall clock" time (UT1) but rather some other timebase and then "step" that time to keep it in sync with UT1.
It only matches the common concept of time at some particular instant. Over the course of several years it will become less and less aligned with the common concept of time. Most people operate on the assumption that there are 86400*365.25 seconds per year overall and that every day is 86,400 seconds. UTC matches that common conception of time. UT1 does not because UT1 monotonically increments one second for every elapsed second of time and continues to drift out of synchronization with the celestial phenomena on which the common conception of time is based.
NTP can keep time in UTC (or anything else) if it wants, but it should discipline the system clock to monotonically increasing UT1.
This will break many many currently correct applications and is not a change that should be undertaken lightly. Especially not if it is intended to fix a moderately esoteric bug in a few things that crops up once per decade or so. Owen