“原始”和“熟的”设备驱动程序有什么区别?

“原始”和“熟的”设备驱动程序有什么区别?

这个概念是否仅适用于终端驱动程序(这是大多数站点所涵盖的)或一般的任何驱动程序?

答案1

条款生的煮熟的仅适用于终端驱动程序。 “熟”被称为典范和“原始”被称为非规范的模式。

默认情况下,终端驱动程序是基于行的系统:字符在内部缓冲,直到出现回车符(EnterReturn),然后再传递给程序 - 这称为“煮熟”。这允许处理某些字符(请参阅stty(1)),例如CtrlD, CtrlS, CtrlU, Backspace);本质上是基本的行编辑。终端驱动程序在提供字符之前“烹饪”这些字符。

终端可以置于“原始”模式,其中字符不由终端驱动程序处理,而是直接发送(可以设置 INTR 和 QUIT 字符仍被处理)。这使得emacs和等程序可以vi更轻松地使用整个屏幕。

您可以在联机帮助页的“规范模式”部分中阅读有关此内容的更多信息termios(3)


答案2

这些术语用于描述终端和磁盘 I/O,但在每种情况下含义不同。

终端设备上的原始模式和熟模式涵盖处理(一次字符与一次行,还有一些其他差异)。

“原始”磁盘设备 ( /dev/rdsk/*) 是字符设备,而/dev/dsk/是块设备。 IIRC 主要区别在于块设备具有内核缓冲,并且可以在原始设备上指定对 I/O 模式(例如直接/映射 I/O)的细粒度控制。

可以找到原始和熟 tty 模式的描述这里。 可以找到有关原始磁盘设备与熟磁盘设备的帖子这里。

相关内容