> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/4.3-bsd-unix-cao-zuo-xi-tong-she-ji-yu-shi-xian/fu-lu/ci-hui-biao.md).

# 词汇表

本词汇表译自原书 Glossary（印刷页 413–450）。词条按英文字母排序；中文译名以全书术语表（见“译者说明”）为准，同一词条多个义项时按义项分列。“参见”对应原书的 see/see also 关系。

**absolute pathname**（绝对路径名）　参见 pathname（路径名）。

**access rights**（访问权限）　操作系统中进程访问系统维护对象的权限，例如向文件写数据的能力。权限由系统识别和强制实施，通常与权能相关联。4.3BSD 的进程间通信设施支持在消息中传递访问权限。例如 UNIX 通信域支持文件描述符及其关联访问权限的传递。

**adb** 第一版之后引入的、首次出现在第七版 UNIX 系统中的程序调试器。

**address family**（地址族）　通信域中一组相关的地址格式。

**address format**（地址格式）　创建特定格式网络地址所用的规则集合。例如在 Internet 通信域中，主机地址是一个 32 位的值，按主机所在网络的类型以四种规则之一编码。

**Address Resolution Protocol（ARP）**（地址解析协议）　把一个网络地址动态映射到另一个网络地址的通信协议。例如 4.3BSD 用 ARP 把 DARPA Internet 地址动态映射为以太网地址。

**address translation**（地址转换）　通常由硬件实现的一种机制，把程序提供的内存地址转换为物理内存地址。这一设施对支持多道程序设计很重要：它使操作系统能把程序装入内存的不同区域，而每个程序仍像装在单一固定内存位置上一样执行。

**advisory lock**（劝告锁）　只在进程显式请求实施时才强制实施的锁。劝告锁与强制锁（hard lock）相对，后者的实施是强制性的。

**AGE buffer list**（AGE 缓冲区链表）　文件系统缓冲区高速缓存中的一条链表，存放内容尚未证明有用的缓冲区——例如预读块。

**ARP**（地址解析协议）　参见 Address Resolution Protocol。

**ARPANET** 美国国防高级研究计划局网络。DARPA 于 1969 年 12 月建立的分组交换网络。

**ARPANET Host Access Protocol**（ARPANET 主机访问协议）　主机与 ARPANET PSN 之间通信所用的协议。

**association**（关联）　进程间通信设施中两个通信端点之间的逻辑绑定，必须在通信发生之前建立。关联可以是长命的（如基于虚电路的通信），也可以是短命的（如基于数据报的通信范式）。

**AST**（异步系统陷阱）　参见 asynchronous system trap。

**asynchronous system trap（AST）**（异步系统陷阱）　VAX 上一种由软件发起的、进入服务例程的中断。AST 使进程能够在其执行之外异步地收到特定事件发生的通知。4.3BSD 中，AST 用来发起进程重调度。

**attach routine**（附接例程）　自动配置阶段使用的设备驱动例程，为设备建立软件状态。对系统探测成功的每个设备都调用附接例程。

**autoconfiguration phase**（自动配置阶段）　系统自举进入运行状态时经历的一个运作阶段。系统在此阶段探测机器上可能存在的硬件设备，并附接找到的每个设备。参见 attach routine、probe routine、slave routine。

**background process**（后台进程）　在面向作业控制的进程管理系统中，进程组不同于其控制终端的进程组、因而当前被禁止大多数终端访问的进程。在别的意义上，后台进程是命令解释器不在等待的进程，即用 “&” 操作符启动的进程。与后台进程相对的是前台进程（foreground process）。

**backing storage**（后备存储）　调页和交换操作中存放从主存移出的对象的存储。参见 secondary storage。

**bad sector**（坏扇区）　有不可修复介质缺陷的扇区。

**bad-sector forwarding**（坏扇区转发）　把磁盘上的坏扇区透明替换为好扇区的设施。系统通过把每个坏扇区的请求 **转发** 到替换的好扇区完成替换；好扇区取自磁盘的保留区域。坏扇区转发可以在主机侧的设备驱动中完成，如今更常见的做法是在磁盘控制器中完成。参见 slip-sector forwarding。

**bad-sector table**（坏扇区表）　坏扇区转发使用的表。坏扇区转发期间，系统以坏扇区号为键在坏扇区表中查找好（转发）扇区的位置。

**Berknet** 伯克利加州大学开发的、使用串行线路通信的已废弃网络。

**block**（块）　文件系统中的分配单位。文件系统以块大小的单位（或块大小单位的片）分配空间。

**block device**（块设备）　支持面向块接口的随机访问大容量存储设备，例如磁盘机。

**block-device interface**（块设备接口）　内核内访问块设备所建立的约定，包括可以调用以执行 I/O 操作的过程集合，以及每次调用必须传递的参数。

**block-device table**（块设备表）　内核内的一张表，记录支持每种设备块设备接口的设备驱动例程。块设备表中表项的次序很重要：它定义了块设备的主设备号。

**block I/O**（块 I/O）　对块设备的 I/O。

**block size**（块大小）　分配给文件的空间的自然单位（文件系统块大小），或块设备能执行的最小 I/O 单位（磁盘设备通常为扇区大小）。4.3BSD 中文件系统块大小是创建文件系统时固定的参数。

**bootdevice register**（引导设备寄存器）　第一级自举向它传递系统应从哪个设备自举之身份的寄存器。VAX 上引导设备寄存器是 R10。

**boothowto register**（引导方式寄存器）　第一级自举向它传递代码的寄存器，代码指明系统应自举到多用户还是单用户运行、是否提示输入要自举的文件名。VAX 上引导方式寄存器是 R11。

**bootstrapping**（自举）　使系统进入运行状态的操作。机器首次上电时通常不运行任何程序；自举初始化机器、从辅存向主存装入程序、启动该程序运行。

**bottom half**（下半部）　就系统运作而言，内核中因中断而被调用的例程集合。这些例程不能依赖任何每进程状态，因此不能通过调用 `sleep()` 例程阻塞。参见 top half。

**breakpoint fault**（断点故障）　进程执行断点指令时产生的硬件陷阱。

**broadcast**（广播）　向所有各方传输。网络中，广播消息（broadcast message）发送到连接在同一通信介质上的所有站。

**bss segment**（bss 段）　程序装入内存时要初始化为零的部分。bss 是 “block started by symbol”（由符号开始的块）的缩写。

**buffered**（缓冲的）　如“缓冲 I/O”中那样：把数据保持或缓冲起来以减少 I/O 操作次数的技术。例如标准 I/O 库缓冲对文件的输出，累计待写数据直到攒满一个文件系统块或应用发出冲刷请求。

**buffered data path**（缓冲数据通路）　UNIBUS 适配器中的数据通路，在 DMA 操作期间缓冲 UNIBUS 与 VAX 系统总线之间的数据传输。参见 unbuffered data path。

**bus**（总线）　计算机部件之间标准化的电气与机械互连。

**bus adapter**（总线适配器）　允许一种 I/O 总线接到另一种上的硬件设备。参见 MASSBUS adapter 和 UNIBUS adapter。

**byte**（字节）　数据的度量单位，几乎总是 8 位。参见 octet。

**C-block**（C 块）　C-list 数据结构中保存实际数据的数据缓冲。

**C-list**（C 链表）　系统在支持终端 I/O 时使用的链表数据结构。

**capability**（权能）　进程为获得对对象的访问而向系统呈交的数据。参见 access rights。

**catenet**（网际互联网）　主机接到特性各异的网络上、网络之间由网关互连的一种网络形态。DARPA Internet 就是一个 catenet 的例子。

**cathode ray tube（CRT）**（阴极射线管）　计算机终端常用的屏幕显示设备。含 CRT 的终端常被称为 CRT。

**caught signal**（已捕获信号）　信号的投递使信号处理例程被调用时，称信号被“捕获”。进程用 `sigvec` 系统调用安装信号处理程序。

**cbreak mode**（cbreak 模式）　终端设备的一种运作模式：进程从终端读输入时，输入一敲进立即被接收。与原始模式（raw mode）的差别在于系统仍做某些输入处理（如解释中断字符）。参见 cooked mode 和 raw mode。

**central processing unit（CPU）**（中央处理器）　计算机中主要的计算部件。CPU 是执行应用程序的处理单元；计算机中可以有附加的处理单元，例如处理 I/O 的。

**character**（字符）　表示单个可打印符号或控制符号的数据，通常 8 或 16 位长。参见 byte 和 octet。

**character device**（字符设备）　提供面向字符流的 I/O 接口或无结构（裸）接口的设备。例如终端多路复用器是呈现面向字符 I/O 接口的字符设备；所有磁带设备都支持向硬件提供裸接口的字符设备接口。不是字符设备的设备通常是块设备。

**character-device interface**（字符设备接口）　内核内访问面向字符设备所建立的约定，包括可以调用以做 I/O 操作的过程集合，以及每次调用必须传递的参数。

**character-device table**（字符设备表）　内核内的一张表，记录支持每种设备字符设备接口的设备驱动例程。字符设备表中表项的次序很重要：它定义了字符设备的主设备号。

**checksum**（校验和）　为数据块计算的数学函数值，用于检测数据块的损坏。

**child process**（子进程）　经 `fork` 系统调用创建的、另一进程的直接后代进程。

**client process**（客户进程）　客户-服务器通信模型中联系服务器进程请求服务的进程。客户进程通常与服务器进程无关，唯一关联是通信信道。

**CLOCK algorithm**（CLOCK 算法）　参见 global CLOCK algorithm。

**clock hand**（时钟指针）　描述虚拟内存系统页面置换策略所用全局 CLOCK 算法时使用的抽象。该算法把主存的全部页设想成一个环形回路，两个指针像钟表表面上的时针那样在回路的页间穿梭。

**cluster**（簇）　相邻物理内存页的逻辑分组。4.3BSD 中虚拟内存系统用这一分组模拟大于硬件支持的内存页。

