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

soc*_*soc 28 drivers terminal devices

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

Arc*_*ege 37

生的的术语仅适用于终端驱动程序。“Cooked”称为规范模式,“raw”称为非规范模式。

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

终端可以置于“原始”模式,其中字符不被终端驱动程序处理,而是直接发送(可以设置为仍然处理 INTR 和 QUIT 字符)。这使得计划喜欢emacsvi更容易使用整个屏幕。

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



Con*_*lls 12

这些术语用于描述终端和磁盘 I/O,但在每个上下文中的含义不同。

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

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

可以在此处找到生和熟 tty 模式的描述 可以在此处找到有关原始磁盘设备与熟磁盘设备的帖子