用户空间打印,控制台和tty之间的关系

时间:2012-02-14 18:52:00

标签: linux linux-kernel device-driver linux-device-driver

我已经发布了一个问题,要在一种非传统的串口上从用户空间进行打印。 linux non-standard serial console

然而,我意识到我对用户空间打印的架构有点困惑。

  1. 用户空间printf在哪里发送数据?我看到stdout / stdin象征性地链接到其中一个tty / pty?但谁建立了这个链接?
  2. tty如何连接到可用的控制台?或者让我们说:tty核心如何与控制台接口?

2 个答案:

答案 0 :(得分:3)

printf()写入stdout,它是包装文件描述符1的FILE *。文件描述符要么从父级继承,要么明确打开。如果您在典型系统中向上遵循流程层次结构,则最终会到达login流程,该流程通常由*getty流程生成。 getty进程使用适当的设置(线路速度,奇偶校验,...在串行线路上)连接到终端,并且通常在第一个键/ ENTER键上生成login。 gettys通常直接从传统初始化系统上的/etc/inittab启动。

答案 1 :(得分:1)

printf使用内部系统调用write()并写入文件描述符1,它与tty设备文件相关联。

你说的链接是由内核设置的。