正在初始化流

本节描述了初始化 STREAMS 的过程。

在系统初始化时,将为每个 tty 端口创建用户编写的进程 getstrmgetstrm 进程打开流到其端口,并使用 I_PUSH 操作将 CHARPROC 模块推送到流上。 然后,该进程向流发出 getmsg 系统调用并休眠,直到消息到达流头。 流现在处于空闲状态。

初始空闲流仅包含一个可推送模块 CHARPROC。 设备驱动程序是连接到有限功能通信端口的有限功能原始 tty 驱动程序。 驱动程序和端口一次透明地传输和接收一个未缓冲的字符。

收到来自 tty 端口的初始输入后, getstrm 进程建立与终端的连接,分析选项请求,验证它们,并发出 STREAMS 子例程以设置选项。 设置选项后, getstrm 进程将创建用户应用程序进程。 稍后,当用户终止该应用程序时, getstrm 进程通过使用子例程将流恢复到其空闲状态。

下一步是更详细地分析流如何设置通信选项。