A process defines an instance of a program being executed and its environment. We will only mention the most important differences here; you should refer to the Reference Manual for a more in-depth discussion on this subject.
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 (which user, that is) has launched the process and a number of other pieces of information and only needs to verify the process' “validity”. So, if we take our a_file example, a process launched by 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. The exception to this rule is root, who as we've explained, can do anything it wishes.
Thanks to this, GNU/Linux is virtually immune to viruses. In order to operate, viruses must infect executable files. As a user, you do not 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 less than a dozen 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 file servers acting as file servers for Windows machines with the help of the Samba software package.
Linux makes it easy to control processes. One way is through “Signals”, which allow you to suspend or kill a process by sending the corresponding signal to the process. However, you are limited to sending signals to your own processes; With the exception of root, UNIX won't 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 send it signals.