**cold start**（冷启动）　自举过程的最初阶段。这个名字来自软件对机器状态不做任何假设——如同机器刚被打开还是冷的。

**communication domain**（通信域）　进程间通信设施用来组织通信网络或类似设施性质的一种抽象。通信域包括一组协议（协议族）、操纵和解释名字的规则（地址族），可能还有其他固有性质（如传递访问权的能力）。系统的进程间通信设施独立于所支持的通信域来定义，使应用能以独立于通信域的方式编写。

**communication protocol**（通信协议）　两个通信进程使用的一组约定和规则。

**configuration file**（配置文件）　含系统配置程序 **/etc/config** 参数的文件，描述系统应能支持的硬件设备和拓扑，以及杂项参数（如预计同时使用系统的最大用户数）。

**configuration procedure**（配置过程）　系统管理员为机器或一组机器配置内核所遵循的过程：定义配置文件，交给 **/etc/config** 程序生成构建内核所需的数据文件。

**connect request**（连接请求）　进程在套接字上做 `connect` 系统调用后，传给通信协议模块用户请求例程的请求。该请求使系统尝试在本地套接字和远程套接字之间建立关联。

**console monitor**（控制台终端）　接到控制台终端接口上的终端。

**console processor**（控制台处理机）　主 CPU 的辅助处理器，允许操作员启动和停止系统、监视系统运行、运行硬件诊断。

**context switching**（上下文切换）　中断当前运行进程并切换到另一进程的动作。进程依次被调度执行时上下文切换不断发生。VAX 上被中断进程的硬件上下文用 `svpctx` 指令保存在该进程的进程控制块中，另一进程的硬件上下文用 `ldpctx` 指令装载。

**continue signal**（继续信号）　信号 19（SIGCONT）。投递给被停止或睡眠的进程时使该进程恢复执行的信号。

**control request**（控制请求）　进程在套接字上做 `ioctl` 系统调用后，传给通信协议模块用户请求例程的请求。

**controlling terminal**（控制终端）　进程的这样一种终端设备：可能从它的键盘产生信号。进程的控制终端通常继承自父进程；父进程没有控制终端时，进程打开的第一个终端设备成为控制终端。

**cooked mode**（规范模式）　终端设备的一种运作模式：进程从终端读输入，要等敲入特殊的行结束字符（通常是回车）后才收到。规范模式是终端的正常模式，多数命令解释器都用它。参见 cbreak mode 和 raw mode。

**copy-on-write**（写时复制）　在对象被修改（写）之前维护对公共对象的多个引用的技术。对象被写之前先做副本，修改施加于副本而非原件。虚拟内存管理中，写时复制是管理多进程共享页的常用方案：共享页的全部 PTE 都设置成对该页的首次写引用引发缺页；缺页服务中，故障页替换为可写的私有副本。

**core file**（core 文件）　某些信号投递给进程时系统创建的（名为 **core** 的）文件。文件含信号发生时刻进程状态的记录，包括进程虚拟地址空间的内容，多数系统上还包括 user 结构。

**core map**（核心映射表）　4.3BSD 内核管理主存所用的数据结构。核心映射表为主存的每簇一个表项。

**CPU**（中央处理器）　参见 central processing unit。

**crash**（崩溃）　计算机科学家中间指意外的系统失效。

**crash dump**（崩溃转储）　崩溃时刻机器状态的记录，通常写到辅存上被认为安全的位置保存，直到信息可以恢复。

**CRT**（阴极射线管）　参见 cathode ray tube。

**current working directory**（当前工作目录）　进程的相对路径名从此解释的目录。进程的当前工作目录用 `chdir` 系统调用设置。

**cylinder**（柱面）　磁盘上从磁头组件的一个位置可访问到的磁道。

**cylinder group**（柱面组）　文件系统中，磁盘机上为信息局部化而聚在一起的一组柱面。文件系统按柱面组分配 inode 和数据块。

**daemon**（守护进程）　提供某种系统相关服务的长命进程。守护进程有的在内核态执行（如调页守护进程 pagedaemon），有的在用户态执行（如路由守护进程 routing daemon）。英语旧词 daemon 意为“神化的生灵”，与意为“恶灵”的 demon 相对。

**DARPA**（美国国防高级研究计划局）　美国国防部负责管理国防资助研究的机构。

**data path**（数据通路）　UNIBUS 适配器中，UNIBUS 与 VAX 系统总线之间的通道，DMA 操作期间数据经它传输。

**data segment**（数据段）　进程地址空间中装程序已初始化和未初始化数据部分的段。

**datagram socket**（数据报套接字）　建模可能不可靠、无连接分组通信的套接字类型。

**dbx** 4.2BSD 中首次引入的程序调试器名。

**decapsulation**（解封装）　网络通信中去除消息最外层头部信息的操作，与封装相反。

**demand paging**（请求调页）　一种存储管理技术：内存划分为页，页按需（即请求时）提供给进程。参见 pure demand paging。

**descriptor**（描述符）　文件被 `open` 系统调用引用、或套接字经 `socket`、`pipe`、`socket-pair` 系统调用创建时系统指派的整数。该整数唯一标识从给定进程（或其任何子进程）到该文件或套接字的访问路径。描述符还可以用 `dup` 和 `fcntl` 系统调用复制。

**descriptor table**（描述符表）　每进程一张的表，持有可以做 I/O 的对象的引用。I/O 描述符是这张表的下标。

**device**（设备）　UNIX 中接到 CPU 上的外设。

**device driver**（设备驱动）　内核的一部分软件模块，支持对某台外设的访问。

**device flags**（设备标志）　系统配置文件中指定并传给设备驱动的数据。标志的用途因驱动而异：终端设备驱动用标志指明应无视输入调制解调器控制信号的终端线路。

**device number**（设备号）　在块或字符设备类别中唯一标识设备的号码，由主设备号和次设备号两部分组成。

**device special file**（设备特殊文件）　进程经它访问机器硬件设备的文件，例如磁带机经这样的文件访问。

**direct memory access（DMA）**（直接存储器访问）　外设不经 CPU 协助访问主存的设施。DMA 通常用于在主存与外设之间传输连续的数据块。

**directed broadcast**（定向广播）　发送到发送方并不直接相连的网络上广播的消息。

**directory**（目录）　UNIX 中一种特殊类型的文件，含有指向其他文件的表项。按惯例目录至少含点（.）和点点（..）两个表项：点指目录自身，点点指父目录。

**directory entry**（目录项）　目录中的表项，在目录文件中以变长记录结构表示。每个结构持有文件名的 ASCII 字符串、为字符串提供的字节数、为表项提供的字节数，以及与文件名关联的 inode 号。按惯例 inode 号为零的目录项视为未分配，其空间可供使用。

**dirty**（脏的）　计算机系统中已被修改的对象称为“脏的”。系统通常跟踪对象是否为脏，因为重用对象占用的空间之前需要保存其内容。例如文件系统中，缓冲缓存中的缓冲内容被修改过即为脏；脏缓冲最终必须写回磁盘。

**disk partition**（磁盘分区）　磁盘机上用作交换区或存放文件系统的连续区域。

**distributed program**（分布式程序）　拆分到多个进程中的程序，进程可能分布在多台机器上。

**DMA**（直接存储器访问）　参见 direct memory access。

**double indirect block**（二级间接块）　参见 indirect block。

**ECC correction**（ECC 纠错）　用冗余纠错码（ECC）检测并纠正损坏数据的过程，常见于磁盘子系统。ECC 随每个磁盘扇区记录，用于识别和纠正记录数据中的位错误。

**effective GID**（有效组标识符）　参见 effective group identifier。

**effective group identifier（effective GID）**（有效组标识符）　系统与 groups 数组中的 GID 一起用来检查文件系统组访问权限的 GID。执行设置组标识符程序时设置有效 GID。参见 group identifier 和 real group identifier。

**effective UID**（有效用户标识符）　参见 effective user identifier。

**effective user identifier（effective UID）**（有效用户标识符）　系统用来检查多数用户权限的 UID。例如文件系统检查文件属主访问权限时用有效 UID。执行设置用户标识符程序时设置有效 UID。参见 user identifier 和 real user identifier。

**elevator sorting algorithm**（电梯排序算法）　动头磁盘 I/O 请求的设备驱动所用算法。算法按请求的柱面号把请求排成循环递增序，其名源于它排序磁盘请求的方式与电梯载客请求的最佳处理方式相似。

**emulate**（仿真）　模拟。

**encapsulation**（封装）　网络通信中创建一条把既有消息作为数据封入其中的消息的过程。协议通常靠制作一个前置协议头部来封装消息，头部指明原消息将按数据对待。与解封装相反。

**erase character**（擦除字符）　终端处理程序在规范模式下识别为“删除输入行中最后一个字符”的 ASCII 字符。每台终端可以有不同的擦除字符，且随时可用 `ioctl` 系统调用更改。原始或 cbreak 模式的终端不识别擦除字符。参见 word-erase character 和 kill character。

**errno** C 程序中保存错误码的全局变量，错误码指明系统调用失败的原因。VAX 上放在 errno 中的值由内核经寄存器 R0 返回，再由 C 运行时库的代码移入 errno。

**error-message buffer**（报错信息缓冲区）　参见 message buffer。

**fault rate**（缺页率）　进程产生缺页的速率。对引用串而言，缺页率定义为与时间无关的量：缺页次数除以引用串长度。

**fetch policy**（取页策略）　请求调页虚拟内存管理系统处理缺页所用的策略。取页策略的差别主要在数据的预调页处理上。

**ffs** VAX 的一条指令，定位一串位中第一个为一的位。

**FIFO**（命名管道）　UNIX 文件系统中可用于进程间通信的一种文件类型。一个进程写入 FIFO 的数据被另一个进程按发送顺序读取。名字源于数据按先进先出方式传输。

