Year 2000 technical summary |
3 | OS Issues | << >> |
3.0 | Contents |
3.0 Contents | ||
3.1 OS Issues | ||
3.2 MS-DOS | ||
3.2.1 Versions of MS-DOS | ||
3.2.2 MS-DOS API | ||
3.2.3 MS-DOS V5.X/V6.X | ||
3.3 Microsoft Windows | ||
3.3.1 Win16 API | ||
3.3.2 Win32s | ||
3.3.3 Win32 API | ||
3.3.4 Windows 3.1 | ||
3.3.5 Windows 3.11 | ||
3.3.6 Recommendation for MS-Windows 3.1/3.11 | ||
3.4 Windows 95 | ||
3.4.1 Versions of Windows 95 | ||
3.4.2 Recommendation for Windows 95 | ||
3.5 Windows 98 | ||
3.5.1 Recommendation for Windows 98 | ||
3.6 Windows NT | ||
3.6.1 Windows NT 3.51 | ||
3.6.2 Windows NT 4.0 | ||
3.6.3 Recommendation for Windows NT | ||
3.7 Mac OS | ||
3.8 UNIX |
3.1 | OS Issues |
As mentioned in the introductory chapter, the PC RTC is quite often not Y2K compliant. That usually doesn't matter, the BIOS takes care of that on most PCs, or it can be remedied using a software fix. The RTC is the source of the date for the BIOS, and the BIOS is the source of the date for the operating system. Even given a non-compliant BIOS, and a non-compliant RTC the OS can still figure out the date in most circumstances. Better still, there are real solutions to maintaining the correct data and time across a network of computers, such as XNTP, see Chapter 7 (Solutions) for more information. This chapter discusses the broad implications of Y2K on the popular OSes, most of the specifics can be found in the appendices (see list below). For convenience, MS-Windows prior to Windows 95 is considered an OS. See also: |
3.2 | MS-DOS |
The internal date representation of MS-DOS stores the year in a signed
8-bit notation as an offset from 1980. There is no inherent problem
with the operating system support of post Y2K dates, at least for the
time being.
Some of the commands which are part of MS-DOS (external and internal do however have some problems with input, output and sorting of dates. Mostly this arise from the interpretation of 2 digit years in the range [00-79]. |
3.2.1 | Versions of MS-DOS |
Microsoft have made no details available for versions of MS-DOS prior to
V5.0 (and are unlikely to do so).
To determine the version and revision of your MS-DOS system, run the command
" See Appendix A (MS-DOS and MS-Windows Y2K Issues) for a detailed list of issues. |
3.2.2 | MS-DOS API |
The MS-DOS API includes functions for accessing the date/time, and file system functions which use date/time stamps. The year is always encoded in a 7 or 8 bit quantity, as the offset in years from 1980. There are no inherent Y2K problems with this scheme. No date rollover problems should occur until after 2107[3.1]. |
|
3.2.3 | MS-DOS V5.X/V6.X |
Microsoft have stated that all English versions of MS-DOS V5.x and V6.X are "compliant with minor issues". See Appendix A §A.1 (MS-DOS and MS-Windows Y2K Issues, MS-DOS V5.x/V6.x) for detailed information. |
3.3 | Microsoft Windows |
See the following sub-sections: |
3.3.1 | Win16 API |
The Win16 API is the software interface available to programs running under 16 bit Windows 3.x. |
3.3.2 | Win32s |
The Win32s API is an extension to the Win16 API which allows a application to use some Win32 API functionality. |
3.3.3 | Win32 API |
The Win32 API is the software interface to the OS available to
programs running in a native 32 bit version of Windows. This includes
Windows 95, Windows 98 or any version of Windows NT.
The date and time related storage structures under Win32 are:
|
3.3.4 | Windows 3.1 |
Microsoft describe Windows V3.1 as "compliant with minor issues".
There are 2 main problems, the File Manager has trouble displaying
post Y2K dates, and the Control Panel Date/Time applet is not aware of
the leap day 2000-02-29.
Of course, Windows V3.1 will inherit any Y2K problems from the underlying version of MS-DOS. |
3.3.5 | Windows 3.11 |
Windows for Workgroups was available as a retail version, and effectively as a set of file upgrades to the original V3.1 (although the version number did not change). |
3.3.6 | Recommendation for MS-Windows 3.1/3.11 |
Change the MS-Windows date formats use 4 digit
years, rather than 2 digit years. Start the "Control Panel",
"International". Click "Change" in the "Date Format" section,
Check the "Century (1990 vs. 90) in the "Short Date Format" box,
and select "1999" rather than "99" in the year drop down menu of
the "Long Date Format" section.
These settings get stored in the WIN.INI file.
|
|
3.4 | Windows 95 |
Microsoft describe Windows 95 as "compliant with minor issues".
Largely Y2K ok, there are 2 different patches available from Microsoft. The first addresses 2 (and only 2) of the non-compliance issues:
|
The second[3.2] is a complete patch which addresses all known issues, see Appendix F §F.1.1 (Vendors, Microsoft) for download and a local mirror. This patch is a superset of the previous patch. |
|
3.4.1 | Versions of Windows 95 |
Microsoft detail 5 different versions of Windows 95. There are however only
3 different version numbers distinct version numbers assigned by Microsoft.
To determine the version of your Windows 95 system use the The OSR 2.x releases of Windows 95 are not available to end users directly, it is provided only to OEMs and can be purchased only with a new PC. See Appendix B (Windows 95/98 Y2K Issues) for a detailed list of issues. |
3.4.2 | Recommendation for Windows 95 |
Apply the Y2K patch from Microsoft (Vendors|Microsoft).
Also, ensure the Windows 95 date formats use 4 digit
years, rather than 2 digit years. Start the "Control Panel", "Regional
Settings", click on the "Date" tab. You can choose several long and short
date formats from the drop down menu buttons, or enter your own.
For example use:
WIN.INI file, and any changes
should be visible straight away (in the date field of an explorer window
for example).
|
|
3.5 | Windows 98 |
Microsoft describe Windows 98 as "compliant with minor issues".
Largely Y2K ok, there is a large patch available from Microsoft (VEndors|Microsoft) which addresses several of the compliance issues. It is part of the automatic Windows 98 update service, and can be downloaded from their web site. See Appendix B (Windows 95/98 Y2K Issues) for a detailed list of issues. |
3.5.1 | Recommendation for Windows 98 |
Apply the Y2K patch from Microsoft (Vendors|Microsoft).
Also, ensure the Windows 98 date formats use 4 digit
years, rather than 2 digit years. Start the "Control Panel", "Regional
Settings", click on the "Date" tab. You can choose several long and short
date formats from the drop down menu buttons, or enter your own.
For example use:
WIN.INI file, and any changes
should be visible straight away (in the date field of an explorer window
for example).
|
|
3.6 | Windows NT |
See Appendix C (Windows NT Y2K Issues) for a detailed list of issues.
The following versions of Windows NT are discussed here:
Windows NT uses the Win32 API, §3.3.3 (Win32 API) for date, time and filesystem functions. Allegedly, Windows NT 5.0 (or Windows 2000) will be fully Y2K compliant as shipped. |
3.6.1 | Windows NT 3.51 |
Microsoft describe Windows NT 3.51 as "compliant", when the necessary service packs and patches have been applied. See Appendix C §C.2 (Windows NT Y2K Issues, Windows NT V3.51 (English)) for details of the problems, service packs and hot fixes. |
3.6.2 | Windows NT 4.0 |
Microsoft describe Windows NT 4.0 as "compliant", when the necessary service packs and patches have been applied. See Appendix C §C.3 (Windows NT Y2K Issues, Windows NT V4.0 (English)) for details of the problems, service packs and hot fixes. |
3.6.3 | Recommendation for Windows NT |
Apply the Y2K service packs and hot fixes as recommended by Microsoft (Vendors|Microsoft). |
3.7 | Mac OS |
According to Apple, all Macs are Y2K compliant in
hardware and software. However, some applications may have problems with
certain date functions if they use only 2 digit years. The
StringToDate API call assumes that the century of a 2 digit
year is the current century. This means the meaning of a 2 digit
date may change after the end of 1999.
|
3.8 | UNIX |
UNIXes typically store time in seconds since the UNIX epoch, which in this case is 19700101 00:00:00Z. For 32bit UNIXes, that means overflow at 2^31-1 seconds [3.3], on 2038-01-19. 64bit UNIXes should last somewhat longer. |
|
This suggests that most UNIX OS have no inherent Y2K date
problems, though a UNIX such as FreeBSD or Linux running on
a PC may be vulnerable to RTC problems. Applications are, as always,
an entirely seperate issue.
See Appendix D (UNIX Y2K Issues) for specific information on Y2K and UNIX variations. |
|