[ntp:questions] Re: Windows timekeeping
bryanh at giraffe-data.com
Sun Aug 6 16:04:02 UTC 2006
>>> I don't follow this part. The user uses Windows to do this setting,
>>> right? So Windows could choose any timezone for the hardware clock,
>>> and UTC would be a natural choice. Windows obviously asks the new
>>> user what time zone he's in, and therefore when the user says what
>>> time his wristwatch says, Windows knows what UTC that corresponds to.
>No, the user sets the initial time when they first build the computer and
>go into the BIOS to set the configuration. Way before any OS is even
>installed. Perhaps these days I should have said "system builder" or
>something like that.
So you're talking about the person at the factory, not the person who
gets the computer from the factory, right.
It's been ages since I've seen a computer fresh from the factory, but
I assume it comes with Windows already on it and the first thing the
user sees when he turns it on is a "welcome to Windows, let's set up
your computer" dialog. This dialog asks what time zone you're in and,
because it knows that even if it was set at the factory, the hardware
clock would have drifted a lot, it asks what time it is. The program
then sets the hardware clock, making a choice as to what time zone
offset to use with it. It chooses the user's local time zone.
With this scenario, the reason for that choice obviously is not
because the user is comfortable with local time -- the user never even
sees those numbers. It is apparently a matter of backward
It's also my impression that the system builder at the factory doesn't
go into a BIOS screen to set the hardware clock, but that guy probably
isn't relevant if the scenario described above happens later.
>I think the history is that MS-DOS was originally an OS for isolated,
>non-portable, machines operated by unsophisticated users, so local time
>was the easiest concept for the users to handle. Unix was developed
>by academics, so they were prepared to deal with more abstract concepts
>and consider the long term.
I don't think there's any way to compare the two design choices because
the hardware MS-DOS ran on was the only hardware that had a clock that
communicated in HH:MM:SS form, so was the only hardware that made you
make a choice as to which HH:MM:SS standard you wanted.
If anyone knows of a computer architecture besides ISA and stuff
designed to be compatible with it that has a HH:MM:SS hardware clock,
speak up, but all the other clocks I can think of maintain a single
counter, and it's up to the OS to derive from it UT HH:MM:SS or local
HH:MM:SS for use by humans.
The hardware used in ISA wasn't even designed for a general purpose
computer. The MC146818A chip is for use in _really_ tiny special
purpose machines that must offload all their time computation. It's
somewhat of a mystery that ISA designers chose to use that chip, but
the fact that MS-DOS was already keeping time in similar fashion
internally made is less strange than it would be otherwise. Maybe it
was just really inexpensive.
As for the choice to use local HH:MM:SS instead of UT HH:MM:SS, it
seems to me that even keeping track of a time zone and computing DST
was beyond the sophistication of DOS of the day, so maybe using UT
just seemed pointlessly complex. After all, even today a kitchen
appliance with a clock in it does not track UTC inside.
Bryan Henderson Phone 408-621-2000
San Jose, California
More information about the questions