**file**（文件）　文件系统中被当作字节数组对待的对象。文件至少有一个名字，存在到所有名字都被显式删除为止。

**file offset**（文件偏移量）　与打开文件描述符关联的字节偏移。文件描述符的偏移量用 `lseek` 系统调用显式设置，或作为 `read` 或 `write` 系统调用的结果隐式设置。

**file structure**（file 结构）　内核用来保存引用一个文件的一个或多个打开文件描述符信息的数据结构。多数情况下每个打开的文件描述符引用唯一的 file 结构；描述符经 `dup` 和 `dup2` 复制、跨 `fork` 继承、或经进程间通信设施在消息中收到时，file 结构可以共享。

**filename**（文件名）　用来命名普通文件、特殊文件或目录的 ASCII 字符串。文件名中不得含空字符（0）和斜杠（/）的 ASCII 码。（4.3BSD 中文件名的第八位即奇偶位还必须为 0。）

**filesystem**（文件系统）　文件的集合。UNIX 文件系统是层次的：文件组织进目录；多数情况下文件系统限于单一物理硬件设备（如磁盘机）。文件系统典型地包括命名文件和控制文件访问的设施。

**fill-on-demand klustering**（按需填充成组）　虚拟内存系统用于预调页数据的技术。按需填充页缺页时，缺页处理程序尝试连同故障页两侧的相邻页一起读入。参见 kluster。

**fill-on-demand page fault**（按需填充缺页）　单个页的第一次缺页，必须从文件系统检索数据或分配零填充页来解决。

**fill-on-demand page-table entry**（按需填充页表项）　引用将引发按需填充缺页的 PTE。

**finite-state machine**（有限状态机）　一种表达一组决策规则的技术，只基于当前状态和一个或多个输入变量。

**first-level bootstrap**（第一级自举）　多级自举操作中最初执行的代码。第一级自举通常大小受限，所做不过是把一个更大更聪明的程序自举到运行状态。例如 VAX-11/750 的第一级自举限于 512 字节，唯一任务是自举 **boot** 程序，再由后者自举内核。

**foreground process**（前台进程）　面向作业控制的进程管理系统中，进程组与其控制终端相同的进程，因此允许读写终端。在别的意义上，前台进程是命令解释器正在等待的进程。与前台进程相对的是后台进程。

**fragment**（片）　文件系统中块的一部分。文件系统按整块或一块的一片或多片为文件分配新磁盘空间。文件系统用片而非只按整块单位分配空间，是为了在整块很大时减少浪费。

**fragment-descriptor table**（片描述符表）　文件系统中的数据结构，描述分配图表项中空闲的片。文件系统取分配图中的一个字节，用该字节索引片描述符表；表中的值指明该分配图表项中有多少特定大小的片可用。与期望片大小对应的位做逻辑与，系统即可快速判断期望的片是否在分配图表项内。

**free list**（空闲表）　存储管理系统中可用物理内存簇的列表（也称内存空闲表 memory free list）。系统中许多数据结构有类似的空闲表：inode、文件表表项、磁盘配额结构等。

**free-space reserve**（空闲空间保留）　文件系统中保持保留以确保文件系统某些分配算法良好运作的空间百分比。默认情况下文件系统保留可用空间的 10%。

**garbage collection**（垃圾收集）　应用无须显式释放即可回收内存未用部分的存储管理设施。

**GID**（组标识符）　参见 group identifier。

**global CLOCK algorithm**（全局 CLOCK 算法）　虚拟内存管理系统选择替换候选页所用算法。算法把主存全部页当作排成一个圆。两条逻辑指针（4.3BSD 用其变体）随后扫过各页：前指针扫过的页标记为未引用，后指针检查该页在前指针过后是否被引用过。后指针检查时发现未引用的页视为替换候选，否则忽略。

**go routine**（go 例程）　UNIBUS 设备的设备驱动提供的例程。UNIBUS 适配器支持例程分配好必要资源后，由它在设备上发起 I/O 操作。

**group identifier（GID）**（组标识符）　唯一标识一组用户的 16 位整数值。GID 用于文件系统提供的访问控制设施。参见 effective group identifier 和 real group identifier。

**half-open**（半打开）　只有连接两端之一认为连接仍打开时，称该连接为“半打开”。

**handler**（处理例程）　响应信号等事件而被调用的过程。

**hard limit**（硬限制）　不可超越的限制。参见 soft limit。

**hard link**（硬链接）　直接引用 inode 的目录项。指向单一 inode 的硬链接有多个而其中之一被删除时，其余链接仍引用该 inode。相比之下，符号链接是持有路径名的文件，用路径名引用文件。

**hard lock**（强制锁）　不可忽略或规避的锁。参见 advisory lock。

**heap**（堆）　UNIX 中进程的这样一块区域：可用 `sbrk` 系统调用动态扩展。其名源于数据放入该区域的杂乱方式。

**high watermark**（高水位线）　规定可缓冲数据量上限的数据流控制。进程间通信设施中，每个套接字的数据缓冲有一个高水位线，指明数据缓冲中排队的数据达到多少字节后，发送数据的请求将阻塞进程（或使用非阻塞 I/O 时返回错误）。

**hole**（空洞）　文件中属于文件但没有关联数据块的区域。进程读文件的空洞时文件系统返回零值数据。进程把文件指针定位到当前文件末尾之外写入、然后关闭文件，就造出空洞。

**home directory**（主目录）　用户登录系统时为用户的 shell 设置的当前工作目录，通常为用户私有。用户的主目录在用户口令文件表项的一个字段中指定。

**Host Dead message**（主机失效报文）　ARPANET PSN 发来的消息，指示先前的消息所发往的主机因 **宕机** 而不可用。

**host identifier**（主机标识符）　旨在唯一标识网络中一台主机的 32 位值，系统自举时用 `sethostid` 系统调用设置。进程可用 `gethostid` 系统调用取回主机标识符的值。主机标识符用于为进程、文件和用户等对象构造全网唯一的标识符。

**Host Unreachable message**（主机不可达报文）　指示先前消息所发往的主机因无已知路径到达而不可用的 ICMP 报文。

**ICMP**（网际控制报文协议）　参见 Internet Control Message Protocol。

**IDP**（网际数据报协议）　参见 Internetwork Datagram Protocol。

**IMP**（接口报文处理机）　参见 Interface Message Processor。

**indirect block**（间接块）　文件系统中，文件的前 12 块由 inode 直接指向。更多数据块用从 inode 指向 **间接数据块** 的指针描述：系统必须先取持有数据块号的间接块。4.3BSD 中至多要取两个间接块才能定位所需数据块。含数据块号的间接块称为一级间接块；含一级间接块块号的间接块称为二级间接块。4.3BSD 为含二级间接块块号的三级间接块留了位置但未使用。

**init** 系统自举时启动的第一个用户程序。这个程序（/etc/init）主要负责管理接到机器上的终端线路。

**initial sequence number**（初始序号）　参见 sequence space。

**inode**（索引节点）　文件系统用来描述文件的数据结构。inode 的内容包括文件的类型、文件属主的 UID，以及组成文件的磁盘块和片清单。注意 inode 没有名字；目录项用来把名字与 inode 关联。

**inode table**（索引节点表）　内核用来保存系统中活动 inode 的数据结构。inode 表总是驻留主存，表中不活跃的表项按 LRU 复用。

**Input/Output（I/O）**（输入/输出）　计算机与其外设之间的数据传输。

**intelligent gateway**（智能网关）　能对网络数据的路由做明智决策的网关机器。这类机器通常参与某种路由信息随网络拓扑变化动态更新的方案；还应能对路由决策不佳的主机回送路由重定向报文。

**interactive program**（交互式程序）　必须周期性获取用户输入才能工作的程序，例如面向屏幕的文本编辑器。

**Interface Message Processor（IMP）**（接口报文处理机）　构建 ARPANET 等分组交换网络所用硬件设备的最初名称。参见 Packet Switch Node。

**Internet Control Message Protocol（ICMP）**（网际控制报文协议）　DARPA Internet 中用于报告错误和控制 IP 运作的主机到主机通信协议。

**internet domain**（网际域）　进程间通信设施中支持 DARPA Internet 体系结构的通信域。

**internet host address**（网际主机地址）　DARPA Internet 中同时标识主机所在网络和网上主机的 32 位数。

**Internet Protocol（IP）**（网际协议）　DARPA Internet 使用的网络层通信协议。IP 负责主机到主机的编址与路由、分组转发、分组的分片与重组。

**Internetwork Datagram Protocol（IDP）**（网际数据报协议）　施乐网络系统体系结构中充当 1 级协议的通信协议。IDP 负责网际分组格式、网际编址和路由。

**interprocess communication（IPC）**（进程间通信）　进程之间的数据传递。多数进程间通信设施的设计让数据在进程之外的对象之间传递。不直接面向进程的进程间通信模型有它的好处：可以建模通信端点位置无关、甚至动态迁移的场景。例如 4.3BSD 中通信在套接字之间而不是进程之间进行。

**interrupt**（中断）　计算机系统中，当前执行进程之外的事件引起指令正常执行流改变。中断通常由 CPU 之外的硬件设备产生。

**interrupt priority level**（中断优先级）　与设备中断关联的优先级。这一值通常由设备控制器上的开关或跳线定义，随硬件设备的每个中断请求一起传输。参见 processor priority level。

**interrupt stack**（中断栈）　响应中断和陷阱而被调用的过程使用的运行时栈。VAX 上提供一个独立于各进程 user 结构中正常内核运行时栈的全系统中断栈。

**interrupt vector**（中断向量）　系统已知的存储位置，含给定中断或异常发生时要执行过程的起始地址。系统为每个发中断的设备控制器和每类异常定义单独的向量。

**interrupt-vector table**（中断向量表）　中断向量组成的表。多数支持向量中断的机器上，发中断设备提供的向量用来索引中断向量表。VAX 用若干张中断向量表；例如每个 UNIBUS 适配器有自己的中断向量表。参见 vectored interrupt。

