Linux 进程基础

点击访问 Linux 命令大全 >>

本章节将简单的介绍操作系统中进程基础知识。

什么是进程?

进程一个比较正式的说法是:进程是操作系统的一种抽象概念,用来表示正在运行的程序。通俗的来说,就是在 Windows 系统中打开的一个程序,例如:QQ、微信、电子邮箱软件均是一个进程。

进程的概念主要有两点:

  • 第一:进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。

  • 第二:进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。

Linux 是一种多用户、多进程的操作系统,在 Linux 内核中,维护着一张表,这张表记录了当前系统中运行的所有进程的各种信息。Linux 内核会自动完成对进程的控制和调度,内核中一些重要的进程信息包括:

  • 进程的内存地址

  • 进程当前状态信息

  • 进程正在使用的资源

  • 进程的优先级信息

  • 进程的属主信息

Linux 提供了让用户可以对进程进行监视和控制的工具。这方面,Linux 对系统进程和用户进行一视同仁,使用户能够用一套工具控制这两种进程。

进程的属性

下面将讨论进程几个常用的参数,如:PID、PPID、UID和EUID等。

进程ID号PID

PID是系统为每个进程分配的一个系统唯一标识符,相当于你的身份证号码。用ID确定进程的方法是非常有好处的,对于计算机而言,认识数字永远比认识字符串方便得多。

Linux不仅自己使用PID来确定进程,还要求用户在管理进程时也提供相应的PID。几乎所有的进程管理工具都接受PID号,而不是进程名称。

父进程ID:PPID

在 Linux 中,所有的进程都必须由另一个进程创建,除了在系统引导时,由内核自主创建的那几个进程。当一个进程被创建时,创建它的那个进程被称作父进程,而这个进程则相应地被称作子进程。子进程使用 PPID 指定谁是当前进程的父进程(PPID等于父进程的PID)。

真实用户ID:UID

Linux 中只有进程的创建者和root用户才有权利对该进程进行操作。于是,记录一个进程的创建者就非常必要了。进程的UID就是其创建者的用户ID号,用于标识进程的属主。

有效用户ID:EUID

Linux 还为进程保存了一个“有效用户ID号”,被称作EUID。这个特殊的UID号用来确定进程对某些资源和文件的访问权限。在绝大部分情况下,进程的UID和EUID是一样的。

真实组ID:GID

进程的 GID 是其创建者所属组的 ID 号。当进程创建一个新文件的时候,这个文件将采用该进程的 GID。

有效的组ID:EGID

进程同样拥有一个 EGID 号,即有效的组 ID 号,我们可以通过 setgid 程序设置。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号