(By analogy with biological viruses, via science fiction) A program or piece of code, a type of malware, written by a cracker, that "infects" one or more other programs by embedding a copy of itself in them, so that they become Trojan horses. When these programs are executed, the embedded virus is executed too, thus propagating the "infection". This normally happens invisibly to the user.
A virus has an "engine" - code that enables it to propagate and optionally a "payload" - what it does apart from propagating. It needs a "host" - the particular hardware and software environment on which it can run and a "trigger" - the event that starts it running.
Unlike a worm, a virus cannot infect other computers without assistance. It is propagated by vectors such as humans trading programs with their friends (see SEX). The virus may do nothing but propagate itself and then allow the program to run normally. Usually, however, after propagating silently for a while, it starts doing things like writing "cute" messages on the terminal or playing strange tricks with the display (some viruses include display hacks). Viruses written by particularly antisocial crackers may do irreversible damage, like deleting files.
By the 1990s, viruses had become a serious problem, especially among IBM PC and Macintosh users (the lack of security on these machines enables viruses to spread easily, even infecting the operating system). The production of special antivirus software has become an industry, and a number of exaggerated media reports have caused outbreaks of near hysteria among users. Many lusers tend to blame *everything* that doesn't work as they had expected on virus attacks. Accordingly, this sense of "virus" has passed into popular usage where it is often incorrectly used for other types of malware such as worms or Trojan horses.