**I/O**（输入/输出）　参见 Input/Output。

**I/O page**（I/O 页）　地址空间中可访问 I/O 设备控制寄存器的区段。VAX 上每个 UNIBUS 适配器地址空间的最后 8 KB 保留为 I/O 页，经它访问 UNIBUS 设备控制寄存器。参见 memory-mapped I/O architecture。

**I/O redirection**（I/O 重定向）　把 I/O 流从默认指派改为他向。例如所有标准 shell 都允许用户把程序的输出重定向到文件。

**I/O stream**（I/O 流）　发往或来自进程的一股数据流。多数 UNIX 的 I/O 流有单一共同数据格式，使用户能以面向工具的方式编写程序，并把这些程序按管道线组合——把一个程序的标准输出流引向另一个程序的标准输入流。

**I/O vector**（I/O 向量）　参见 iovec。

**iovec** 用来向内核指定用户 I/O 请求的数据结构。每个结构持有数据缓冲的地址和待读写的数据字节数；这种结构的数组随 `readv` 和 `writev` 系统调用传入内核。

**IP**（网际协议）　参见 Internet Protocol。

**IPC**（进程间通信）　参见 interprocess communication。

**job**（作业）　UNIX 中具有同一进程组标识符的一组进程。多进程的作业通常由管道线创建。作业是作业控制操纵的基本对象。

**job control**（作业控制）　管理作业的设施。有作业控制，作业可以被启动、停止、杀死，也可以在前台与后台之间移动。终端处理程序提供自动停止试图访问控制终端的后台作业、并把这类事件通知作业的控制进程的设施。

**keepalive packet**（保活报文）　TCP 用来维护“目的主机是否还在”信息的一种分组。保活报文发往远程主机，主机若在必须响应。多条保活报文在合理时间内都无响应，连接即被终止。保活报文只用在为设置了 SO\_KEEPALIVE 选项的套接字创建的 TCP 连接上。

**keepalive timer**（保活计时器）　TCP 协议配合保活报文使用的计时器。保活报文发出时设置；报文在计时器数次到期前仍无响应，连接即被关闭。

**kernel**（内核）　提供基本系统设施的中央控制程序。UNIX 内核创建并管理进程、提供访问文件系统的功能、供应通信设施。UNIX 内核是用户不能替换的 UNIX 的唯一部分。

**kernel map**（内核映射表）　4.3BSD 内核分配映射用户进程地址空间的 PTE 所用的资源映射。

**kernel mode**（内核态）　特权最高的处理机访问模式。UNIX 内核在内核态运行。

**kernel process**（内核进程）　处理机在内核态执行的进程。调页守护进程（pagedaemon）和交换进程（swapper）是内核进程的例子。

**kernel state**（内核状态）　内核的运行时执行状态，包括程序计数器、通用寄存器和运行时栈，每次上下文切换时必须保存和恢复。

**kill character**（kill 字符）　终端处理程序在规范模式下识别为“删除本终端自上一行结束字符以来所敲全部内容”的 ASCII 字符。每台终端可以有不同的 kill 字符，且随时可用 `ioctl` 系统调用更改。原始或 cbreak 模式的终端不识别 kill 字符。参见 erase character 和 word-erase character。

**kluster**（K 簇）　按进程虚拟地址空间中的局部性相关联的一组页。这一分组由虚拟内存系统在服务某些缺页时执行，目的在预调页。名字拼作 k 是为了与页的成簇（clustering）区分。参见 fill-on-demand klustering。

**ldpctx** VAX 的一条指令，使当前 VAX 进程状态从 PCBB 寄存器所指的进程控制块装载。参见 svpctx。

**least recently used（LRU）**（最近最久未使用）　一种复用策略：最近最久未使用的项最先复用。例如文件系统中做 I/O 的数据缓冲数量固定，持有有效数据的缓冲按 LRU 次序重新分配，期望缓冲中的数据能被后续读请求再次用到。

**line discipline**（行规程）　内核中的处理模块，在异步串行接口或其软件仿真上提供语义。行规程由过程式接口描述，其入口点存在 `linesw` 数据结构中。

**line mode**（行模式）　参见 cooked mode（规范模式）。

**link layer**（链路层）　ISO 开放系统互连参考模型中的第 2 层，负责单个物理网络内消息的（可能不可靠的）交付。链路层与 4.3BSD 网络子系统的网络接口层最接近。

**listen request**（监听请求）　进程在套接字上做 `listen` 系统调用后传给通信协议模块用户请求例程的请求。该请求指示系统应监听建立到该套接字连接的请求；否则系统将拒绝为该套接字收到的连接请求。

**load average**（平均负载）　系统 CPU 负载的度量。4.3BSD 的平均负载定义为可运行进程数与等待磁盘 I/O 完成的进程数之和在过去 1 分钟内的平均。

**locality of reference**（引用局部性）　运行程序的内存引用在短时间内集中于虚拟地址空间局部的现象。多数程序都表现出某种程度的引用局部性；这种局部性使系统值得预取与故障页相邻的页，降低运行程序的缺页率。

**logical block**（逻辑块）　文件的线性长度按底层文件系统块大小划分得到的块。文件的每个逻辑块映射到一个物理块。这一层额外映射使物理块在磁盘上的摆放不必顾及文件中逻辑块的线性组织。

**logical drive partitions**（逻辑驱动器分区）　把磁盘机划分为一个或多个线性区间（分区）的软件方案。

**logical unit**（逻辑部件号）　指明硬件设备部件号的整数。硬件设备和部件号以自举序列自动配置阶段系统发现的逻辑设备和部件表达。例如引用磁盘机 2 的分区 1 通常指引导时识别的第 3 台磁盘机（设备从 0 编号）的分区 1。逻辑部件号与物理设备间的实际映射由构建内核的配置文件定义。为灵活起见，多数系统配置成支持物理与逻辑设备之间相当动态的映射；这种动态映射允许例如系统管理员把磁盘机从一台控制器挪到另一台而无须重新配置新内核或重建设备的关联特殊文件。

**long-term–scheduling algorithm**（长期调度算法）　参见 short-term–scheduling algorithm。

**loop**（页环）　虚拟内存系统中，构成主存中供可调页进程使用部分的页的环形集合。虚拟内存系统用全局 CLOCK 算法管理页环中的页。

**lossy**（易丢包的）　数据丢失率高的通信介质称为“易丢包的”。

**low watermark**（低水位线）　规定采取动作前必须存在的最小数据量的数据流控制。进程间通信设施中，每个套接字的数据缓冲有一个低水位线，指明数据缓冲中必须有多少数据接收请求才能被满足。

**LRU**（最近最久未使用）　参见 least recently used。

**machine check**（机器检查）　VAX 上表示 CPU 检测到自身内部错误的异常机器状况，例如高速缓存内存中检测到奇偶错误时产生机器检查。

**magic number**（魔数）　可执行文件头几个字节中指明该文件类型的数。VAX 上魔数出现在每个可执行文件的前 4 个字节。

**main memory**（主存）　机器的主要内存系统。

**major-device number**（主设备号）　唯一标识设备类型的整数，定义为设备驱动入口点数组的下标；例如用户用 `mknod` 系统调用创建设备特殊文件时使用。

**mapped**（已映射的）　建立了把对象各页映射进进程地址空间的页表时，称对象被映射进进程的虚拟地址空间。

**mark and sweep algorithm**（标记-清除算法）　一种垃圾收集算法：扫过可收集对象的集合，标记每个被引用的对象。标记阶段后仍无标记的对象被回收。

**masked**（屏蔽的）　信号被 `sigblock` 或 `sigsetmask` 系统调用指明后称“被屏蔽”。信号被屏蔽时投递推迟到解除屏蔽。此外 4.3BSD 中系统自动屏蔽正在处理的信号。

**MASSBUS** DEC 为比 UNIBUS 所支持的速度更高的高速大容量存储外设设计的 I/O 总线，主要见于较老的 PDP-11 和 VAX 计算机。

**MASSBUS adapter**（MASSBUS 适配器）　允许 MASSBUS 接到 VAX 系统总线上的硬件设备。

**MASSBUS-adapter support routines**（MASSBUS 适配器支持例程）　内核中用于实现 MASSBUS 外设设备驱动的例程集合。这些例程调度 MASSBUS 适配器资源（内存映射寄存器和数据通路）的使用。

**MASSBUS unit number**（MASSBUS 部件号）　设备驱动用来标识 MASSBUS 适配器的整数。设备驱动使用的 MASSBUS 部件号是逻辑编号，由系统自举时构建的表映射为物理部件号；这种映射为机器上设备配置提供灵活性。

**master device**（主设备）　参见 slave device。

**maximum segment lifetime（MSL）**（最长报文段生存期）　数据报文段可在网络中存在的最长时间。参见 2MSL timer。

**mbuf**（内存缓冲）　描述一块数据的数据结构，用于进程间通信设施。mbuf 是 memory buffer（内存缓冲）的简写。

**memory address**（内存地址）　指明内存位置的数，常按其引用物理内存还是虚拟内存分为物理地址或虚拟地址。

**memory free list**（内存空闲表）　参见 free list。

**memory-management system**（存储管理系统）　操作系统中负责管理机器可用内存资源的部分。

**memory-management unit**（存储管理单元）　实现地址转换和内存保护等存储管理相关任务的硬件设备。多数当代存储管理单元还支持请求调页虚拟内存管理。

**memory-mapped I/O architecture**（存储映射 I/O 体系结构）　硬件设备关联的数据结构作为机器物理地址空间一部分访问的体系结构。这类设备称为存储映射的，与用专用机器指令访问硬件设备的体系结构相对。参见 I/O page。

**message buffer**（消息缓冲区）　系统记录发往控制台终端全部内核消息的环形缓冲。用户程序可用 **/dev/klog** 设备读这一缓冲，方式保证不丢数据。VAX 上消息缓冲在系统自举早期分配，放在高地址内存，重启后可以定位，使崩溃前打印的消息得以保存。

