页次: 1
感觉用Unix domain socket也可以啊,接口没有伪终端设备那么古怪。
终端模拟器进程直接socketpair 创建俩连接的socket然后把一个继承给shell子进程不就好了,终端模拟器进程负责不停的读写另一端并渲染文本。
job control不依赖内核的控制终端功能,用户态应该也可以做到。
所以为啥非要用pty设备?
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
让每一个使用伪终端的用户态程序都实现一套终端例程么?虽然也不是不可以。另外还有历史原因吧,终端早在网络成熟之前就有了,伪终端自然也是这部分历史的沿续。
离线
让每一个使用伪终端的用户态程序都实现一套终端例程么?虽然也不是不可以。另外还有历史原因吧,终端早在网络成熟之前就有了,伪终端自然也是这部分历史的沿续。
终端模拟器打开socket用作服务端,fork后就马上连接作为客户端,把客户端socket 复制到stdin stdout stderr, 然后exec shell, 这样shell 的输入输出就直接被重定向到网络了。其他不用改。
就是协议可能不兼容终端之类的,终端能ioctl调很多属性,这个不太好实现,没了ioctl,程序全都得遵守一套应用层控制协议。而且也保证不了每种terminal协议是一样的。
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
或许可以让某些Unicode控制符开始起作用?这样就不用二进制协议了,简单的纯文本读写就好,不用改动CLI工具。
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
页次: 1