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
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.
Lets 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 with
“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
, Linux and UNIX®-based
systems do 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 how to send it
signals.