Linux是个多用户、多任务的操作系统。在这样系统中,各种计算机资源的分配和管理都以进程为单位。为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源动态管理。进程在一定条件下可以对如文件、数据库等客体进行操作。如果进程用作其他不法用途,将给系统带来重大危害。在现实生活中,许多网络黑客都是通过种植“木马”的办法来达到破坏计算机系统和入侵目的,这些“木马”程序无一例外的是需要通过进程这一方式在机器上运行才能发挥作用。另外,许多破坏程序和攻击手段都要通过破坏目标计算机系统的合法进程尤其是重要系统进程,使系统不能完成正常的工作甚至无法工作,从而达到摧毁目标计算机系统的目的。作为在服务器中占绝大多数市场份额的Linux系统,需要切实保证计算机系统的安全,我们需对其进程进行监控和保护。
Linux操作系统包括如下三种不同类型的进程,每一种进程都有其自己的特点和属性:
交互进程:是由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
批量处理进程:这种进程和终端没联系,是个进程序列。
守护进程:在Linux系统启动时启动的进程,并在后台运行。
上述三种进程各有各的作用,使用场合有所不同。
Linux系统提供who、w、ps和top等察看进程信息的系统调用,通过结合使用这些系统调用,我们可以清晰地了解进程的运行状态以及存活情况,从而采取相应措施,来确保Linux系统安全。
who该命令主要用于查看当前在线上的用户情况。系统管理员可以使用who命令监视每个登录的用户此时此刻的所作所为。
w该命令用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更强大,它不但可以显示有谁登录到系统,还可显示出这些用户当前正在进行的工作,w命令是who命令一个增强版。
ps最基本同时是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有无僵死、哪些进程占用了过多的资源等等。ps命令可以监控后台进程的工作情况,因后台进程是不和屏幕键盘这些标准输入/输出设备进行通信,如需要检测其情况,可使用ps命令。下面是一个ps命令例子。
top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况;但是top是一个动态显示过程,可以通过用户按键来不断刷新当前的状态。如果在前台执行该命令,它将独占前台,直到用户终止程序为止。比较准确地说,top命令提供了实时的对系统处理器的状态监视。将显示系统中CPU最“敏感”任务列表。该命令可按CPU使用、内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。下面是一个top命令的例子。
以上介绍的是目前在Linux下使用得最常见的进程状况查看工具,它们是随Linux套件发行的,安装好系统后,用户就可使用。当然,随着开源不断发展,相信将会有更多的该方面的工具出现,以方便用户选择和使用。