linux - 用户空间打印、控制台和 tty 之间的关系

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

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

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

  1. 用户空间 printf 将其数据发送到哪里?我看到 stdout/stdin 符号链接(symbolic link)到 tty/pty 之一?但是谁设置了这个链接?
  2. tty 如何连接到可用的控制台?或者让我们说:tty 核心如何与控制台交互?

最佳答案

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

关于linux - 用户空间打印、控制台和 tty 之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282498/

相关文章:

linux - 使用 find 和 sed 将文件名插入文件

编译内核模块 - 需要什么包

非阻塞慢速采样传感器驱动程序的正确接口(interface)

linux图片转视频,两位数问题

linux - dlopen/dlclose 与几个 so,在 dlopen 上被阻止

linux - bash脚本中$@和$*的区别

Linux内核驱动不同总线上的同一设备?

android - Android 有 "host"操作系统吗?

c - 如何与 NT 安装管理器交互以分配驱动器号?

c - 为什么我的 IOCTL 调用适用于 copy_from_user 但不适用于 get_user?