There's no beating the bug The Y2K variety was puny but, warns Chris Hudson, there are plenty more out there : LUSENET : Grassroots Information Coordination Center (GICC) : One Thread

From Uncle Bob on Y2k & Beyond list...

There's no beating the bug The Y2K variety was puny but, warns Chris Hudson, there are plenty more out there

Source: The Guardian

The year 2000 started with almost none of the disastrous millennium bug problems. No aircraft fell out of the sky, there were no more power cuts than usual, our bank accounts remained the same and the supermarkets are still full of food.

This is hardly surprising given the amount of money and effort invested in eliminating the problem. But the problem may not have been as great as predicted. Problems might still occur as we get further into the 21st century, but the likelihood lessens as days go by.

However, the millennium bug was really the tip of a much greater iceberg. My work over the last 25 years has been to fit computers into many of the devices we use in our everyday life. I now teach others how to do this. These computers are not the kind that you purchase in the high street store. They are no bigger than the corner torn off a postage stamp and cost about the same as a postage stamp (before the software is written for them).

They are buried (or embedded to use the correct terminology) in almost anything we use these days: washing machines, microwave cookers, televisions and videos, intruder alarms, central heating controllers, several in the average car, smart cards for automatic barriers in car parks and at railway stations. They can even flush the toilet.

Industry uses these embedded computers in vast quantities to control and monitor all kinds of processes. The use of embedded computers makes equipment far less costly to manufacture and can provide many different facilities, including the ability to analyse themselves and inform the users when they are going wrong (as well as keeping working during the error).

Despite the extremely high reliability of these systems, they do still go wrong now and then - how many of us have been stuck in a supermarket queue because the computerised till has just hiccuped and refused to acknowledge any more scanned items?

The embedded computers need to be programmed just like all computers. Any programmer will tell you that all programs will contain errors (or bugs) and under certain conditions will not perform exactly as required. Most bugs are just simple errors and the majority are usually ironed out in the first few months that the device appears on the market (it does not always pay to be the first to buy some devices).

But why are these systems not fully tested? The simple answer is that it is impossible to test fully all possible combinations of the tens of thousands of instructions that make up today's computer programs. To demonstrate this point, I show my students a small part of a typical computer program (about 20 instructions) and I ask them how many different ways there are of executing them.

Most answer about 50 to 100, some brave ones suggest 1000 ways. When I tell them that this small, almost insignificant fraction of a program has two hundred and fifty thousand million (250,000,000,000) different ways it can be executed, I can see the disbelief in their eyes. I then go on to tell them that if ten of these combinations could be tested in a second, it would take over 800 years to fully test this small segment.

Imagine how long it would take to test a typical program found in most modern equipment which would contain between 10,000 and 100,000 instructions. Maybe thousands or even millions of years. This means that no piece of equipment on the market today which contains a computer, can be fully tested.

Most programmers have adopted a formal approach to writing programs which reduces (but do not eliminate) the bugs. The millennium bug is just one possible bug, but because manufacturers knew about it, they were able to test for it very simply. It is not all doom and gloom as in reality, only a tiny fraction of the possible ways of using a computer program will ever be used.

There are many more bugs that are likely to exist in our computer systems than the millennium bug, some more significant than others. Microsoft's software has dominated most of the PC market, but many systems use Unix. The Unix operating system keeps track of time by counting the number of seconds since January 1, 1970. As Unix uses a fixed size number, it cannot count higher than 2,147,483,647. If one more count is added to this maximum, the number becomes wrong. This will occur at sometime in the year 2038. It is highly unlikely that many systems running the original version of Unix will still be operating then, and as we know about it, something can be done between now and then.

Even more sinister bugs can lurk in our computer systems. Most people who use computers will be aware of the computer viruses that some unscrupulous programmers have deliberately corrupted the programs in our computers, such that under certain conditions, or at certain dates, the program fails to work properly.

Some people have made a lot of money from selling anti-virus software that can detect and sometimes destroy the virus - just as some people have made a lot of money correcting the millennium bug (real or not). It is simplicity itself for an unscrupulous programmer to deliberately insert a bug into an embedded computer that will cause it to fail at a certain time or date - not just the millennium.

This is like built in redundancy where after say, two years of operation, the computer program stops working and so the equipment fails. In this case, you would have no choice but to either send the equipment for repair, or replace it.

It is impossible to know why the computer has failed, so hiding the misdemeanour of the unscrupulous programmer. Repairers would obtain a new, unused computer and, hey presto, the equipment would spring back to life - at least for another two years of use.

Having said all this, in the 25 years of working with embedded computers, I have never come across one where a fault has been deliberately put in - but that's not to say they are not there!

Dr Christopher Hudson is a lecturer in computing and electronics at Brunel university as well as a consultant to industry. He also runs workshops for industry on the use of microcontrollers.

Publication date: Jan 13, 2000

) 1999, NewsReal, Inc.

-- Sheri Nakken (, January 14, 2000

Moderation questions? read the FAQ