A process defines an instance of a program being executed and its environment. We will only mention the most important differences between GNU/Linux and Windows® here (please refer to Chapter 6, Process Control for more information).
The most important difference is directly related to the user concept: each process is executed with the rights of the user who launched it. Internally, the system identifies processes with a unique number, called the process ID, or PID. From this PID, the system knows who (that is, which user) has launched the process and a number of other pieces of information, and the system only needs to verify the process' validity. Let's take our a_file example. peter will be able to open this file in read-only mode, but not in read-write mode because the permissions associated with the file forbid it. Once again the exception to this rule is root.
Because of this, GNU/Linux is virtually immune to viruses. In order to operate, viruses must infect executable files. As a user, you don't have write access to vulnerable system files, so the risk is greatly reduced. Generally speaking, viruses are very rare in the UNIX® world. There are only a few known viruses for Linux, and they are harmless when executed by a normal user. Only one user can damage a system by activating these viruses: root.
Interestingly enough, anti-virus software does exist for GNU/Linux, but mostly for DOS/Windows® files! Why are there anti-virus programs running on GNU/Linux which focus on DOS/Windows®? More and more often, you will see GNU/Linux systems acting as file servers for Windows® machines with the help of the Samba software package (see the Sharing Files and Printers chapter of the Server Administration Guide).
Linux makes it easy to control processes. One way is through “signals”, which allow you to suspend or kill a process by sending it the corresponding signal. However, you are limited to sending signals to your own processes. With the exception of root, UNIX® does not allow you to send signals to a process launched by any other user. In Chapter 6, Process Control, you will learn how to obtain the PID of a process and to send it signals.