**minor-device number**（次设备号）　唯一标识设备子单元的整数。例如磁盘设备的次设备号指明分区，终端多路复用器的次设备号标识具体终端线路。次设备号按设备解释，例如用户用 `mknod` 系统调用创建设备特殊文件时使用。

**modem control**（调制解调器控制）　对数据通信设备而言，对一组信号的支持：在 RS-232 标准规范的异步串行线路上确保连接的可靠发起与终止。只有经拨号调制解调器访问的串行线路一般才需要调制解调器控制支持。

**MSL**（最长报文段生存期）　参见 maximum segment lifetime。

**multilevel feedback queue**（多级反馈队列）　一种排队方案：请求划分进多个有优先级的子队列，请求按动态变化的标准在子队列间移动。4.3BSD 内核用多级反馈排队方案调度进程的执行。

**multiplexed file**（多路复用文件）　第七版 UNIX 系统支持的一种用于进程间通信的文件类型。

**network address**（网络地址）　指明一台主机的数。

**network architecture**（网络体系结构）　定义一个网络的协议、设施和约定（如网络地址格式）的集合。与机器体系结构一样，网络体系结构可以不同方式实现；例如有些网络体系结构专门为允许其硬件设备实现而设计。

**network byte order**（网络字节序）　网络为传输大于一个八位组的协议字段定义的顺序。DARPA Internet 协议中这一顺序是“最高有效八位组在前”。

**network-interface layer**（网络接口层）　4.3BSD 网络子系统中负责在连接到公共传输介质的主机之间传输消息的软件层，主要关心驱动所涉传输介质并做必要的链路级协议封装与解封装。

**network layer**（网络层）　4.3BSD 网络子系统中负责交付发往远程传输层或网络层协议的数据的软件层。

**network mask**（网络掩码）　DARPA Internet 子网编址方案中使用的值。网络掩码指明从本地 Internet 地址提取网络标识符时系统应计入本地地址中的哪些位。

**network virtual terminal**（网络虚拟终端）　跨网络连接收发数据的终端设备。

**new terminal driver**（新终端驱动）　扩展旧终端驱动以支持作业控制和逻辑行编辑设施的终端行规程。

**nexus**（连接点）　VAX 上到主系统总线的物理连接，支持数据和控制信息（如中断向量）的传输。

**nice** UNIX 中用户可控的进程调度参数。进程 `nice` 变量的值用于计算进程的调度优先级：`nice` 为正值表示进程愿意少占处理机份额，负值表示应多给份额。

**nonblocking I/O**（非阻塞 I/O）　描述符可被置入的一种模式：描述符上的任何 I/O 操作若会导致进程阻塞，系统就返回错误。例如对处于非阻塞 I/O 模式的描述符做 `read` 系统调用而无数据可用时，系统返回错误码 EWOULDBLOCK 而不是阻塞进程等数据。参见 signal-driven I/O。

**nonlocal goto**（非局部跳转）　绕过程序中例程边界的正常执行流的控制转移。例如过程 A 调用过程 B、B 调用 C，从 C 直接到 A（绕过 B）的控制转移就是非局部跳转。

**nonresident**（不驻留）　主存中不存在的对象称为“不驻留”。例如进程虚拟地址空间中的页若从未被引用过可以不驻留。

**octet**（八位组）　数据表示的基本单位，8 位的字节。许多网络协议的定义用八位组而不用字节，因为一些机器用别的字节大小。

**old terminal driver**（旧终端驱动）　UNIX 32V 和第七版 UNIX 中的终端行规程，只支持基于擦除和 kill 字符的非常简单的行编辑设施。词擦除和字面字符等更高级的行编辑设施以及作业控制支持都在新终端驱动中。

**Optimal Replacement Policy**（最优置换算法）　优化请求调页虚拟内存系统性能的置换策略。本书中最优置换算法指已知程序完整引用串的先验知识、按缺页次数最少选页的策略。

**out-of-band data**（带外数据）　在正常数据流之外传输和接收的数据。流套接字支持逻辑上独立的带外数据信道，至少可以发送至少一字节数据的至少一条消息。系统立即通知接收进程带外数据的存在，带外数据可以不按收到的数据顺序提取。

**overlay**（覆盖）　计算机系统中可按需被其他同类区域替换的代码或数据区域。覆盖通常按需装入进程地址空间，可能叠在另一覆盖之上。对程序太大装不进不支持虚拟内存的机器地址空间的场合，覆盖是常用的方案。

**P0 base register（P0BR）**（P0 基址寄存器）　VAX 上的处理器寄存器（或其在进程控制块中的保存值），含进程 P0 区页表的虚拟地址（P0 区映射进程的正文、数据和堆）。

**P0 length register（P0LR）**（P0 长度寄存器）　VAX 上的处理器寄存器（或其在进程控制块中的保存值），含进程 P0 区页表的表项数。

**P0BR**（P0 基址寄存器）　参见 P0 base register。

**P0LR**（P0 长度寄存器）　参见 P0 length register。

**P1 base register（P1BR）**（P1 基址寄存器）　VAX 上的处理器寄存器（或其在进程控制块中的保存值），含进程 P1 区页表的虚拟地址（P1 区映射进程的栈和用户区）。

**P1 length register（P1LR）**（P1 长度寄存器）　VAX 上的处理器寄存器（或其在进程控制块中的保存值），含进程 P1 区中不存在页的页表表项数。

**P1BR**（P1 基址寄存器）　参见 P1 base register。

**P1LR**（P1 长度寄存器）　参见 P1 length register。

**Packet Exchange（PEX）**（分组交换协议）　施乐网络系统体系结构中的标准数据报服务。这一设施在 4.3BSD 中由使用 IDP 数据报套接字的用户级库实现。

**Packet Switch Node（PSN）**（分组交换节点）　构建 ARPANET 等分组交换网络所用的硬件设备。每个 PSN 使用一种提供可靠、有流控的分组交换功能的协议。参见 Interface Message Processor。

**page**（页）　存储管理中划分物理或虚拟地址空间所用的定长计量单位。参见 demand paging。

**page fault**（缺页）　进程引用其虚拟地址空间中未标记驻留内存的页时产生的异常。

**page push**（页面推出）　脏页的页面换出。

**page reclaim**（页面回收）　故障页位于内存（通常在内存空闲表上）时的一次缺页。

**page-table entry（PTE）**（页表项）　标识虚拟地址空间中一页位置和状态的数据结构。虚拟页在内存时，PTE 含把虚拟页映射到物理页所需的页框号；不在内存时，PTE 含创建该页或在辅存上定位该页所需的信息。

**pagedaemon**（调页守护进程）　4.3BSD 中负责把进程地址空间的部分内容写往辅存、以支持虚拟内存系统调页设施的进程名。参见 swapper。

**pagein**（页面换入）　虚拟内存系统执行的操作：从辅存读入一页的内容。

**pageout**（页面换出）　虚拟内存系统执行的操作：把一页的内容写到辅存。

**pageout in progress**（页面换出进行中）　已开始但尚未完成的页面换出操作。4.3BSD 中系统跟踪每个共享正文段的页面换出数，确保回收此类段的资源时无其他引用。

**paging**（调页）　把执行进程的页在被引用时调入内存、被置换时移出内存的动作。进程执行时，其全部页都称为驻留在虚拟内存；只有活跃使用的页需要驻留主存，其余页可以待在磁盘上等需要时再调。

**panic**（恐慌）　UNIX 中内核检测到的不可恢复系统故障。4.3BSD 靠重启机器、修复文件系统损坏、恢复正常运行自动从 panic 恢复。参见 crash dump。

**parent process**（父进程）　经 `fork` 系统调用与另一进程有直接亲缘关系的进程。

**partition**（分区）　参见 disk partition。

**pathname**（路径名）　以可选斜杠（/）开始、后跟零个或多个以斜杠分隔的目录名、可选以文件名结尾的空字符结尾字符串。路径名以斜杠开始称绝对路径名（absolute pathname），从根目录开始查找；否则称相对路径名（relative pathname），从进程的当前工作目录开始查找。单独一个斜杠命名根目录，空路径名指当前工作目录。

**PCB**（进程控制块）　参见 process control block。

**PCBB**（进程控制块基址）　参见 Process Control Block Base。

**persist timer**（持续计时器）　TCP 用来维持连接输出流的计时器。数据就绪可发但发送窗口太小不值得发送、且无未决数据时启动；到期仍无窗口更新就发窗口探测报文。

**PEX**（分组交换协议）　参见 Packet Exchange。

**physical block**（物理块）　系统把逻辑块映射到的一个或多个连续磁盘扇区。

**physical unit number**（物理部件号）　设备控制器认可的、指明特定硬件单元的整数。例如磁带机有物理部件号，用户向磁带控制器发请求时必须用它指明设备。物理部件号常与系统使用的逻辑部件号不同。

**PID**（进程标识符）　参见 process identifier。

**pipe**（管道）　支持相关进程间单向数据流的进程间通信设施，数据传输面向流、可靠、有流控。shell 用 “|” 符号指定管道：程序 **a** 的标准输出接到程序 **b** 的标准输入，用命令 “a | b”。

**pipeline**（管道线）　一进程的标准输出经管道接到下一进程标准输入的进程序列。

**placement policy**（放置策略）　虚拟内存系统服务缺页时把页放进主存何处的策略。

**POSIX** IEEE 建立的 P1003 可移植操作系统接口标准组。其第一个标准是 1988 年通过的内核接口 1003.1。

**post a signal**（投递信号）　通知进程有信号待决。由于信号关联的动作多数由接收进程执行，投递信号通常不过是把待决信号记入进程的 proc 结构并安排进程运行。

**prefetching**（预取）　在数据需要之前取得。许多机器预取机器指令，使取指令的时间与解码指令的时间重叠。

