CTO Articles

Home > News > CTO Articles

Published in IT World
July 18, 2006

Machiavellian Machines

There are times when the immense complexity of IT is beautifully hidden. A Linux box finding all the right device drivers without any human intervention and then sitting in the corner, pouting 100% availability, for years on end is one example. A router dutifully relaying packets all day every day without so much as a whimper is another.

Unfortunately, for every example of a system or system component that "just works" there are many examples of the exact opposite. Many systems or system components require constant care and feeding to keep them ticking over. Moreover, the world is full of system components whose internal workings are no longer understood by anybody and whose outward behavior is only dimly understood by a dwindling number of gurus.

I find it interesting that one of the key techniques we use to make things "just work" also appears to be both present and at fault when things do not "just work". I speak of the concept of deceit. Now given that this is not a term you will find in the textbooks on IT, I had better explain my usage of it.

Let us do this by example. I am writing this article on a laptop PC. My machine contains a BIOS that pretends, in some areas, to be an IBM PC compatible computer from the mid Nineteen Eighties. Put bluntly, it is set up to tell lies to various parts of the hardware and software.

When the BIOS talks to my hard disk, it in turn gets fed various lies about the layout of the hard disk that convinces the BIOS to proceed to boot the machine even though its size and layout are completely foreign to it.

I am connected to another computer using the ssh protocol. I have set this up to tell lies to my operating system which thinks that various ports on this machine are in fact ports on a machine half way around the world.

Connected to my machine I have a color printer which contains a SmartMedia reader. The SmartMedia reader does its work by fooling the operating system into thinking that it is a hard disk.

When I sent a fax, I do "printing" to a printer which is really a fax machine that is pretending to be a printer...etc. etc.

I have mixed emotions about all of the deceit flying around here. On one hand, it is clearly a powerful innovation vector to be able to "pretend" to be one thing but offer the functionality of another thing. IT has benefited greatly from this concept over the years.

On the other hand, when things go wrong, it can be a real challenge to diagnose a problem when the parties to it insist on telling each other lies about their true natures and identities.

It is little wonder that we anthromorphize computer systems in our efforts to understand them. They set out to deceive us in so many ways that a Machiavellian approach to analyzing their behavior is often required.