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 10, 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 10, Process Control, you will
learn how to obtain the PID of a process and how to send it
signals.