line discipline 的开关(stty)
预设
内核 · tty 子系统 输入 → ← 输出 ⌨ 键盘 Ghostty终端模拟器按键 → 字节字节 → 解析 → 像素 master/dev/ptmx line disciplineicanon · echo · isig · icrnlecho ↓opost · onlcr slave/dev/ttys008 catfd 0/1/2 = slave阻塞在 read()
点一下这块区域,也可以直接用键盘输入 速度
Ghostty 的屏幕
line discipline 的行缓冲
发生了什么
    可以按这个顺序试:
    1. cooked 下敲 a b c、退格、回车:退格由内核处理,cat 只在回车后收到整行。
    2. 切到 raw 再敲 a b c:没有回显,每个字节立刻到达 cat,屏幕上的字是 cat 写回来的。
    3. raw 下单独打开 echo:每个字出现两次,一次是内核回显,一次是 cat 写回。
    4. cooked 下关掉 onlcr,连按几次回车:只换行不回车,出现阶梯。
    5. 在 cooked 和 raw 下各按一次 ↑:同样三个字节,一次显示成 ^[[A,一次让光标上移。
    6. 在 cooked 和 raw 下各按一次 Ctrl-C:一次变成 SIGINT,一次只是字节 0x03。
    照 line discipline 的规则写的模拟,只实现了这五个开关。cat 被 Ctrl-C 终止以后会自动重新运行,方便接着试。