进程

进程确定了某个程序的执行实例及其环境。本文将只介绍 GNU/LinuxWindows® 之间最重要的差别(要了解更进一步的详情,请参阅第 6 章 进程控制一文)。

最重要的差别与用户这个概念有直接联系:每个进程拥有启动它的用户的权限。在内部,系统用一个唯一的数字来标识进程,该数字称为进程号(Process ID)PID。用这个 PID,系统就能了解是谁(也就是说,哪个用户)启动了该进程,以及一系列其他信息。系统只需要验证该进程的合法性。以上述某一_文件为例:由于这个文件权限的缘故,li_si将只能以只读模式而不是读写模式打开该文件。同样,这条规则对 root 例外。

由于上述原因,GNU/Linux 基本上对病毒免疫。为了起作用,病毒必须感染可执行文件。然而作为一名普通用户,您对那些脆弱的系统文件没有写权限,因此也就极大地避免了风险。一般来说,病毒在 UNIX® 世界比较罕见。而在 Linux 上已知只有为数不多的几个病毒,而且普通用户即使执行它们也没什么大碍的。只有一个用户在激活这些病毒的时候可能损坏系统:root

有意思的是,GNU/Linux 确实有反病毒软件。不过它们却大都用来对付 DOS/Windows® 文件!那么究竟是为什么这些运行在 GNU/Linux 上的反病毒程序却主要关注于 DOS/Windows® 呢?这是因为,通过 Samba 软件包(参见服务器管理指南一书的共享文件和打印机章节)把 GNU/Linux 作为 Windows® 机器的文件服务器已经越来越常见。

Linux 简化了对进程的控制。其一是通过“信号”,它能让您发送相应的信号来挂起或注销某个进程。然而您只能对您自己的进程发送信号。除了 root 之外,UNIX® 不允许您向由别的用户启动的进程发送信号。在第 6 章 进程控制中,您将会了解如何获得某个进程的 PID 并向它发送信号。