Christopher B. Browne's Home Page
cbbrowne@acm.org

Linux and Year 2000

Christopher Browne


Table of Contents
1. Linux and Year 2000 (Y2K)
2. Things to Avoid at the End of 1999
3. The Telephone Problem
4. The 2038 Problem
5. Patents and Y2K

1. Linux and Year 2000 (Y2K)

There is an increasing problem coming up as we make the leap into the next millennium.

People may argue whether or not the millennium starts on January 1, 2000, or January 1, 2001 (a strict interpretation would indicate the latter); the critical date from a computing standpoint is certainly January 1, 2000.

Computer systems where dates were stored "overly efficiently" may store dates like December 31, 1999 as 991231. The next day is 000101, which, if compared to the previous day, is a lower value. Programs that compare dates in these formats in these ways will fail in often-unpredictable ways. Some programs were written to specially interpret dates with "lots of 9's" to indicate inactive records; this will also cause problems...

Another day of problems will be March 1, 2000. Year 2000 is a leap year, however some computer software will not recognize this correctly.

54 Weeks in 2000: Another Y2K Problem! -

The year 2000, as fate would have it, has 54 weeks! The first week has one day in 2000 (Saturday, January 1), and the 54th week has one day (Sunday, December 31).

This occurs only in leap years, and once every 7 such years, thus occurring once every 28 years. (Modulo the "divisible-by-100 rule, of course, which might modify this to a gap of perhaps as much as 42 years...)

These sorts of system design errors are being termed as "Y2K problems."

Note that they represent errors in design, and not necessarily errors in the actual implementation.

1.1. Papal Declaration on Year 2000

The "official" Papal declaration on leap years by Pope Gregory is entitled Inter Gravissimas and reads something like the following:

" "9. Deinde, ne in posterum a XII kalendas aprilis aequinoctium recedat, statuimus bissextum quarto quoque anno (uti mos est) continuari debere, praeterquam in centesimis annis; qui, quamvis bissextiles antea semper fuerint, qualem etiam esse volumus annum MDC, post eum tamen qui deinceps consequentur centesimi non omnes bissextiles sint, sed in quadringentis quibusque annis primi quique tres centesimi sine bissexto transigantur, quartus vero quisque centesimus bissextilis sit, ita ut annus MDCC, MDCCC, MDCCCC bissextiles non sint. Anno vero MM, more consueto dies bissextus intercaletur, februario dies XXIX continente, idemque ordo intermittendi intercalandique bissextum diem in quadringentis quibusque annis perpetuo conservetur." "

The final sentence specifically states that year 2000 shall be a leap year.

1.2. Year 2000 Handling for Great Britain and its Colonies

The rules for Great Britain and its colonies was established by an Act of Parliament in 1751. The quote below came from Mark Brader's transcription which is on display at the Urban Legends Site

II. And for the continuing and preserving the Calendar or Method of Reckoning, and computing the Days of the Year in the same regular Course, as near as may be, in all Times coming;

Be it further enacted by the Authority aforesaid,

That the several Years of our Lord, 1800, 1900, 2100, 2200, 2300, or any other hundredth Years of our Lord, which shall happen in Time to come, except only every fourth hundredth Year of our Lord, whereof the Year of our Lord 2000 shall be the first, shall not be esteemed or taken to be Bissextile or Leap Years, but shall be taken to be common Years, consisting of 365 Days, and no more;

and that the Years of our Lord 2000, 2400, 2800, and every other fourth hundred Year of our Lord, from the said Year of our Lord 2000 inclusive, and also all other Years of our Lord, which by the present Supputation are esteemed to be Bissextile or Leap Years, shall for the future, and in all Times to come, be esteemed and taken to be Bissextile or Leap Years, consisting of 366 Days, in the same Sort and Manner as is now used with respect to every fourth Year of our Lord.

I have since seen a transcription of a letter by Lord Chesterton, who drafted this bill, as a footnote in Paul Graham's book on Common Lisp. The letter is a hoot, and is rather suggestive that the politicians in 1751 did not have an easy time coping with the need to understand the technicalities of astronomy that were necessary to support the 1752 calendar change that was also legislated in this bill; it is pretty clear that things have changed very little since that time.

1.3. Some US Y2K Info

The NIST's ITL Bulletin: What is Year 2000 Compliance? article provides some good background on the issues of what "compliance" might be considered to mean. There is no unequivocal answer, by the way...

1.4. Year 2000 and Unix-like Systems

The Free Software Foundation web page on Year 2000 - GNU Project nicely describes why Unix-like operating systems like Linux should not generally have terribly dire problems from the "Year 2000 Problem."

Unix-like systems presently have "an issue" with the year 2038, as that is the latest date representable within the typical 32 bit data representation. (January 1, 1970 plus 2 to the 31 seconds is a date that falls in early 2038.)

It seems rather likely that over the next 40 years most mission-critical Unix systems will migrate to 64 bit implementations that would handle dates up to something like year 292,271,025,015, well beyond the expected retirement dates of anyone likely to work on Unix systems in the near future...

Notes by Dennis Ritchie on Unix - 1st Edition provide some insight from the original design of Unix.

Run: % cal 9 1752

    
       September 1752
     S  M Tu  W Th  F  S
           1  2 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30 

Here is the relevant portion of the manual page for cal

An unusual calendar is printed for September 1752. That is the month 11 days were skipped to make up for lack of leap year adjustments. To see this calendar, type: cal 9 1752

The command cal 83 refers to the year 83, not 1983.

The year is always considered to start in January.

This makes it abundantly clear that the creators of Unix were well aware of the "Year 2000" problem and other such calendar issues at the time that Unix was first created twenty five-odd years ago.

1.5. Linux Distributions and Y2K

Some producers of Linux distributions have further comments. It appears that all too often the requests on the Internet and elsewhere for "Y2K Compliance" information seems driven by "pointy-haired managers" of the fashion described in Scott Adam's Dilbert cartoon strip.

Perhaps one of the following URLs can provide reassurance to those that most need it...

I have yet to see any documentation on Y2K issues with respect to the Slackware distribution; it seems unlikely that it will be substantially more vulnerable to problems than other distributions, but those that need "sign-off" or other such things that appear to be reassurance may want to look at other distributions.

1.6. Other Free Software and Y2K

Linux systems include software from a wide variety of sources. Some people have done analysis work to verify that software will continue to function after Year 2000.

1.8. Other Y2K Links

Google
Contact me at cbbrowne@acm.org