**prepaging**（预调页）　内存页的预取。预调页是虚拟内存系统用来减少缺页次数的技术。

**probe routine**（探测例程）　负责判断硬件设备是否在机器上、并尝试让设备中断的设备驱动例程。

**probing**（探测）　检查硬件设备是否在机器上的操作。每种不同类型的硬件设备通常需要自己的探测技术。

**/proc filesystem**（/proc 文件系统）　以文件系统为接口访问活动进程、可用来构造进程调试设施的机制。每个进程由伪目录 **/proc** 中的一个目录项表示；应用打开 **/proc** 中与进程关联的文件即可像常规文件那样用 `read` 和 `write` 系统调用访问进程的虚拟地址空间。这一设施属于第八版 UNIX 系统。

**proc structure**（proc 结构）　内核为系统中每个活动进程维护的数据结构。与换出时移往辅存的 user 结构不同，进程的 proc 结构总是驻留。

**process**（进程）　操作系统中的一条任务或执行线程。UNIX 中用户进程经 `fork` 系统调用创建。

**process control block（PCB）**（进程控制块）　用来保存进程上下文的数据结构。VAX 上硬件 PCB 含上下文的硬件部分；软件 PCB 含软件部分，紧随硬件 PCB 之后位于内存。

**Process Control Block Base（PCBB）**（进程控制块基址）　VAX 上持有当前运行进程进程控制块物理地址的寄存器。

**process group**（进程组）　同一台机器上具有同一进程组标识符的进程集合，用来仲裁争夺同一终端的多个作业。

**process-group identifier**（进程组标识符）　唯一标识系统中每个活动进程组的正整数，典型地定义为进程组长的 PID。命令解释器实现作业控制、用 `killpg` 系统调用向进程组广播信号、用 `setpriority` 系统调用更改组内全部进程的调度优先级时都使用它。

**process-group leader**（进程组长）　组内 PID 用作进程组标识符的进程，典型地是管道线中的第一个进程。

**process identifier（PID）**（进程标识符）　唯一标识系统中每个活动进程的非负整数。

**process open file table**（进程打开文件表）　参见 descriptor table。

**process priority**（进程优先级）　内核调度进程执行使用的参数，随进程的运行动态变化；此外可为进程设置 `nice` 参数，加权总体调度优先级。

**process table**（进程表）　描述系统中全部活动进程的 proc 结构集合，总是驻留主存。

**processor priority level**（处理机优先级）　用来控制中断向 CPU 交付的优先级。多数机器支持多个可执行的处理器优先级，中断也发生在多个级别。中断投递给处理器时，中断的优先级高于处理器的优先级则被受理并转向服务；否则不被理睬，扣住直到处理器优先级降到允许受理的水平。更改处理机优先级通常是只在内核态执行的特权操作。

**Processor Status Longword（PSL）**（处理机状态长字）　VAX 上的处理器寄存器，由一个字长的特权处理器状态和处理机状态字（PSW）组成。特权状态含当前处理机优先级、当前和先前访问模式、中断栈位；PSW 含条件码、算术陷阱使能标志和跟踪陷阱使能位等非特权状态。

**protocol family**（协议族）　同属单一网络体系结构的一组通信协议。例如 TCP、UDP、IP 和 ICMP 协议属于 DARPA Internet 的协议族。

**protocol switch structure**（协议开关结构）　保存内核支持的每个通信协议全部入口点的数据结构。

**pseudo-DMA**（伪 DMA）　用软件模拟 DMA 的技术，通常用于设备驱动需要收发满足实时约束的数据而正常运作无法满足的场合。

**PSL**（处理机状态长字）　参见 Processor Status Longword。

**PSN**（分组交换节点）　参见 Packet Switch Node。

**PTE**（页表项）　参见 page-table entry。

**pure demand paging**（纯请求调页）　不带预调页的请求调页。

**raw-device interface**（裸设备接口）　磁盘和磁带等面向块设备的字符设备接口，向底层设备提供裸访问，安排进程与设备之间的直接 I/O。

**raw mode**（原始模式）　终端设备的一种运作模式：进程从终端读输入时，输入一敲进立即被接收且不加解释。参见 cooked mode 和 cbreak mode。

**raw socket**（裸套接字）　提供对低层通信协议直接访问的套接字。

**Ready for Next Message（RFNM）**（就绪接收下一报文）　主机与 PSN 之间协议中的一类消息。PSN 收到未决报文的确认时从 PSN 发往所连的本地主机，指示 PSN 准备好接收发往远程主机的新报文。RFNM 报文是 PSN 提供的主机到主机流控设施的一部分。

**real GID**（实际组标识符）　参见 real group identifier。

**real group identifier（real GID）**（实际组标识符）　进程终止时记入记账记录的 GID。进程的实际 GID 最初在用户登录系统时设置，随后跨后续 `fork` 和 `execve` 系统调用被子进程继承（与程序是否设置组标识符无关）。实际 GID 可用 `setregid` 系统调用变为有效 GID。参见 effective group identifier。

**real UID**（实际用户标识符）　参见 real user identifier。

**real user identifier（real UID）**（实际用户标识符）　就进程而言，拥有该进程的用户的真实身份。进程的实际 UID 最初在用户登录系统时设置，随后跨后续 `fork` 和 `execve` 系统调用被子进程继承（与程序是否设置用户标识符无关）；进程终止时记入记账记录。实际 UID 可用 `setreuid` 系统调用变为有效用户标识符。参见 effective user identifier。

**receive window**（接收窗口）　TCP 中定义系统将接受的连接数据的序号范围；收到序号超出此范围的数据即被丢弃。参见 sliding-window scheme。

**reclaim**（回收）　参见 page reclaim。

**reclaim from free**（从空闲表回收）　从内存空闲表进行的页回收操作。页面置换算法回收了某页、该页尚未重新指派就有进程对它缺页时发生这种情形。

**red zone**（红区）　（VAX 上）紧贴每进程运行时栈最后一页下方的只读内存区域。系统设置红区，使进程覆写其内核态运行时栈时发生故障。

**reference bit**（引用位）　PTE 中指明进程是否访问过关联页的位。VAX 体系结构不支持引用位，该位用软件模拟。

**reference string**（引用串）　描述进程在其执行期间所引用页的数据集，代表进程生命周期中离散时刻与内存相关的行为。

**referenced**（已引用的）　虚拟内存系统中，被读过或写过的页视为已被引用。

**register save mask**（寄存器保存掩码）　VAX 上描述用 VAX 调用指令调用的过程在入口要保存哪些寄存器的字。

**relative pathname**（相对路径名）　参见 pathname。

**reliably delivered message socket**（可靠投递报文套接字）　保证数据可靠交付并保留消息边界、但不基于连接的套接字类型。

**relocation**（重定位）　把程序内容从地址空间一处复制到另一处。复制可伴随对程序映像的修改，使程序中编码的内存引用在复制后保持正确；不绑定特定起始内存地址的代码称为可重定位的（relocatable）。

**replacement policy**（置换策略）　请求调页虚拟内存管理系统在内存不可用时选择复用页所用的策略。

**resident**（驻留）　主存中存在的对象称为“驻留”。例如进程虚拟地址空间中的页若内容在主存中即为驻留。

**resource map**（资源映射表）　系统用来管理可用线性区间描述的资源分配的数据结构。

**retransmit timer**（重传计时器）　TCP 用来触发数据重传的计时器。每次向远程主机发送数据时设置，值取预期大于接收主机收到数据并返回确认所需时间的量。

**RFNM**（就绪接收下一报文）　参见 Ready for Next Message。

**root directory**（根目录）　用来解析绝对路径名的目录。每个进程有一个可用 `chroot` 系统调用设置的根目录；系统有一个唯一的根目录，身份在系统自举时设置。

**root filesystem**（根文件系统）　含被视为机器上全部文件系统之根的根目录的文件系统。默认根文件系统的身份编译进内核，尽管系统自举时实际使用的根文件系统可以设为别的。

**rotational-layout table**（旋转布局表）　描述文件系统中各块旋转位置的每文件系统数据结构。文件系统用它为文件分配选择旋转最优的块。

**round robin**（轮转）　排队中的一种算法：每个请求者按先来先服务顺序服务固定一段时间；服务后未完成的请求放回队列尾。

**route**（路由）　分组交换网络通信中，到某目的地的路由指明数据要到达目的地必须经哪些主机传输。

**routing daemon**（路由守护进程）　4.3BSD 中为系统提供路由管理服务的进程，使用随拓扑连通变化动态更新的路由信息分布式数据库的协议。

**routing redirect message**（路由重定向报文）　网关认出收到的报文可以经更直接的路由投递时生成的报文。

**run queue**（运行队列）　可执行进程的队列。

**SBR**（系统基址寄存器）　参见 system base register。

**scatter loading**（分散装载）　UNIX 32V 使用的一种存储管理技术。分散装载下，进程装入内存时其地址空间的内容装入（可能）不连续的内存区域。分散装载比装进单一连续区域更省空间，但可能导致内存碎片。

**scheduling**（调度）　操作系统中共享资源所用的规划。例如进程调度用来共享 CPU 和主存。

**scheduling priority**（调度优先级）　内核维护的每进程参数，指明内核调度进程执行的优先级。进程在用户态执行时，系统用进程优先级和 `nice` 参数周期性计算调度优先级。

**secondary storage**（辅存）　存放主存装不下的数据的存储，通常位于磁盘机等旋转磁介质。参见 backing storage。

**sector**（扇区）　磁盘上可用单次 I/O 访问的最小连续区域。

**segment**（段）　由基址和范围定义的连续数据区间。存储管理中，段由连续内存地址区间定义，用来描述进程地址空间的一部分或主存的一部分；通信协议中，段由有关联数据的连续序号区间定义。

