输出
定义
在计算机领域,输出指信息处理活动产生的、被呈现到系统外部的信息,或者指把数据呈现到外部的这一过程[5]。档案与信息管理领域的术语词典同样把它界定为数据处理的结果以及允许信息从系统中取出的过程,并指出这些信息既可以是人可读的显示或打印内容,也可以是机器可读的比特流或记录介质上的数据[1]。
另一种常见表述强调数据的流向:输出数据是信息处理系统或其任一部分传送到该系统或该部分之外的数据[6]。在硬件语境中,输出也可以指从电路(例如逻辑电路)取得的信号[5]。
原理
从体系结构看,计算机由运算器、控制器、存储器、输入设备和输出设备组成,输出设备负责把程序的中间结果或最终结果、数据符号以及控制信号送出机器[7]。其一般流程是:程序需要输出时,控制器通知输出设备,设备就绪后向控制器发出请求,控制器下达输出命令,数据由内部存储器传送到输出设备并形成结果[7]。
从操作系统看,输出常被抽象为流。以 Unix 及其衍生系统为例,每个进程默认拥有标准输入、标准输出和标准错误 3 个通道,分别对应文件描述符 0、1、2,标准输出通常指向终端[8]。重定向可以改变这些流的去处,管道则把前一道程序的标准输出接到后一道程序的标准输入,从而串联多步处理[8]。
在应用程序一侧,输出操作通常须经系统调用转入内核,由内核等待设备就绪并把数据从内核空间复制到用户可访问的位置,磁盘读写和网络请求响应是最常见的两类[9]。若以传递函数 $G(s)$ 描述一个系统,则输出 $Y(s)$ 与输入 $X(s)$ 的关系可写作 $Y(s)=G(s)\,X(s)$,输出即系统对外可测量的响应。
发展历程
早期计算机的输出依赖打孔卡与电传打字机,字符编码也受这些装置的功能需求牵引,例如 ASCII 中删除字符的作用是把卡片某一列全部穿孔以表示忽略该列[10]。1963 年,美国信息交换标准代码(ASCII)发布,为 128 个字符规定了统一数值,此前各厂商表示字符的方式多达 60 余种[11]。1968 年,ASCII 被采纳为美国联邦计算机的标准通信语言[11]。
显示终端随后成为主要输出界面。早期的视频显示终端只能显示大写字母,1976 年的 ADM-3A 与 1978 年的 DEC VT-100 等设备沿用了穿孔卡每行 80 个字符的惯例,这被认为是终端模拟器默认 24×80 或 25×80 尺寸的由来[12]。1979 年出现了基于 VT-100 的终端控制码 ANSI 标准,到 20 世纪 90 年代前期已在显示终端中普及[12]。
字符集方面的限制推动了新标准。单字节字符集最多只能表示 256 个字符,东亚洲书写系统需要容纳上万字符,于是出现双字节字符集等多字节方案[10]。显示接口则从模拟信号、数字 TTL 信号逐代演进,VGA 在 640×480 像素下支持 16 色,在 320×200 像素下支持 256 色[13]。
应用
输出设备按用途覆盖多种形式。显示器、投影仪提供视觉信息[14];打印机把运行结果印在纸介质上,属于可长期保存的硬拷贝设备,而屏幕显示不属于这一类[13];扬声器、绘图仪等也属常见输出设备[7]。不少设备兼具输入与输出功能,网卡、硬盘、光盘刻录机即属此类[7][9]。
软件层面,输出以计算结果、日志和文件内容等形式呈现。计算器程序给出算术结果,搜索引擎返回与关键词匹配的页面列表,都是输出的常见例子[2]。在人机交互中,程序产生的、被用户感知的信息构成输出的主要内容,程序接受的输入种类与产生的输出种类共同界定了用户界面[15]。在命令行环境中,输出常被重定向到日志文件、丢弃到空设备或经管道交给下一道程序,用于批量处理与故障排查[16]。
局限
输出与设备之间并非总能精确对应。把某设备归为输入还是输出取决于观察角度:键盘和鼠标把人的动作转成计算机可读的信号,显示器与打印机则把计算机送出的信号转成人类可理解的形式[3]。传统上被视为输入设备的装置也可能承担控制显示等写操作,被视为输出设备的装置也可能回传缺纸、卡纸一类状态数据[3]。
输出通道本身也有边界。管道只把标准输出转为下一道程序的标准输入,标准错误不会随之进入管道[8]。重定向顺序会影响结果,例如把标准输出指向文件后再把标准错误并入标准输出,与颠倒顺序执行,效果并不相同[16]。此外,单字节字符集最多容纳 256 个字符,无法完整覆盖西欧语言的重音字母,更难覆盖东亚的大量表意文字,这是输出文本时长期存在的编码限制[10]。
在性能层面,输出受制于外围设备与内存之间的数据通路。冯·诺依曼结构中处理器不能直接访问输入输出设备,设备只能与内存交换数据,因此输出速度受设备与内存一侧的制约[17]。
参见
参考资料
- SAA Dictionary: output [引用日期2026-10-29]
- 输出的定义 [引用日期2026-10-29]
- Input/output [引用日期2026-10-29]
- output [引用日期2026-10-29]
- search [引用日期2026-10-29]
- [ITS] IT terministandardi sõnastik [引用日期2026-10-29]
- 一个ASCII字符只需要1字节编码 [引用日期2026-10-29]
- 标准输入、标准输出及标准错误 [引用日期2026-10-29]
- title: IO 模型详解 [引用日期2026-10-29]
- Unicode 如何與先前的標準 (例如 ASCII 及 EBCDIC) 相關 - Focus sentinel [引用日期2026-10-29]
- ASCII [引用日期2026-10-29]
- Hacker曾经知晓的那些事 - 最早的VDT显示器,比如ASR-33,只能显示大写字母 [引用日期2026-10-29]
- 王天琦 计算机组成原理(第2版)唐朔飞(PDF) [引用日期2026-10-29]
- CN107209937A(PDF) [引用日期2026-10-29]
- Output [引用日期2026-10-29]
- Linux 输入输出重定向 [引用日期2026-10-29]
- 【Linux】冯诺依曼体系结构、操作系统及进程概念 [引用日期2026-10-29]