I have managed to get someone inside Microsoft interested in the problems of the old MS-DOS convention of keeping the RTC in some local time that is not further specified in the CMOS RAM data. I was asked to write up a case to convince Microsoft management to dedicate resources for fixing this and enabling the Windows RTC driver to maintain the battery clock in Universal Time instead of local time. I just did so on http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html and I would like to invite all computer time gurus out there to review this brief essay before I send it off to Redmond. Please let me know if you have any further - arguments - technical suggestions/proposals - related references - URLs of well-documented RTC DST problem stories that you think that whoever at Microsoft touches the Windows RTC code next should be aware of. Cheers, Markus -- Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK Email: mkuhn at acm.org, WWW: <http://www.cl.cam.ac.uk/~mgk25/>
What existing software will be broken if the CMOS keeps UTC instead of local time? --Chris -----Original Message----- From: Markus Kuhn [mailto:Markus.Kuhn@cl.cam.ac.uk] Sent: Monday, July 02, 2001 9:06 AM To: tz@elsie.nci.nih.gov Cc: ulrich.windl@rz.uni-regensburg.de Subject: Plea to Microsoft to allow RTC=UTC I have managed to get someone inside Microsoft interested in the problems of the old MS-DOS convention of keeping the RTC in some local time that is not further specified in the CMOS RAM data. I was asked to write up a case to convince Microsoft management to dedicate resources for fixing this and enabling the Windows RTC driver to maintain the battery clock in Universal Time instead of local time. I just did so on http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html and I would like to invite all computer time gurus out there to review this brief essay before I send it off to Redmond. Please let me know if you have any further - arguments - technical suggestions/proposals - related references - URLs of well-documented RTC DST problem stories that you think that whoever at Microsoft touches the Windows RTC code next should be aware of. Cheers, Markus -- Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK Email: mkuhn at acm.org, WWW: <http://www.cl.cam.ac.uk/~mgk25/>
Please let me know if you have any further
- arguments - technical suggestions/proposals - related references - URLs of well-documented RTC DST problem stories
I think M$ should get rid of the automatically-adjust-daylight-savings-time checkbox. They can do the right thing, without asking the user if they should or should not do the right thing.. And the return value of the time() function should not jump with 3600 seconds as it does (sometimes, it depends..) when DST starts or ends. And it would be nice if it represented seconds since 1970 UTC (by contract) Alternatively, there is always fdisk ;)
Hi Markus, Markus Kuhn ha escrit:
I have managed to get someone inside Microsoft interested in the problems of the old MS-DOS convention of keeping the RTC in some local time that is not further specified in the CMOS RAM data. I was asked to write up a case to convince Microsoft management to dedicate resources for fixing this and enabling the Windows RTC driver to maintain the battery clock in Universal Time instead of local time.
I just did so on
http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
and I would like to invite all computer time gurus out there to review this brief essay before I send it off to Redmond.
Several (minor) points:
Please let me know if you have any further
- arguments - technical suggestions/proposals - related references - URLs of well-documented RTC DST problem stories
that you think that whoever at Microsoft touches the Windows RTC code next should be aware of.
Cheers,
Markus
-- Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK Email: mkuhn at acm.org, WWW: <http://www.cl.cam.ac.uk/~mgk25/>
[ Sorry for the mail I just send, I hitted the wrong key. ] Hi Markus, Markus Kuhn ha escrit:
I have managed to get someone inside Microsoft interested in the problems of the old MS-DOS convention of keeping the RTC in some local time that is not further specified in the CMOS RAM data. I was asked to write up a case to convince Microsoft management to dedicate resources for fixing this and enabling the Windows RTC driver to maintain the battery clock in Universal Time instead of local time.
I just did so on
http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
and I would like to invite all computer time gurus out there to review this brief essay before I send it off to Redmond.
Several (minor) points: - the original DOS did not know anything about the RTC. Moreover, the RTC clock did appear only with the AT in 1984. So it is only with DOS 3.0 that DOS does know how to synchronize its internal clock with the RTC; before that, it asked the user to synchronize it itself. You can get an idea of this if you remove the file named AUTOEXEC.BAT; any version of DOS (until 6.x; this does not hold with the MS-DOS 7.x under Windows 9x) will ask you for time and date, even if it is set up correctly by the RTC! (this behaviour solves the DST changeover problem in the USA, BTW) - The phrase about Windows is a bit misleading. Here is a more detailled picture, from where you can then perhaps write a better description. Originally Windows (1.0x, 2.x, 3.x) did not know anything about timezones. The support for this concept only appeared with Windows NT 3.1 in 1992, and the necessary informations (the equivalent of tzdata) were stored in the (in)famous registry, around about the same places as they still are presently. Internally, I believe all times are kept as UTC quantities. However, in order to preserve hardware compatibility and also to allow a given computer to boot either on NT and on DOS (which was a very important "feature" then, even if it appears completely dumb today), they choose to left to RTC in local time, and to apply the correction at boot time. This leaded, and still leads, to the subtle bugs during the DST changeover, if the RTC is changed under DOS, because then NT will silently and unnecessarily applies the correction the next time the OS is booted. Since this TZ support is tied to the Win32 API rather than NT kernel, Windows 9x does also support timezones, and it also runs the RTC in local time; in fact, since Windows 95 and 98 really starts using plain MS-DOS, this is really mandatory! This come less needed with Win Me, and anyway this product line is going to die, so I understand your request will really target only Xp and successors. Which are sooooo far away from the DOS world that your suggestion indeed does have a lot of sense. Congratulations for this initiative, Antoine
I spent the afternoon looking for interesting strings in the Windows 2000 kernel. I noted a UTF-16 encoded string "RealTimeIsUniversal" (NTOSKRNL.EXE:bbd4, NTKRNLPA.EXE:9304). This makes me wonder whether Windows 2000 doesn't already have an undocumented registry entry HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal or so that allows to keep the RTC in UTC (probably REG_DWORD with 0 or 1). None of this is documented or supported by Microsoft, so try at your own risk ... http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html Markus -- Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK Email: mkuhn at acm.org, WWW: <http://www.cl.cam.ac.uk/~mgk25/>
participants (4)
-
Antoine Leca -
Chris Sells -
Christoph Bugel -
Markus Kuhn