**send window**（发送窗口）　TCP 中定义系统可在连接上发送、且确信接收方有空收下的数据的序号范围。序号先于发送窗口起点的数据已发送且确认；晚于窗口末端的数据在发送窗口扩大到包含它们之前不会发送。参见 sliding-window scheme。

**sense request**（状态请求）　进程在套接字上做 `stat` 系统调用后传给通信协议模块用户请求例程的请求。

**sequence space**（序号空间）　TCP 连接上为所传数据指派的序号范围。TCP 中序号取自以称为初始序号（initial sequence number）的任意值开始的 32 位循环空间。

**Sequenced Packet Protocol（SPP）**（顺序分组协议）　施乐网络系统体系结构中充当 2 级协议的通信协议。SPP 叠在 IDP 之上，提供可靠、不重复、有流控的消息传输。

**sequenced packet socket**（顺序分组套接字）　建模有序、可靠、不重复、基于连接且保留消息边界的通信的套接字类型。

**Serial Line IP（SLIP）**（串行线路 IP）　在异步串行线路上传输 IP 数据报所用的封装，也是实现这一封装的行规程。

**server process**（服务器进程）　经进程间通信设施向客户进程提供服务的进程。

**session**（会话）　作业控制中，单次登录期间启动的全部进程。

**set-group-identifier program**（设置组标识符程序）　带附加组特权运行的程序，由文件 inode 中的一位指明。进程在 `execve` 系统调用中指定这样的文件时，文件的 GID 成为进程的有效 GID。

**set-priority-level**（设置优先级）　设置当前处理机优先级的请求。4.3BSD 在 VAX 上所有这类请求都以调用名字带 “spl” 前缀的例程发出；例如要把处理机优先级提到足以屏蔽终端处理中断，调用 `spltty()` 例程。

**set-user-identifier program**（设置用户标识符程序）　以不同于启动它的进程的 UID 运行的程序，由文件 inode 中的一位指明。进程在 `execve` 系统调用中指定这样的文件时，文件的 UID 成为进程的有效 UID。

**shadow swap map**（影子交换映射）　每个进程 user 结构中的数据结构，在进程持有既有交换空间期间临时记录为它新分配的交换空间。

**shared text segment**（共享正文段）　被多于一个进程共享的正文段。只能从某些类型的程序创建，由魔数识别；这类程序的正文段取整到使共享可能的大小。参见 text segment。

**shell**（shell）　解释并执行用户命令的程序。用户登录 UNIX 系统时，通常创建一个 shell 进程，其标准输入、标准输出和标准错误描述符指向用户登录的终端或网络虚拟终端。

**short-term–scheduling algorithm**（短期调度算法）　系统从被认为可运行的进程集合中选出下一个运行进程所用的算法。另一方面，长期调度算法（long-term–scheduling algorithm）靠把进程换入换出主存（从而换出换入可运行进程集合）来影响可运行进程的集合。

**signal**（信号）　UNIX 中的一种软件事件；4.3BSD 中这一事件仿照硬件中断建模。

**signal-driven I/O**（信号驱动 I/O）　描述符可被置入的一种模式：描述符上可以做 I/O 时系统向进程投递 SIGIO 信号。参见 nonblocking I/O。

**signal handler**（信号处理程序）　响应信号而被调用的过程。

**signal-trampoline code**（信号蹦床代码）　每个进程 user 结构中的一小段代码，用来调用信号处理程序。蹦床代码含设置调用信号处理程序参数、实际调用处理程序、以及返回后做 `sigreturn` 系统调用重置内核状态并恢复进程执行的指令。

**silly-window syndrome**（糊涂窗口综合症）　基于窗口的流控方案中观察到的一种状况：接收方连发多个小（糊涂的）窗口分配，而不是等大小合理的窗口可用。

**single indirect block**（一级间接块）　参见 indirect block。

**slave device**（从属设备）　受 **主设备**（master device）控制的硬件设备。例如磁盘机是磁盘控制器的从属设备。主从设备之分用于自动配置系统：只有相应主设备在场时才假定从属设备可访问。

**slave routine**（从属例程）　负责判断从属设备是否在机器上的设备驱动例程。只有从属设备的主设备探测成功后才会调用从属例程。

**sleep queue**（睡眠队列）　阻塞等待事件的进程的队列，名字源于把进程放上这一队列的 `sleep()` 例程。

**sliding-window scheme**（滑动窗口机制）　一种流控方案：接收方限制自己愿意接收的数据量。这一限制表达为称为接收窗口（receive window）的连续序号区间，周期性传达给发送方；发送方应只发送窗口内的数据。数据随收到和确认在序号空间中向前 **滑动**。参见 sequence space、receive window、send window。

**SLIP**（串行线路 IP）　参见 Serial Line IP。

**slip sector**（滑移扇区）　用来替换同一磁道上坏扇区的扇区。

**slip-sector forwarding**（滑移扇区转发）　把坏扇区重定向到 **滑移扇区** 的过程。

**SLR**（系统长度寄存器）　参见 system length register。

**small-packet avoidance**（小分组避免）　避免发送小到低效的分组。

**socket**（套接字）　4.3BSD 进程间通信模型中通信的一个端点，也是用来实现套接字抽象的数据结构和用来创建套接字的系统调用。

**soft limit**（软限制）　可以临时超越或有限次超越的限制，典型地与硬限制配合使用。

**soft link**（软链接）　参见 symbolic link。

**software interrupt**（软件中断）　由软件发起的中断。VAX 支持 15 个有优先级的软件中断；内核可通过设置软件中断请求寄存器（SIRR）中的位来请求。

**software-interrupt process**（软件中断进程）　响应软件中断而被置为运行的进程。4.3BSD 中每个传输层通信协议的输入处理都体现在一个软件中断进程中。

**special file**（特殊文件）　参见 device special file。

**spin loop**（自旋循环）　使处理器反复做特定操作的指令序列。独立设备驱动用自旋循环实现实时延迟。

**SPP**（顺序分组协议）　参见 Sequenced Packet Protocol。

**stack**（栈）　留作暂存或保存过程与中断服务关联信息的内存区域，用后进先出（LIFO）概念。VAX 上栈从高内存地址向低内存地址生长：数据压栈时栈指针递减，出栈时递增。

**stack segment**（栈段）　持有栈的段。

**stale translation**（失效转换）　某一时刻为真、但不再有效的转换或映射。例如有转换检测缓冲区的机器上，内存中的 PTE 被改动而更改映射时，TLB 中该页的任何地址转换都必须清洗，以免失效转换。

**standalone**（独立运行）　无须操作系统支持即可运行的软件称为能“独立”运作。

**standalone device driver**（独立设备驱动）　用于独立程序的设备驱动，与操作系统中用的差别通常在于：没有中断服务、存储管理或完整的虚拟内存映射支持。例如 UNIX 独立 I/O 库中，独立设备驱动轮询设备判断操作何时完成，做 DMA 时负责自己建立内存映射。

**standalone I/O library**（独立 I/O 库）　编写独立程序所用的软件库，含做 I/O 的独立设备驱动。

**standard error**（标准错误）　错误消息按惯例放置的 I/O 流，通常关联进程的描述符 2。

**standard input**（标准输入）　按惯例接收输入的 I/O 流，通常关联进程的描述符 0。

**standard output**（标准输出）　按惯例导出输出的 I/O 流，通常关联进程的描述符 1。

**start routine**（启动例程）　系统取得操作所需的全部资源后，负责启动设备操作的设备驱动例程。

**sticky bit**（粘滞位）　inode 中指示程序正文段按粘滞正文处理的位。

**sticky text**（粘滞正文）　为将来复用保存在交换区的正文段，而不是重新从最初获取它的文件装入。参见 sticky bit。

**stream I/O system**（流 I/O 系统）　第八版 UNIX 系统中允许灵活配置数据流处理的一种设施，可以把内核驻留模块按面向栈的方式动态连接，让这些模块处理在 I/O 流上收发的数据。

**stream socket**（流套接字）　建模可靠、基于连接、可支持带外数据传输的字节流的套接字类型。

**subnetwork**（子网）　作为单一共享网络地址的更大逻辑网络一部分的物理网络，分得逻辑网络地址空间的一个子集。

**superblock**（超级块）　文件系统中给出文件系统基本参数的数据结构。

**superuser**（超级用户）　UID 为 0 的用户。超级用户拥有的进程被 UNIX 授予特权；超级用户的登录名通常为 `root`。

**svpctx** VAX 的一条指令，使当前 VAX 进程状态保存到 PCBB 寄存器所指的进程控制块。参见 ldpctx。

**swap area**（交换区）　辅存上用于交换和调页的区域。

**swap device**（交换设备）　交换区所在的设备。

**swap map**（交换映射）　描述交换区可用空间的数据结构。

**swap space**（交换空间）　参见 swap area。

**swapper**（交换进程）　4.3BSD 中实现存储管理设施交换部分的进程名。历史上交换进程是 0 号进程。参见 pagedaemon。

**swapping**（交换）　主存紧张时把整个进程移入移出辅存的存储管理策略。

**symbolic link**（符号链接）　作为路径名成分提供时其 **内容** 被解释为路径名的文件，也称软链接（soft link）。

**synchronous**（同步）　与当前进程同步。例如 UNIX 中一切 I/O 操作看起来都是同步的：`read` 和 `write` 系统调用在操作完成前不返回。（不过 `write` 的数据可能要稍后才真正写到最终目的地——例如写磁盘文件。）

**system activity**（系统活动）　进入内核的一次事件。系统活动可按发起它们的事件或动作归类：系统调用、硬件中断、硬件陷阱、软件引发的陷阱或中断。

**system base register（SBR）**（系统基址寄存器）　VAX 上含系统页表基址物理地址的处理器寄存器。

**system bus**（系统总线）　机器的中央总线。多数机器上系统总线用来连接 CPU 与主存和外设。有些机器（如 VAX）上许多外设不直接接系统总线，而是接到经总线适配器连到系统总线的 I/O 总线上；参见 UNIBUS 和 MASSBUS。

