The history of the
PC is an unbelievable story, full of successes and failures. Many people who
used some of the computer systems before the IBM PC was developed, wipe a tear
from their eyes, for various reasons, when they remember their first
introduction to computers, typically with the Sinclair Spectrum or the Apple
II. In those days, all your programs could be saved to a single floppy disk,
128kB of memory was more than enough to run any program, and the nearest you
got to a GUI was at the adhesives shelf at your local DIY store. It must be
said that computers were more interesting in those days. Open one up, and it
was filled with processor chips, memory chips, sound chips, and so on. You
could almost see the thing working (a bit like it was in the days of valves).
These days, computers lack any soul; one computer is much like the next.
There’s the processor, there’s the memory, that’s a bridge chip, and, oh,
there’s the busses, that’s it.
As we move to computers on a chip,
they will, in terms of hardware, become even more boring to look at. But, maybe
I’m just biased. Oh, and before the IBM PC, it was people who made things
happen in the computer industry, such as William Shockley, Steve Jobs, Kenneth
Olson, Sir Clive Sinclair, Bill Gates, and so on. These days it is large teams
of software and hardware engineers who move the industry. Well, enough of this
negative stuff. The PC is an extremely exciting development, which has changed
the form of modern life. Without its flexibility, its compatibility, and,
especially, its introduction into the home, we would not have seen the fast
growth of the Internet.
Here is my Top 15 successes in the
computer industry:
1.
IBM PC (for most), which was a triumph of design
and creativity. One of the few computer systems to ever to be released on time,
within budget, and within specification. Bill Gates must take some credit in
getting IBM to adopt the 8088 processor, rather than 8080. After its success,
every man and his dog had a say in what went into it. The rise of the bland IBM
PC was a great success of an open-system over closed-systems. Companies who
have quasi-monopolies are keen on keeping their systems closed, while companies
against other competitors prefer open systems. The market, and thus, the user,
prefers open-systems.
2.
TCP/IP, which is the standard protocol used by
computers communicating over the Internet. It has been designed to be computer
independent to any type of computer, can talk to any other type. It has
withstood the growth of the Internet with great success. Its only problem is
that we are now running out of IP addresses to grant to all the computers that
connect to the Internet. It is thus a victim of its own success.
3.
Electronic
mail, which has taken the
paperless office one step nearer. Many mourned the death of the letter writing.
Before email, TV and the telephone had suppressed the art of letter writing,
but with email it is back again, stronger than ever. It is not without its
faults, though. Many people have sent emails in anger, or ignorance, and then
regretted them later. It is just too quick, and does not allow for a cooling
off period. My motto is: ‘If your annoyed about something. Sleep on it, and
send the email in the morning’. Also, because email is not a face-to-face communicate,
or a voice-to-voice communication, it is easy to take something out of context.
So another motto is: ‘Careful read everything that you have written, and make
sure there is nothing’. Only on the Internet could email address be accepted,
world-wide, in such a short time.
4.
Microsoft, who made sure that they could not loose in
the growth of the PC, by teaming up with the main computer manufacturers, such
as IBM (for DOS and OS/2), Apple (for Macintosh application software) and for
their own operating system: Windows. Luckily for them it was their own
operating system which became the industry standard. With the might of having
the industry-standard operating system, they captured a large market for
industry-standard application programs, such as Word and Excel.
5.
Intel, who was gifted an enormous market with the
development of the IBM PC, but have since invested money in enhancing their
processors, but still keeping compatibility with their earlier ones. This has
caused a great deal of hassle for software developers, but is a dream for
users. With processors, the larger the market you have, the more money you can
invest in new ones, which leads to a larger market, and so on. Unfortunately,
the problem with this is that other processor companies can simply copy their
designs, and change them a little so that they are still compatible. This is
something that Intel have fought against, and, in most cases have succeed in
regaining their market share, either with improved technology or through legal
action. The Pentium processor was a great success, as it was technologically
superior to many other processors in the market, even the enhanced RISC
devices. It has since become faster and faster.
6.
6502 and Z80 processors, the classic
16-bit processors which became a standard part in most of the PCs available
before the IBM PC. The 6502 competed against the Motorola 6800, while the Z80
competed directly with the Intel 8080.
7.
Apple II, which brought computing into the class
room, the laboratory, and, even, the home.
8.
Ethernet, which has become the standard networking
technology. It is not the best networking technology, but has survived because
of its upgradeabliity, its ease-of-use, and its cheapness. Ethernet does not
cope well with high capacity network traffic. This is because it is based on
contention, where nodes must contend with each other to get access to a network
segment. If two nodes try to get access at the same time, a collision results,
and no data is transmitted. Thus the more traffic there is on the network, the
more collisions there are. This reduces the overall network capacity. However,
Ethernet had two more trump cards up its sleeve. When faces with network
capacity problems, it increased its bit rate from the standard 10Mbps (10BASE)
to 100Mbps (100BASE). So there was ten times the capacity which reduced
contention problems. For networks backbones it also suffered because it could
not transmit data fast enough. So, it played its next card: 1000BASE. This
increased the data rate to 1Gbps (1000MBps). Against this type of card player,
no other networking technology had a chance.
9.
WWW, which is often confused with the Internet,
and is becoming the large, database ever created (okay, 99% of it is rubbish,
but even if 1% is good then its all worth while). The WWW is one of the uses of
the Internet (others include file transfer, remote login, electronic mail, and
so on).
10. Apple Macintosh, which was one of few PC systems which
competed with the IBM PC. It succeeded mainly because of its excellent
operating system (MAC OS), which was approximately 10 years ahead of its time.
Possibly if Apple had spent as much time in developing application software
rather than for their operating system it would have considerably helped the
adoption of the Mac. Apple refusing to license it to other manufacturers also
held its adoption back. For a long time it thus stayed a closed-system.
11. Compaq DeskPro 386. Against all the odds, Compaq stole the IBM
PC standard from the creators, who had tried to lead the rest of the industry
up a dark alley, with MCA.
12. Sun SPARC, which succeed against of the growth of the IBM PC, because of
its excellent technology, its reliable Unix operating system, and its graphical
user interface (X-Windows). Sun did not make the mistakes that Apple made, and
allowed other companies to license their technology. They also supported open
systems in terms of both the hardware and software.
13. Commodore, who bravely fought on against the IBM PC. They released
mainly great computers, such as the Vic range and the Amiga. Commodore was
responsible for forcing the price of computers.
14. Sinclair, who, more than any other company, made computing acceptable
to the masses. Okay, most of them had terrible membrane keyboards, and memory
adaptor that wobbled, and it took three fingers to get the required command
(Shift-2nd Function-Alt-etc), and it required a cassette recorder to
download program, and it would typically crash after you had entered one
thousand lines of code. But, all of this aside, in the Sinclair Spectrum they
found the right computer, for the right time, at the right price. Sometimes
success can breed complacency, and so it turned out with the Sinclair QL and
the Sinclair C-5 (the electric slipper).
15. Compaq, for startling growth, that is unlikely to be ever repeated. From
zero to one billion dollars in five years. They achieved they growth, not by
luck, but by shear superior technology, and with the idea of sharing their
developments.
Other
contenders include Hewlett-Packard (for their range of printers), CISCO (for their
networking products), Java (for ignoring the make of the computer, and its
network, and, well, everything), the Power PC (for trying to head off the PC,
at the pass), Dell notebooks (because I’ve got one), the Intel 80386, the Intel
Pentium, Microsoft Visual Basic (for bring programming to the masses),
Microsoft Windows 95, Microsoft Windows NT, and so on. Okay, Windows 95,
Windows NT, the 80386 and the Pentium would normally be in the Top 10, but, as
Microsoft and Intel are already there, I’ve left them out. Here’s to the Wintel
Corporation. We are in their hands. One false move and they will bring their
world around themselves. Up to now, Wintel have made all the correct decisions.
When it comes to
failures, there are no failures really, and it is easy to be wise after the
even. Who really knows what would have happened if the industry had taken
another route. So instead of the Top 15 failures, I’ve listed the following as
the Top 15 under-achievers (please forgive me for adding a few of my own, such as
DOS and the Intel 8088):
1.
DOS, which became the best selling, standard
operating systems for IBM PC systems. Unfortunately, it held the computer
industry back for at least ten years. It was text-based, command-oriented, had
no graphical user interface, could only access up to 640KB, it could only use
16 bits at a time, and so on, …. Many with a short memory will say that the PC
is easy to use, and intuitive, but they are maybe forgetting how it used to be.
With Windows 95 (and to a lesser extent with Windows 3.x), Microsoft made
computers much easier to use. From then on, users could actually switch their
computer on without have to register for a high degree in Computer Engineering.
DOS would have been fine, as it was compatible with all its previous parents,
but the problem was MAC OS, which really showed everyone how a user interface
should operate. Against this competition, it was no contest. So, what was it?
Application software. The PC had application software coming out of its ears.
2.
Intel 8088, which became the standard processor, and
thus the standard machine code for PC applications. So why is it in the
failures list? Well, like DOS, its because it was so difficult to use, and was
a compromised system. While Amiga and Apple programmers were writing proper
programs which used the processor to its maximum extent, PC programs were still
using their processor in ‘sleepy-mode’ (8088-compatiable mode), and could only
access a maximum of 1MB of memory (because of the 20-bit address bus limit for
8088 code). The big problem with the 8088 was that it kept compatibility with
its father: the 8080. For this Intel decided to use a segmented memory access,
which is fine for small programs, but a nightmare for large programs (basically
anything over 64KB).
3.
Alpha processor, which was DEC’s attack on the
processor market. It had blistering performance, which blew every other
processor out of the water (and still does). It has never been properly
exploited, as there is a lack of development tools for it. The Intel Pentium
proved that it was a great all-comer and did many things well, and was willing
to improved the bits that it was not so good at.
4.
Z8000 processor, which was a classic case of
being technically superior, but was not compatible with its father, the mighty Z80,
and its kissing cousin, the 8080. Few companies have given away such an
advantage with a single product. Where are Zilog now? Head buried in the sand,
probably.
5.
DEC, who were one of the most innovate
companies in the computer industry. They developed a completely new market
niche with their minicomputers, but they refused, until it was too late, that
the microcomputer would have an impact on the computer market. DEC went from a
company that made a profit of $1.31 billion in 1988, to a company which, in one
quarter of 1992, lost $2 billion. Their founder, Ken Olsen, eventually left the
company in 1992, and his successor brought sweeping changes. Eventually,
though, in 1998 it was one of the new PC companies, Compaq, who would buy DEC.
For Compaq, DEC seemed a good match, as DEC had never really created much of a
market for PCs, and had concentrated on high-end products, such as Alpha-based
workstations and network servers.
6.
Fairchild
Semiconductor. Few
companies have ever generated so many ideas and incubated so many innovative
companies, and got little in return.
7.
Xerox. Many of the ideas in modern computing,
such as GUIs and networking, were initiated at Xerox’s research facility.
Unfortunately, Xerox lacked force to develop them into products, maybe because
they reduced Xerox’s main market, which was, and still is, very much based on
paper.
8.
PCjr, which was another case of incompatibility.
IBM lost a whole year in releasing the PCjr, and lost a lot of credibility with
their suppliers (many of whom were left with unsold systems) and their
competitors (who were given a whole year to catch-up with IBM).
9.
OS/2, IBM’s attempt to regain the operating
system market from Microsoft. It was a compromised operating system, and their
development team lacked the freedom of the original IBM PC development. Too
many people and too many committees were involved in its development. It thus
lacked the freedom, and independence that the Boca Raton development team had.
IBM’s mainframe divisions were, at the time, a powerful force in IBM, and could
easily stall, or veto a product if it had an effect on their profitable market.
10. CP/M, which many believed would because the standard operating
system for microcomputers. Digital Research had an excellent opportunity to
make it the standard operating system for the PC, but Microsoft overcame them
by making their DOS system much cheaper.
11. MCA,
which was the architecture that IBM tried to move the market with. It failed
because Compaq, and several others, went against it, and kept developing the
existing architecture.
12. RISC processors, which were seen as the answer to increased
computing power. As Intel as shown, one of the best ways to increase computing
speed is to simply ramp-up the clock speed, and make the busses faster.
13. Sinclair Research, who after the success of the ZX81 and the
Spectrum, threw it all away by releasing a whole range of under-achievers, such
as the QL, and the C-5.
14. MSX,
which was meant to be the technology that would standardize computer software
on PCs. Unfortunately, it hadn’t heard of the new 16-bit processors, and most
of all, the IBM PC.
15. Lotus Development, who totally misjudged the market, by not
initially developing their Lotus 1-2-3 spreadsheet for Microsoft Windows. They
instead developed it for OS/2, and eventually lost the market leadership to
Microsoft Excel. Lotus also missed an excellent opportunity to purchase a large
part of Microsoft when they were still a small company. The profits on that
purchase would have been gigantic.
So was/is the IBM
PC a success? Of course it was/is. But, for IBM it has been a double-edged
sword. It opened-up a new, and exciting market, and made the company operate in
ways that would have never been possible before. Before the IBM PC, their
systems sold by themselves, because they were made by IBM. It also considerably
reduced their market share. Many questions remained unanswered: ‘Would it have
been accepted in the same way if it had been a closed system, which had to be
licensed from IBM’, ‘Would it have been accepted if it had used IBM components
rather than other standard components, especially the Intel processors’, ‘Would
they have succeeded in the operating system market if they had written DOS by
themselves’, and so on. Who knows? But,
from now on we will refer to the computers based on the x86 architecture as
PC’s.
Oh, and as an academic I would like
to give a special mention to the C programming, which has given me great
heartaches over the years. Oh, yeah, it’s used extensively in industry and is
extremely useful. It is the programming language that I would automatically use
for consultancy work. C is well supported by the major language package
developers, and there are a great deal of code available for it. But for
teaching programming, it is a complete non-starter. Without going into too much detail, the problems with C are not
to do with the basic syntax of the language. It’s to do with a thing called
pointers. They are the most horrible things imaginable when it comes to
teaching programming languages, and they basically ‘point’ to a location in
memory. This is fine, but in most cases you don’t really have to bother about
where in memory things are stored. But, C forces you to use them, rather than
hiding them away. So, in a C programming class, things go very well until about
the 8th week when pointers are introduced, and then that’s it. Oh,
and don’t get me started on C++.
So, what is it that differentiates one PC system from another? What
makes one better than another? It is difficult to say, but basically its all
about how well bolted together systems are, how compatible the parts are with
the loaded software, how they organise the peripherals, and so on. The big
problem though is compatibility, and compatibility is all about peripherals
looking the same, that is, having the same IRQ, the same I/O address, and so
on.
The PC is an amazing
device, and has allowed computers to move from technical specialists to, well,
anyone. However, they are also one of the most annoying of pieces of technology
of all time, in terms of their software, their operating system, and their
hardware. If we bought a car and it failed at least a few times every day, we
would take it back and demand another one. When that failed, we would demand
our money back. Or, sorry I could go on forever here, imagine a toaster that
failed half way through making a piece of toast, and we had to turn the power
off, and restart it. We just wouldn’t allow it.
So why does the PC
lead such a privileged life. Well it’s because it’s so useful and
multitalented, although it doesn’t really excel at much. Contrast a simple
games computer against the PC and you find many lessons in how to make a
computer easy-to-use, and to configure. One of the main reasons for many of its
problems is the compatibility with previous systems both in terms of hardware
compatibility and software compatibility (and dodgy software, of course). The
big change on the PC was the introduction of proper 32-bit software, Windows
95/NT.
In the future systems
will be configured by the operating system, and not by the user. How many
people understand what an IRQ is, what I/O addresses are, and so on. Maybe if
the PC faced some proper competition it would become an easy-to-use and become
totally reliable. Then when they were switched on they would configure
themselves automatically, and you could connect any device you wanted and it
would understand how to configure (we’re nearly there, but it’s still not
perfect). Then we would have a tool which could be used to improve creativity
and you didn’t need a degree in computer engineering to use one (in your
dreams!). But, anyway, it’s keeping a lot of technical people in a job, so,
don’t tell anyone our little secret. The Apple Macintosh was a classic example
of a well-designed computer that was designed as a single unit. When initially
released it started up with messages like “I’m
glad to be out of that bag” and “Hello, I am Macintosh. Never trust a computer
you cannot lift.”
So, apart from the IBM
PC, what are the what are the all-time best computers. A list by Byte in
September 1995 stated the following:
|
1. MITS Altair8800 2. Apple II 3. Commodore PET 4. Radio Shack TRS-80 5. Osborne 1 Portable 6. Xerox Star 7. IBM PC 8. Compaq Portable 9. Radio Shack TRS-80 Model 100 10. Apple Macintosh |
11. IBM AT 12. Commodore Amiga 1000 13. Compaq Deskpro 386 14. Apple Macintosh II 15. Next Nextstation 16. NEC UltraLite 17. Sun SparcStation 1 18. IBM RS/6000 19. Apple Power Macintosh 20. IBM ThinkPad 701C |
And
the Top 10 computer people as:
|
1.
DAN BRICKLIN (VisiCalc) 2.
BILL GATES (Microsoft) 3.
STEVE JOBS (Apple) 4.
ROBERT NOYCE (Intel) 5.
DENNIS RITCHIE (C Programming) 6.
MARC ANDREESSEN (Netscape Communications) 7.
BILL ATKINSON (Apple Mac GUI) 8.
TIM BERNERS-LEE (CERN) 9.
DOUG ENGELBART (Mouse/Windows/etc) 10.
GRACE MURRAY HOPPER (COBOL) |
11. PHILIPPE KAHN
(Turbo Pascal) 12. MITCH KAPOR (Lotus
123) 13. DONALD KNUTH (TEX) 14. THOMAS KURTZ 15. DREW MAJOR
(NetWare) 16. ROBERT METCALFE
(Ethernet) 17. BJARNE STROUSTRUP (C++) 18. JOHN WARNOCK
(Adobe) 19. NIKLAUS WIRTH
(Pascal) 20 STEVE WOZNIAK
(Apple) |
One of the classic comments of all time was by Ken Olson at
DEC, who stated, “There is no reason anyone would want a computer in their
home.” This seems farcical now, but at the time, in the 1970s, there were no
CD-ROMs, no microwave ovens, no automated cash dispensers, and no Internet. Few
people predicted them, so, predicting the PC was also difficult. But the two
best comments were:
“Computers in the future
may weigh no more than 1.5 tons.” Popular Mechanics
“I think there is a world market for maybe five
computers”, Thomas Watson, chairman of IBM, 1943
Oh boy, is it confusing. There are so many different busses used in
systems, especially in PCs. There are three main reasons for the number of
busses: legacy, compatibility and efficiency. With legacy, busses exist because
they have existed in the past, and are required to be supported for the time
being. With compatibility, busses allow the segmentation of a system and
provide, most of the time, a standard interface that allows an orderly flow of
data and allows manufactures to interconnect their equipment. If allowed, many
manufacturers would force users to use their own versions of busses, but the
trend these days is to use internationally defined busses. Efficient busses
have been designed to take into account the type of data that is being
transmitted. So, in the end, we win.
Sometimes, though the
bus technology does always win, and manufacturers who try to develop systems on
their own can often fail miserably. This has been shown with the MCA bus, which
was an excellent step in bus technology, and made-up for the mistakes made in
the original PC design. But, IBM tried to force the market, and failed. In
these days, it is International Standard that are important. Products to be
accepted in the market, or in the industry require an international standards
body to standardize it, such as the IEEE, the ISO, ANSI, and so on. Without
them very few companies will accept the product. A classic case of an open
standard winning against a closed system was Betamax video which was a closed
standard produced by Sony, was up against VHS which was an open-standard. VHS
was the inferior technology, but won because there were more companies willing
to adopt it.
There’s an amusing statement that was made in 1981, in the book 30 Hour BASIC Standard, 1981:
“Microcomputers are the
tool of the 80’s. BASIC is the language that all of them use. So the sooner you
learn BASIC, the sooner you will understand the microcomputer revolution”
Well, as it has proven, a good knowledge of BASIC will not really help
your understanding of microcomputers, but, if there is one bus that you need to
understand in the PC it is the PCI bus. This is because it is basically the
main interface bus within the PC. Most external devices eventually connect to
the PCI through bridge devices. Their were several short-term fixes for local
bus technology, but the PCI was the first attempt at a properly designed system
bus. It allows the PC to be segmented into differing data transfer rates. PCI
provides a buffer between the main system core, such as the processor and its
memory, and the slower peripherals, such as the hard-disk, serial ports, and so
on.
With interrupts, the
PCI has the great advantage over ISA in that it allows interrupts to be
properly assigned at system startup. The BIOS or the operating system can
communicate with the PCI-connected bus with the configuration address area.
From this, the system can determine the type of device it is, whether it be a
graphics card or a network card. The system can then properly configure the
device and grant it the required resources. The days of users having a assign
interrupts (using card jumpers, in some cases) and I/O addresses are reducing (thankfully!).
There is great
potential in the PCI bus. At present, most systems use 32-bit data transfers,
but there is scope for 64-bit data transfers. Also, the 33MHz clock can be
increased to 66MHz with double edge clocking. A new enhanced PCI-based system
called the AGP (Advanced Graphics Port) has been developed which allows for
data transfers of over 500MB/s.
I’m
slightly annoyed with the success of the PCI bus, as I’ve got an ISA-based
sound card, an ISA-based Ethernet card and an ISA-based video camera, and I’ve
only got two ISA slots. So, every so often, I have to swap the sound card for
the video camera, and vice-versa. At present, I’ve got four empty PCI slots,
and I think one of them is waiting for a PCI-based Ethernet card. Then I’ll be
able to have a proper video conference, with sound and video. But, never mind,
I’ve just got myself a lovely new Dell notebook, and a USB-based video camera,
and a single PCMCIA card for my modem and network connections, so I may never
need my desktop computer again (here’s hoping).
The IDE bus. What can you say about it? Not much really. It has no
future plans for glory and is looking forward to a graceful retirement. It
works, it’s reliable, it’s standard, it’s cheap, blah, blah, and relatively
easy to set up. I’ve spent many a happy hour (not!) setting the jumpers on
CD-ROM drives and secondary hard-disk drives which I want to add to a PC
system. Luckily, these days, modern disk drives and BIOS cope well with adding
and deleting disk drives to systems.
On its negative side,
IDE is not really that fast, but it really doesn’t have to be, as disk drives
do not require high data rates. E-IDE improved IDE a great deal and only
required a simple change in the BIOS. In conclusion, SCSI is the natural choice
for disk drives and allows for much greater flexibility in configuration and
also high data rates. But, it tends to be more expensive, and we’d miss IDE,
wouldn’t we?
SCSI’s full grown-up name is the Small Computer Systems Interface. It
is difficult to define exactly what a small computer system is[1], but SCSI has
outgrown its original application of interfacing to ‘small’ systems and to
external disk drives. It now has the potential of being able to interface
virtually any external peripheral to a system. It can also be used to connect
devices internally within a system. Typically, it takes a bit longer to
initially boot the system, but once it has, it should be as reliable as any
non-SCSI device.
An important concept
in SCSI is the prioritization of devices using SCSI IDs. Few busses allow the
system to prioritize peripherals. Thus, in a properly configured system, fast
devices which require to be quickly serviced will always get access onto the
bus before slow devices which do not require fast servicing. Unfortunately, the
method SCSI uses limits the number of devices to one less than the number of
bits on the data bus (7 for an 8-bit data bus and 15 for a 16-bit data bus). In
most cases, this is not a major problem. For example, two hard disks, two CD-ROM
drives, a tape backup system, a zip drive and a midi keyboard could all be
attached to a standard SCSI-I bus.
In most PCs the IDE
drive is still used in the majority of systems, as it is relatively easy to
setup and it’s cheap. It is also dedicated to interfacing to the disk drives;
thus, no other peripheral can hog the disk drive bus. However, for most
general-purpose applications, SCSI is best. New standards for SCSI give a
16-bit data bus, at a transfer rate of 20MHz, giving a maximum data throughput
of 40MB/s, which is much faster than IDE. It is also much easier to configure a
SCSI system than it is connecting peripherals internally in a PC. A SCSI system
only requires a single interrupt line, for all the devices that are connected.
PCMCIA devices. To save paper, I’ve got seven lines to tell you about
them. Well, in summary, they’re really good, but tend to be relatively
expensive. The big usage of them is to add a network adapter or a modem to a
notebook computer. They are typically not used to add to the memory of the
notebook or to increase its hard disk space (an internal upgrade is much better
for these). Personally, I find them a little too thin, and I can’t believe they
can get all the required electronics into them (but I remember when simple
logic ICs, like AND and OR gates, were as big as your thumb and they could heat
it if you required).
Congratulations go to the USB port. It was the first truly generic,
easy-to-use, connection bus for the PC that has mechanisms for non-real-time
(such as printer data) and real-time data (such as video, audio and speech). It
allows for the easy addition and removal of devices from the system, and it
also supports hot plugging (adding or removing a device while the computer is
on). Microsoft first supported USB in Windows 95 OSR2, and it has since become
one of the most used ports, for devices such as video cameras, CD-ROM drives,
printers, digital speakers, monitors, and so on. The only problem with USB is
that it only gives a data throughput of 12Mbps, and thus cannot be used for
high-speed devices. Possibly, over time, this rate may be increased, or other
faster busses, such as Firewire could be used for high-speed applications, such
as Fast Ethernet, multimedia communications, hard disk interfaces, and so on.
The joypad, keyboard and mouse port are all based on a legacy type
system. Over time, the USB port should replace each interface type, but as they
work well at the present they may be around for a while longer.
The method that the
games port uses to determine position is rather cumbersome, where it uses a
single-shot monostable timer to determine the x- and y-positions. An improved
method is to pass the data using a serial interface, just as the mouse does.
But, it’s a standard, and that’s the most important thing.
The
keyboard and PS/2-style mouse connections have proved popular, as they are both
now small 5-pin DIN-style connectors, and as the software automatically scans
the port for devices, they can be plugged into either socket. This allows for
an extra keyboard or a second mouse to be used with a notebook.
As I’ve got a few
extra lines at the end of this chapter, I would like to review the material
that has been covered up to this point. The key to understanding internal
busses is contained in the Motherboard chapter, where the processor interfaces
with the TXC device, which directs any requests to the second level cache, the
DRAM memory or the PCI bus. The PCI bridge device is also important as it isolates
the other busses, such as ISA/IDE, USB, serial/parallel port from the PCI bus,
and thus the rest of the system. The keyboard, games port and mouse interfaces
are accessed via the PCI bridge.
So, what’s the biggest weakness of the PC. In the past, it has probably
been the graphics facilities. This is mainly because the bus systems within the
PC did not support large data throughput (ISA/EISA is way too slow). The design
of the graphics system also required that the video card required to store all
the data which was to be displayed on the screen. Thus no matter the amount of
memory on the system, it was still limited by the amount of memory on the
graphics card. AGP overcomes this by allowing graphical images to be stored in
the main memory and then transferred to the video displayed over a fast bus.
The data demand for
graphical displays is almost unlimited, as the faster they can be driven, the
greater their application. The AGP bus is an excellent extension to the PCI
bus, and gives data throughput of over 500MB/s, whereas standard PCI devices
can typically only be run at less than 100MB/s. AGP is now a standard part of
most PC motherboards, and it is still to be seen if many systems will start to
use this port.
Good old RS-232. My Bank Manager would certainly agree with this, as I
have made more consultancy income with it than any other piece of computer
equipment. I have also ran more RS-232 training courses than all the trendy
subjects areas (such as Java and C++) put together (well, anyway, it doesn’t
take much to run a C++ course!). The reason for this is because it is one of
the least understood connections on computer equipment. I’ve interfaced PCs to
gas chromatographs (using an 8-port RS-232 card, heavy!), a PC to a VAX, a Sun
workstation to a PC, a PC to another PC, a Honeywell TDC to a PC, a PC to a
PLC, and so on. For most applications, a serial port to serial port connection
is still the easiest method to transfer data from one computer to another.
RS-232 is one of the most widely
used ‘standards’ in the world. It is virtually standard on every computer and,
while it is relatively slow, it is a standard device. This over-rules its
slowness, its non-standardness, its lack of powerful error checking, its lack
of address facilities, and, well, need I go on. It shares its gold stars with
solid performers, such as Ethernet and the Parallel Port. Neither of these are
star performers and are far from perfect, but they are good, old robust
performers who will outlast many of their more modern contenders. When their
position is challenged by a young contender, the standards agency simply invest
a lot of experience and brainpower to increase their performance. Who would
believe that the data rate, over copper wires, could be increased to 1Gbps for
Ethernet to 1MBps for RS-422. One trusted piece of equipment I could have every
done without is an RS-232 transmitter/receiver. For this, I used an old
80386-based laptop computer (which weights as much as a modern desktop
computers) which ran either a simple DOS-based transmitter/receiver program
(see previous chapter), or the excellent Windows 3.1 Terminal program. These I
could use just as an electronic engineer would use a multimeter to test the
voltages and currents in a circuit. A telltale sign that I was transmitting at
the wrong bit rate or using an incorrect number of data bits was the
incorrectly received characters (but at least it was receiving characters,
which was an important test).
The RS-422/RS-485 standard really does enhance the basic RS-232
standard and allows for standard RS-232 connections to be increased to over
1.2km (although at low bit rates and un-noisy environments allows for even
greater distances). A surprising thought in these days of cheap electronics,
and PC motherboards that cost less than $100, is that RS-232 to RS-485
convertors are relatively expensive. In fact, it is possible to get a complete
PC motherboard for the same price as an RS-232/RS485 convertor (which contains
just a few internal components), but as the convertor saves lots of time and
energy they are probably worth the high costs.
What a strange device a modem is. It has such as thankless task;
converting information from lovely, pure digital signals into something that
passes over a speech-limited voice channel. It does its job well and with
compression can achieve reasonable results. But, really, it’s a short-term fix,
before we all use high-speed connections with proper data cables, whether they
be shield twisted-pair cables or fiber optic cables. So, modems allow us to
migrate our telephone connection to a full-blown network connection. The
motivation for the increased bandwidth is the Internet and especially the
integration of fully digital multimedia connections.
The AT command code
allows for a standardization in the modem operation, but as many have seen,
modems are not quite as compatible as they may seem.
The parallel port is hardly the greatest
piece of technology. In its truly standard form, it only allows for simplex
communications, from the PC outwards. However, like the RS-232 port, it’s a
standard part of the PC, and it’s cheap. So, interface designers have worked
under difficult circumstances to try and improving its specification, such as
increasing its bit rate and allowing multiple devices to connect to it at the
same time, but it still suffers from a lack of controllability. Anyone who has
changed the interface of a device from the parallel port to the USB will know
how much better the USB port is over the parallel port.
The
parallel port and RS-232 are the two top requests that I get from users,
especially related to project work. The Top 10 requests, in order of the most
requests I have received, are:
|
1. RS-232. 2. Parallel Port. 3. Converting a DOS program to Microsoft
Windows. 4. Borland Delphi interfacing. 5. ISA card design. |
6. Interrupt-driven
software. 7. PCMCIA. 8. Network card
design. 9. Visual Basic
interfacing 10. Using buffered
systems. |
One of the most amusing emails that I ever
received related to an ISA card which I had drawn. In the card, I had drawn a
few chips, to basically show that it had some electronics on it. So that the
chips would not be confused with real chips I labeled one of them XYZ123. One
user sent me an email saying:
‘Thanks for … Please could you tell me the
function of the XYZ123 device. I have searched for this component, and can not
find any information on it. Please could you send me some’
I didn’t really have the heart to write back
to the user and say that it was a made-up chip, so I sent an email back saying
that it was not available at the present time (which was true).
The parallel port was never really been destined for glory. It is
basically a legacy port, which, in the past, was only really useful in connecting
printers. The future for printer connections is either with network
connections, such as Ethernet, or with a USB connection. In its standard form,
it has a large, bulky connector, which in many systems is never even used.
It has always struggled
against the serial port, because it lacks the flexibility of RS-232 and, until
recently, had no standards agency to support it. However, it’s there and it has
great potential for fast data transfers. RS-232 has always been a great success
and has many of the large manufacturers supporting it, and all importantly, it
is defined by several standards agencies. The key to its current success was
due to the intervention of the NPA which brought together many of the leading
computer and printer manufacturers. In these days, there are only a few major
companies, such as Intel and Microsoft, who can lead the market and define new
standards (such as the PCI bus, with Intel).
The main difficulties
are how to keep compatibility with previous implementations and software, and
also how to connect multiple devices on a bus system, and allow them to pass
data back and forward without interfering with other devices. This has finally
been achieved with ECP/EPP mode. It is a bit complex, but it works, and even
supports data compression. At the present, my notebook connects to a CD-R
drive, a scanner and a printer, all of the same parallel port (just like SCSI).
This arrangement works well most of the time and is a relative cheap way of
connecting devices, but it is in no way as flexible and as fast a SCSI.
Modbus is an important protocol and has grown in its popularity because
of its simplicity. It has a very basic structure is easy extremely easy to
implement as it is based on a master/slave relationship where a master device
sends commands and the addressed slave responses back with the required
information. Its main advantages are its simplicity, its standardization and
its robustness.
Modbus can be operated
on a wide range of computers running any type of software, from a simple
Terminal-type connection, where the user can enter the required commands and
views the responses, or it can be implemented through a graphical user
interface, with the commands and response messages hidden from the user. The
basic protocol is of-course limited in its basic specification, such as the
limited number of nodes (256, maximum) and the limited addressing range (0000h
to FFFFh).
The basic
communications link is also simple to implement (normally, RS-232), but newer
Modbus implementations use network connections, such as Ethernet. Another
change is to implement the Modbus protocol over a standard TCP/IP-based
network. This will allow Modbus to be used over an Internet connection.
RS-232 does not have
strong error checking, and only provides for basic parity check. Modbus using
ASCII-based transmission of the Modbus protocol adds a simple checksum to
provide an improved error detection technique (LRC). For more powerful error
detection the data can be transmitted in RTU format, which uses the more
powerful technique (CRC).
The Modbus Plus
protocol now allows for devices to be either a master or a slave. This allows
for distributed instrumentation, where any device can request data from any
other device, at a given time.
The instrumentation industry has moved over the years from
instrumentation networks made from dumb instruments which reported back to a
central controller, to smart instruments with distributed control. Fieldbus is
really the first true implementer of totally distributed systems, but as the
scope of the Fieldbus is limited to areas, there is still a need for a global
control system (such as a DCS). The Fieldbus is excellent at allowing local
control and parameter conversion, but is not so good at providing a global
control strategy. This disadvantage is outweighed by reduced cabling costs, as
Fieldbus connects onto a bus, and devices easily connect to the bus.
Future instrumentation
networks have no need to involve a complex main controller, as the instruments
themselves have the power to locally control. The function of the main
controller will change from getting involved with the low-level operations of
instrumentation to the high-level functions of advanced control, interarea
control, centralized configuration, alarm filtering and maintaining a global
database.
Serial communication,
such as RS-485, has allowed for multidrop serial communication networks, and
has proven to be an excellent method of providing a highly-reliable, fast
communications channel. But, unfortunately it is still basically a
communication channel and most of the higher-level protocols are vendor
specific. The Fieldbus is an attempt to overcome this and to provide a standard
method, which is well matched to control and data acquisition.
The
days of manufacturers creating a virtual monopoly with vendor-specific is now,
thankfully, receding. At one time organizations were generally tied by the
vendor of the main control system, this was the only way that they could
guarantee compatibility. International standards overcome this problem but
forcing manufacturers to conform to the standard. Any vendor who does not
conform will quickly loose market share, unless they are a true market leader,
and have the power to force the whole industry in a certain direction. Today
even the market leaders, such as Honeywell, have to conform to standards and
become involved with other companies to develop industry standard, which are
then developed as international standards by the relevant standards agency.
WorldFIP is an excellent example of a well-designed bus that is simple
to setup and use. It uses many of the techniques developed in computer
networks, such as the use of Manchester coding and collision detection. It is
also based on a layer approach, such as having a physical layer, a data link
layer, a management layer, and so on. This fits in well with the OSI 7-layered
model that is used in computer networks (see Chapter 25), and allows
manufacturers of different systems to interconnect their equipment through
standard interfaces. It also allows software and hardware to integrate well and
be portable on differing systems.
The layered approach
also allows for different implementations on each layer. In its current form it
supports bitrates of 31.5kbps, 1Mbps, 2.5Mbps and 5Mbps, over copper and fiber
optic cables. The polling of data on a WorldFIP network is also extremely
flexible where messages can either be sent periodically or aperiodically.
Another great
advantage of WorldFIP is that each parameter on the network can be assigned a
unique ID (a tag). As it is a 16-bit field, up to 65,636 of these tags can be
used. The addressing of the devices is also powerful, and over 1 million
addressable devices is possible (24-bit address).
As with the WorldFIP bus, the CAN bus is a well-designed network, based
on techniques learned from computer networks. It is a serially connected bus,
where all nodes have access to the network, and collisions between nodes are
detected within a very short time. This allows devices to have a relatively
equal share of the bandwidth of the bus. As automobiles are noisy environments,
the CAN bus is a rugged bus which copes well with errors, and also devices
which are not operating correctly.
The relatively high
bit rates of the CAN bus allows a great deal of information to be passed
between instruments and their controllers. To prevent major problems, the bus
can be organized into segments, so that a major fault in one area does not
greatly affect other areas. A failure of any of the controllers can lead to
major problems, so secondary controllers can be made to monitor the operation
of the primary, and can remove the primary controller from the bus if they are
not operating correctly. Another method is to allow localized control when the
primary control is not functioning properly.
Power dissipation is
also a major factor in cars as devices must be ready to respond quickly to
events, but not to dissipate much power when they are idle. Thus, the CAN bus
has methods to allow devices to sleep if they are inactive, and then be awoken
when a specific event occurs.
The car of the future,
based on the CAN bus, would have little need for complex wiring harnesses, and
would simply require the daisy chaining of devices onto the common bus. The
connector used can be matched to the environment, such as heavy-duty connector
for robust situations, or a light connector for ease of
connection/disconnection.
As the CAN bus has
been designed with a thought for the 7-layered OSI model, which is used in
computer networks, there is great potential for using standard computer network
protocols, such as TCP/IP. Thus will allow CAN busses to connect straight into
the Internet, and allow for remote control and remote data acquisition over the
Internet, or over a local or wide area network. The data could be protected
using data encryption techniques. So, maybe one day you could log into the
Internet and switch on the air conditioning in your car before you even leave
your house.
The IEEE-488 is a beautifully designed bus, which is well supported by
software vendors, and is easy to set-up. It will basically run quietly for many
years without requiring any intervention by the user. The connector and cable
are very well designed and can stand a great deal of abuse. It has typically
been used a standard interface for instrumentation, but the growth of the
serial busses is likely to reduce its importance.
And what can I say
about the VME bus. Oh boy, it’s complex. Its little brother, the VXI is a little less complex, but still is an
extremely powerful and flexible bus for building modular instrumentation
systems. Unfortunately it suffers from being too flexible and can be complex to
write software for. The popularity of the PCI bus, and especially the
CompactPCI bus (the PCI bus for modular systems) is overtaking the VXI bus.
Which two people have done more for world unity than anyone else? Well,
Prof. TCP and Dr. IP must be somewhere in the Top 10. They have done more to unify
the world than all the diplomats in the world have. They do not respect
national borders, time zones, cultures, industrial conglomerates or anything
like that. They allow the sharing of information around the world, and are
totally open for anyone to use. Top marks to Prof. TCP and Dr. IP, the true
champions of freedom and democracy.
Many of the great
inventions/developments of our time were things that were not really predicted,
such as CD-ROMs, RADAR, silicon transistors, fiber optic cables, and, of
course, the Internet. The Internet itself is basically an infrastructure of
interconnected networks which run a common protocol. The nightmare of
interfacing the many computer systems around the world was solved because of
two simple protocols: TCP and IP. Without them the Internet would not have
evolved so quickly and possibly would not have occurred at all. TCP and IP are
excellent protocols as they are simple and can be run over any type of network,
on any type of computer system.
The Internet is often
confused with the World Wide Web (WWW), but the WWW is only one application of
the Internet. Others include electronic mail (the No.1 application), file
transfer, remote login, and so on.
The amount of
information transmitted over networks increases by a large factor every year.
This is due to local area networks, wide area networks, of course, traffic over
the Internet. It is currently estimated that traffic on the Internet doubles
every 100 days and that three people join the Internet every second. This means
an eight-fold increase in traffic over a whole year. It is hard to imagine such
growth in any other technological area. Imagine if cars were eight times faster
each year, or could carry eight times the number of passengers each year (and
of course roads and driveways would have to be eight times larger each year).
In this chapter I’ve presented the two opposite ends of code
development for TCP/IP communications. The C++ code is complex, but very
powerful, and allows for a great deal of flexibility. On the other hand, the
Visual Basic code is simple to implement, but is difficult to implement
non-typical applications. Thus, the code used tends to reflect the type of
application. In many cases Visual Basic gives an easy-to-implement package, with
the required functionality. I’ve seen many a student wilt at the prospect of
implementing a Microsoft Windows program in C++. ‘Where do I start’, is always
the first comment, and then ‘How do I do text input’, and so on. Visual Basic,
on the other hand, has matured into an excellent development system which hides
much of the complexity of Microsoft Windows away from the developer. So, don’t
worry about computer language snobbery. Pick the best language to implement the
specification.
UDP transmission can
be likened to sending electronic mail. In most electronic mail packages the
user can request that a receipt is sent back to the originator when the
electronic mail has been opened. This is equivalent to TCP, where data is
acknowledged after a certain amount of data has been sent. If the user does not
receive a receipt for their electronic mail then they will send another one,
until it is receipted or until there is a reply. UDP is equivalent to a user
sending an electronic mail without asking for a receipt, thus the originator
has no idea if the data has been received, or not.
TCP/IP is an excellent
method for networked communications, as IP provides the routing of the data,
and TCP allows acknowledgements for the data. Thus, the data can always be
guaranteed to be correct. Unfortunately there is an overhead in the connection
of the TCP socket, where the two communicating stations must exchange
parameters before the connection is made, then the must maintain contain and
acknowledge received TCP packets. UDP has the advantage that it is
connectionless. So there is no need for a connection to be made, and data is
simply thrown in the network, without the requirement for acknowledgments. Thus
UDP packets are much less reliable in their operation, and a sending station
cannot guarantee that the data is going to be received. UDP is thus useful for
remote data acquisition where data can be simply transmitted without it being
requested or without a TCP/IP connection being made.
The concept of ports
and sockets is important in TCP/IP. Servers wait and listen on a given port
number. They only read packets which have the correct port number. For example,
a WWW server listens for data on port 80, and an FTP server listens for port
21. Thus a properly setup communication network requires a knowledge of the
ports which are accessed. An excellent method for virus writers and hackers to
get into a network is to install a program which responds to a given port which
the hacker uses to connect to. Once into the system they can do a great deal of
damage. Programming languages such as Java have built-in security to reduce
this problem.
Many of the great inventions/developments of our time were things that
were not really predicted, such as CD-ROMs, RADAR, silicon transistors, fiber
optic cables, and, of course, the Internet. The Internet itself is basically an
infrastructure of interconnected networks which run a common protocol. The
nightmare of interfacing the many computer systems around the world was solved
because of two simple protocols: TCP and IP. Without them the Internet would
not have evolved so quickly and possibly would not have occurred at all. TCP
and IP are excellent protocols as they are simple and can be run over any type
of network, on any type of computer system.
The Internet is often
confused with the World Wide Web (WWW), but the WWW is only one application of
the Internet. Others include electronic mail (the No.1 application), file
transfer, remote login, and so on.
The amount of
information transmitted over networks increases by a large factor every year.
This is due to local area networks, wide area networks, of course, traffic over
the Internet. It is currently estimated that traffic on the Internet doubles
every 100 days and that three people join the Internet every second. This means
an eight-fold increase in traffic over a whole year. It is hard to imagine such
growth in any other technological area. Imagine if cars were eight times faster
each year, or could carry eight times the number of passengers each year (and
of course roads and driveways would have to be eight times larger each year).
Networks have grown
vastly over the past twenty years, and most companies now have some form of
network. At the beginning of the 1980s, PCs were relatively complex machines to
use, and required application programs to be installed locally to their disk
drives. Many modern computers now run their application programs over a
network, which makes the administration of the application software must
simpler, and also allows users to share their resources.
The topology of a
network is all-important, as it can severely effect the performance of the
network, and can also be used to find network faults. I have run a network for
many years and know the problems that can occur if a network grows without any
long-term strategy. Many users (especially managers) perceive that a network
can be expanded to an infinite degree. Many also think that new users can
simply be added to the network without a thought on the amount of traffic that
they are likely to generate, and its effect on other users. It is thus
important for Network Managers to have a short-term, a medium-term and a
long-term plan for the network.
So, what are the basic
elements of a network. I would say:
•
IP addresses/Domain names (but only if the network connects to the
Internet or uses TCP/IP).
•
A network operating system (such as Microsoft Windows, Novell NetWare,
UNIX and Linux). Many companies run more than one type of network operating
system, which causes many problems, but has the advantage of being able to
migrate from one network operating system to another. One type of network
operating system can also have advantages over other types. For example, UNIX
is a very robust networking operating system which has good network security
and directly supports TCP/IP for all network traffic.
•
The cables (twisted-pair/fiber optic or coaxial cables). These directly
affect the bit rate of the network, its reliability and the ease of upgrade of
the network.
•
Network servers, client/server connections and peer-to-peer
connections.
•
Bridges, routers and repeaters. These help to isolate traffic from one
network segment to another. Routers and bridges are always a good long-term
investment and help to isolate network traffic and can also isolate segment
faults.
The networking topology of the future is likely to evolve around a
client/server architecture. With this, server machines run special programs
which wait for connections from client machines. These server programs typically
respond to networked applications, such as electronic mail, WWW, file transfer,
remote login, date/time servers, and so on.
Many application
programs are currently run over local area networks, but in the future many
could be run over wide area networks, or even over the Internet. This means
that computers would require the minimum amount of configuration and allows the
standardizations of programs at a single point (this also helps with bug fixes
and updates). There may also be a time when software licensing is charged by
the amount of time that a user actually uses the package. This requires
applications to be run from a central source (the server).
Ring-based networks have always out-performed contention-based networks
(such as Ethernet), but they suffer from many problems, especially in adding
and deleting stations to/from the ring, finding faults, and in start-up and
shutting-down the ring. These have partly been overcome with MAUs, but the ring
still needs a great deal of high-level management. Luckily, the FDDI standard
has overcome the main problems.
Until recently, it seemed unlikely that Ethernet would survive as a
provider of network backbones and for campus networks, and its domain would
stay, in the short-term, with connections to local computers. The world seemed
distended for the global domination of ATM, the true integrator of real-time
and non real-time data. This was due to Ethernet’s lack of support for
real-time traffic and that it does not cope well with traffic rates that
approach the maximum bandwidth of a segment (as the number of collisions
increases with the amount of traffic on a segment). ATM seemed to be the
logical choice as it analyses the type of data being transmitted and reserves a
route for the given quality of service. It looked as if ATM would migrate down
from large-scale networks to the connection of computers, telephones, and all
types analogue/digital communications equipment. But, remember, not always the
best technological solution wins the battle for the market, a specialist is
normally always trumped by a good all-rounder.
Ethernet also does not
provide for quality of service and requires other higher-level protocols, such
as IEEE 802.1p. These disadvantages, though, are often outweighed by its
simplicity, its upgradeability, its reliability and its compatibility. One way
to overcome the contention problem is to provide a large enough bandwidth so
that the network is not swamped by sources which burst data onto the network.
For this, the Gigabit Ethernet standard is likely to be the best solution for
most networks.
Another advantage that
Ethernet has over ATM is in its lack of complexity. Ethernet is simple and well
supported by most software and hardware companies. ATM, on the other hand, still
has many issues to be resolved, such as routing, ATM addressing and the methods
of analysing and providing a given quality of service.
ISDN is a good short-term fix for transmitting digital data into an
integrated digital network. Unfortunately, it creates a circuit-switched
connection which means that users are charged for the amount of time that they
are connected, and not the amount of data that they transfer. Is ATM the
future?
Good old port 80. Without it, and TCP/IP we would not have had the WWW.
The WWW has grown over the past few years. In this short time, WWW pages have
evolved from pages which contained a few underlined hypertext links to complex
pages which contain state-of-art graphics, animations, menus and even sound
files. HTML led to JavaScript, which has led to Java, which provides a
platform-independent method of running programs. So what’s next? More, and
better, Java, probably.
The tools for
developing WWW pages are still not perfect but they are evolving fast. The
design of many computer packages is now based on hypertext design and many use
a browser-like layout (such as with navigation buttons and hypertext links).
For example, documentation is typically distributed using HTML pages.
To be able to protect a network, either from misuse or from external
hackers, it is important to understand the methods that users and hackers use
to damage a network.
A few words of advice
for someone thinking of hacking into a network:
‘Don’t do it’
as you will probably get caught and risk being thrown off your course
or sacked from your work. It happened at Intel when a part-time System
Administrator ran a program which tested the security of user passwords. He was
immediately sacked when it was found out that he had run the program (as he had
no authorisation to run it).
Hacking
into a network can be just as damaging in term of money, as someone doing
physical damage to a building or a computer system. In fact, many companies see
it as a more serious crime (most buildings and computer hardware are insured
and easily rebuild or repurchased, but corrupted data or misconfigured systems
can take a lot of time and energy to repair)
Another thing to
remember that a hint of hacking can lead to accusations of much more serious
damage. For example, a user could determine the password of another user. If at
the same time there is a serious error on the other user’s data then the hacker
may be accused of actually causing the damage. I have seen many occurrences of
this type of situation.
Remember. You’re a
professional. Act like one.
Public-key encryption methods are the key to the security of the
Internet, and any information that is transmitted over the Internet. It so easy
to change for a user to change public and private keys so that the transmitted
data is more secure, and then to publicise the new public-key. Many governments
are obviously against this move as it allows for the total security of many
types of data. In fact, several governments have banned the usage of widely available
public-key source code. So who is right? I think I know.
In the future, many
forms of digital information will be encrypted. This could include telephone
conversations, video conferencing, WWW accesses, remote login, file transfer,
electronic commerce, running licensed applications, and so on.
Anyone who believes that a written signature is a good method of
security is wrong. I have seen many occurrences of people forging another
person’s signature. Also, modern electronic scanning and near-perfect quality
printing allows for easy forgeries. For example, it is extremely easy to
scan-in a whole document, convert it to text (using optical character
recognition) and then to reprint a changed version. Thus, digital
authentication is the only real way to authenticate the sender and the contents
of a message. But, unfortunately, the legal system tends to take a long time to
catch up with technology, but it will happen someday.
On a personal note, I have run a WWW site for many years and have seen how some
users have abused their privileges, both by putting objectionable material on a
WWW site and also in the material that they have accessed. One user, who held a
responsible Post-Graduate position, put pages on the WWW which displayed
animals and various world leaders being shot (mainly in the head). These pages
had no links from the user’s home page, but could be accessed directly with the
correct URL. The only way
that these pages were traced was that the WWW server ran a program which logged the number of
accesses of all WWW pages, each day. Day after day the accesses to the hidden
index page showed that it was being accessed at least ten times more than any
other page, and these were from browsers all over the world. The URL of the
page had obviously been lodged with some Internet database or a weird cult group, and searches
for this type of offensive page brought users to it from all corners of the
planet. Immediately when it was found the user was warned and he withdrew the
pages. From this, the Departmental Management Team became very wary of users
adding their own personal pages, and a ruling was made that all Post-Graduate
students required permission from their Research Group Leader, or Course
Co-ordinator, before they could add anything to the WWW server. A classic case
of one person spoiling it for the rest. Often people with the most responsible
for facilities (such as Managing Directors, Head of Divisions, and so on) are
not technically able to access the formal risks in any system, and will typical
bar accesses, rather than risk any legal problems.
Legal laws on Internet access will take some time to catch-up with the growth in
technology, so in many cases it is the moral responsibility of site managers
and division leaders to try and reduce the amount of objectionable material. If
users want to download objection material or set-up their own WWW server with offensive material, they should do this at home and not at
work or within an educational establishment. Often commercial organisations are
strongly protected site, but in open-systems, such as Schools and Universities,
it is often difficult to protect against these problems.
These days, viruses tend to be more annoying than dangerous. In fact,
they tend to be more embarrassing than annoying, because a macro virus sent to
a business colleague can often lead to a great deal of embarrassment (and a
great deal of loss of business confidence).
A
particularity-worrying source of viruses is the Internet, either through the running
of programs over Internet, the spread of worms or the spreading of macro viruses
in electronic mail attachments. The best way to avoid getting these viruses is
to purchase an up-to-date virus scanner which checks all Internet programs and
documents when they are loaded.
So, with viruses and worms, it is better to be safe than sorry. Let the flu be the only virus you catch, and the only worms you have to deal with are the ones in your garden.
[1] Probably, ‘small computer’ means ‘not a mainframe computer’ or ‘a less powerful computer’. One must remember that SCSI was developed at a time when mainframe computers were kings and PCs were seen as glorified typewriters.