终端原理
Go 终端编程原理详解 基于 golang.org/x/term 和 github.com/creack/pty 的完整技术文档 目录 终端基础概念 文件描述符 termios:终端 I/O 控制 Cooked 模式 vs Raw 模式 golang.org/x/term API 详解 PTY(伪终端)原理 完整示例解析 常见问题与最佳实践 参考资料 1. 终端基础概念 什么是终端(Terminal) 终端最初是物理设备(电传打字机、CRT 显示器),通过串口连接到主机,用于输入命令和查看输出。现代操作系统中的"终端"是对这一概念的软件模拟,称为终端模拟器(Terminal Emulator),如 macOS 的 Terminal.app、iTerm2,Linux 上的 GNOME Terminal 等。 用户键盘输入 │ ▼ ┌─────────────┐ ┌──────────────┐ ┌─────────┐ │ 终端模拟器 │─────▶│ TTY 驱动层 │─────▶│ 进程 │ │ (Terminal) │◀─────│ (内核) │◀─────│ (Shell) │ └─────────────┘ └──────────────┘ └─────────┘ │ ▼ 屏幕显示输出 TTY 与终端设备文件 在 Linux/macOS 中,终端通过特殊的设备文件暴露给进程: ...