**system call**（系统调用）　操作系统中向系统请求服务；也称系统服务请求（system service request）。

**system clock**（系统时钟）　用来维护系统当日时刻的设备。多数系统上这一设备是周期性中断 CPU 的间隔计时器；系统用这些中断维护当前时刻，并执行进程调度等周期性功能。

**system identification register**（系统标识寄存器）　VAX 上含处理器类型和序列号的处理器寄存器。

**system length register（SLR）**（系统长度寄存器）　VAX 上含系统页表中 PTE 数的处理器寄存器。

**system mode**（系统态）　参见 kernel mode。

**system page table**（系统页表）　用来映射内核虚拟地址空间的页表。参见 system base register 和 system length register。

**system region**（系统区）　VAX 上进程虚拟地址空间的第三个四分之一，其中的虚拟地址在进程间共享。

**TCP**（传输控制协议）　参见 Transmission Control Protocol。

**terminal**（终端）　计算机系统中用来交互式输入和接收数据的设备。多数终端含显示从计算机接收数据的 CRT。在连接计算机与数据终端设备（DTE）的 EIA RS-232-C 标准中，终端指置于线路另一端的设备——不限于人们敲键盘的那类设备。

**terminal multiplexer**（终端多路复用器）　把多条串行线接到计算机的硬件设备，串行线可接终端、调制解调器、打印机及类似设备。

**text segment**（正文段）　程序中装机器指令的段。程序映像装入内存时，系统通常使正文段只读并可供多进程共享。参见 shared text segment。

**text structure**（正文结构）　内核用来管理共享正文段的数据结构。

**thrashing**（抖动）　请求的内存使用远超内存可用量的状况。机器抖动时，执行系统相关任务的时间通常超过以用户态执行应用代码的时间。

**tick**（时钟节拍）　系统时钟的一次中断。

**time quantum**（时间量）　分时环境中，进程调度器分给一个进程运行、然后抢占它让另一进程执行的时间段，也称时间片（time slice）。

**time slice**（时间片）　参见 time quantum。

**timer backoff**（计时器退避）　计时器值增长的速率。例如 TCP 中重传计时器的值由一张多乘数表确定，提供超时值的近指数增长。

**TLB**（转换检测缓冲区）　参见 translation lookaside buffer。

**top half**（上半部）　就系统运作而言，内核中因系统调用或陷阱而被同步调用的例程集合。内核的上半部依赖每进程状态，可以调用 `sleep()` 阻塞。参见 bottom half。

**trace trap**（跟踪陷阱）　VAX 上由设置 PSL 中的跟踪位引起的陷阱。系统用它实现程序调试器中的单步执行：内核在被调试进程的 PSL 中设置跟踪位，使进程每执行一条指令就产生跟踪陷阱；陷阱由内核接管，停止进程并把控制交回调试进程。

**track**（磁道）　计算机系统中磁盘在某个寻道位置可由一个磁头访问的扇区。

**trailer protocol**（尾部协议）　控制信息放在数据 **之后** 的协议。4.3BSD 在以太网上传输至少 512 字节且数据大小为 512 字节倍数的分组时使用尾部协议（接收方愿意接受时），使接收主机能把数据接进页对齐的内存区域，从而避免内存到内存的复制操作。

**translation lookaside buffer（TLB）**（转换检测缓冲区）　含最近使用虚拟地址转换的处理器高速缓存。

**translation-not-valid fault**（转换无效故障）　VAX 上进程引用 PTE 未标记有效（即有效位为零）的页时产生的故障。

**Transmission Control Protocol（TCP）**（传输控制协议）　DARPA Internet 中使用的面向连接的传输协议，提供可靠的数据传输和紧急数据的带外指示。

**transport layer**（传输层）　网络子系统中为套接字之间通信提供所需编址结构、以及套接字语义（如可靠数据交付）所需的任何协议机制的软件层。

**triple indirect block**（三级间接块）　参见 indirect block。

**tty driver**（tty 驱动）　实现终端设备关联语义的软件模块。4.3BSD 中终端处理软件实现在若干行规程中。

**2MSL timer**（2MSL 计时器）　TCP 协议在连接关闭期间使用的计时器，名字源于它设为报文段可在网络中存在的最长时间的两倍。选这一值是为了保证连接将来的关闭动作只在关联的全部报文段不复存在之后进行。

**type-ahead**（预键入）　在进程请求之前（通常由用户在键盘敲键）向系统传输数据的能力。

**u-dot**（u. 结构）　参见 user structure。

（用户数据报协议）　参见 User Datagram Protocol。

**UID**（用户标识符）　参见 user identifier。

**uio** 系统用来描述 I/O 操作的数据结构，含 iovec 结构数组、操作应开始的文件偏移、I/O 向量长度之和、读写标志，以及源和目的都在内核地址空间还是分处用户与内核两侧的标志。

**unbuffered data path**（非缓冲数据通路）　UNIBUS 适配器中无缓冲的数据通路。经它做的 UNIBUS 传输每个都在系统总线上产生一次或多次数据传输。参见 buffered data path。

**UNIBUS** DEC 为中低速外设设计的 I/O 总线。

**UNIBUS adapter**（UNIBUS 适配器）　允许 UNIBUS 接到 VAX 系统总线上的硬件设备。

**unit start routine**（部件启动例程）　负责在部件上发起操作的设备驱动例程，典型地做操作所需的准备工作，然后请系统分配资源并安排调用设备驱动的 go 例程，由它命令硬件设备执行操作。

**UNIX domain**（UNIX 域）　进程间通信设施中支持单台机器上进程间流式和数据报式通信的通信域。

**urgent data**（紧急数据）　TCP 中标记为紧急投递的数据。

**user area**（用户区）　参见 user structure。

**User Datagram Protocol（UDP）**（用户数据报协议）　DARPA Internet 中使用的简单不可靠数据报协议，只提供对等编址和可选的数据校验和。

**user identifier（UID）**（用户标识符）　唯一标识用户的 16 位非负整数，用于文件系统提供的访问控制设施。参见 effective user identifier、real user identifier、set-user-identifier program。

**user mode**（用户态）　VAX 上特权最低的处理机访问模式，用户进程在用户态运行。

**user page table**（用户页表）　用来映射进程虚拟地址空间的页表。VAX 上用户页表驻留在内核的虚拟地址空间；因此用户态进程执行时转换虚拟地址需要两张页表——进程的用户页表和内核或系统页表。

**user-request routine**（用户请求例程）　每个直接支撑套接字的通信协议（间接触支撑的协议叠在直接支撑的协议之下）提供的例程，充当实现套接字的软件层与通信协议之间的主接口。进程间通信设施对多数套接字相关系统调用都调用用户请求例程。参见 connect request、control request、listen request、sense request。

**user structure**（user 结构）　内核为系统中每个活动进程维护的数据结构，除其他内容外含进程的 UID 和 GID、打开描述符表和内核态运行时栈。与 proc 结构不同，进程换出时 user 结构移往辅存，也称 u. 区（u-dot area）和用户区（user area）。

**VAX architecture**（VAX 体系结构）　所有 VAX 机器都具备的功能性，无论用什么实现技术。这一功能性通常由机器级程序员可见的属性定义，可用 VAX 指令集刻画。

**VAX system**（VAX 系统）　VAX 体系结构的一种具体实现，包括实现体系结构所用的实际硬件结构（例如控制机器解释体系结构的算法），也涵盖机器物理方面的全部细节（例如逻辑的种类及逻辑的封装与互连方式）。

**vectored interrupt**（向量中断）　中断的一种。设备产生向量中断时向 CPU 传输一个值，用来从 **中断向量表** 中选择中断处理程序。

**virtual address**（虚拟地址）　引用 **虚拟地址空间** 中一个位置的地址。

**virtual address space**（虚拟地址空间）　虚拟内存位置的连续区间。

**virtual machine**（虚拟机）　体系结构用软件仿真的机器。

**virtual memory**（虚拟内存）　提供给进程的可寻址内存位置的有效范围与主存大小无关的设施；即进程的虚拟地址空间独立于 CPU 的物理地址空间。

**wait**（wait 系统调用）　用来等待后代进程终止的 UNIX 系统调用。

**wait channel**（等待通道）　用来标识进程所等事件的值。多数情况下，等待通道定义为与进程所等事件相关的数据结构的地址。例如进程等磁盘读完成时，等待通道指定为交给块 I/O 系统的数据结构的地址。

**wildcard route**（通配路由）　没有到目的地的显式路由时使用的路由。

**window**（窗口）　TCP 中定义系统可发送数据范围的序号集合；超出窗口的数据不发送，直到窗口推进。

**window probe**（窗口探测报文）　TCP 中数据排队待发、发送窗口太小不值得发送、且长时间未收到含发送窗口更新的消息时传输的报文。窗口探测报文含单个八位组的数据。

**word-erase character**（字擦除字符）　终端处理程序在规范模式下识别为“删除本终端上敲入的最后一个词”的 ASCII 字符，词定义为不含空格或水平制表符的连续字符串。每台终端可以有不同的字擦除字符，且随时可用 ioctl 系统调用更改。原始或 cbreak 模式的终端不识别字擦除字符。参见 erase character 和 kill character。

**working directory**（工作目录）　参见 current working directory。

**working set**（工作集）　进程虚拟地址空间中一段时间内被引用过的页的集合。多数进程表现出某种引用局部性，其工作集的大小典型地小于虚拟内存总大小的一半。

**XNS domain**（XNS 域）　进程间通信设施中支持施乐网络系统（XNS）体系结构的通信域，支持网际中机器上进程间流式和数据报式通信。

**zombie process**（僵尸进程）　已终止但退出状态尚未被父进程（或 init）收取的进程。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://book.bsdcn.org/4.3-bsd-unix-cao-zuo-xi-tong-she-ji-yu-shi-xian/fu-lu/ci-hui-biao.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
