Computer viruses are pieces of programming code that
have been purposely written to inflict an unexpected
result upon an innocent victim.
Viruses are transmitted within other (seemingly)
legitimate files or programs, the opening or execution
of which causes the virus to run and to replicate
itself within the computer system, as well as performing
some sort of action. Such actions can be as harmless
as causing characters to fall off the screen
(early DOS-based virus in the 1980s), to the most
malicious viruses, which destroy data files and
replicate themselves to everyone in your email directory.
The term "virus" includes all sorts of variations on a theme,
including variants of macro-viruses, Trojans, and Worms,
but for convenience all such programs are classed simply as viruses.
Researchers are now looking at another possible virus
that targets computer systems also using a reconfigurable FPGA.
In this scenario, a hostile party could replace a valid bitstream
in the FPGA's external boot memory with random bits
that would likely result in internal electrical conflicts
that may destroy the FPGA device when it boots up.
This is one reason why strong authentication of bitstream
data by the FPGA using a (nonvolatile) stored key is recommended.
Viruses are a very real problem for both organizations and
individual computer users. At the present time there are
very few viruses that affect large computers, primarily because
the operating systems that those systems use are not the same as
those used to run virus code. Viruses, therefore, are a problem
primarily for users of PCs and servers, though with other types
of devices (especially cell phones) increasingly using the Internet,
new types of viruses are emerging.
As of January 2001, there were over 48,000 known viruses, and this
number reportedly surpassed one million in 2008.
Virus checking software traditionally blacklisted executable files
containing suspected virus signatures, but with the explosion of
viruses and the problem of keeping signature files up to date,
some newer virus protection systems rely on white-listing trusted
applications instead; especially in constrained execution
environments such as (non-PC) Internet-connected devices.
See also the entries for Worm and Trojan Horse.