PTY Sandbox & Data flow

PTY 伪终端 openpty() 主从重定向与字符流控制

解密 tools/environments/local.py 中伪终端对的分配、多线程读写泵细节
终端流PTY双向管道
📊 图 9-1-1:主机沙箱控制器与隔离环境(PTY主从设备)双向重定向管道图

💻 1. local.py 的 openpty() 管道泵字符

当大模型要执行交互式命令时,系统利用 Unix 系统的 pty.openpty() 打开伪终端对。从设备负责绑定到 Bash Shell 子进程的 stdin/stdout/stderr,系统起后台守护线程实时对主设备进行 os.read() 读取,并将 ANSI 控制符实时传送给界面渲染。

PTY与Docker执行隔离
📊 图 9-1-2:标准 I/O 重定向、主机目录挂载与 Docker 容器安全沙箱边界图

🔄 2. 双向重定向泵实现

主进程可以通过 Master FD 写入字符来实现输入模拟,同时独立线程会把从设备输出按流输出,处理特殊的键盘控制信号(如 Ctrl+C/Ctrl+D),确保在终端绘制时与真实终端一致。