我有兴趣编写一个终端模拟器来娱乐。从这篇文章我大致了解了shell和终端模拟器的分工:“终端”、“shell”、“tty”和“控制台”之间的确切区别是什么?,但我还没有找到关于按键和控制字符之间的映射需要是什么、需要进行哪些类型的系统调用来获取 pty 并与 pty 交互等的完整、详细的描述。
有我应该看的手册页吗?在哪里可以找到 Linux 终端仿真器的完整、完整规范?
答案1
我还没有找到关于按键和控制字符之间的映射的完整、详细的描述。
是什么让你认为它需要是任何东西?提示:为什么你认为每个终端仿真器程序都直接或间接(通过 X 或类似的方式)具有某种键盘映射文件?
去看看现有的终端模拟器。这里只是一些提供的开源项目用户空间虚拟终端使用帧缓冲区和 Linux 输入事件设备。
- 中康
- FB术语
- bogl-bterm 及其分支,例如尼特姆。
- 阿里·古拉米·鲁迪键盘
- 中的和
console-terminal-emulator
工具console-fb-realizer
开胃菜 - 公里斯康
进一步阅读
kbdmap
。 §5。 FreeBSD 手册页。posix_openpt
. §2. FreeBSD 手册页。posix_openpt
。 开放组基本规格。第 7 期。IEEE 1003.1:2013。开放组。- https://unix.stackexchange.com/a/177209/5132
答案2
你可能应该开始于http://invisible-island.net/xterm/ctlseqs/ctlseqs.html和http://www.vt100.net/它描述了所需的行为(至少是输入/输出序列),当然还有研究一些终端仿真器,包括它们所解决的问题的更改日志。
我认为任何地方都没有完整的清单。只是一个最近的例子:为了^\
在终端内工作,模拟器本身应该确保 SIGQUIT 处理程序设置为其默认值;我们几天前刚刚发现 gnome-terminal 中缺少一些东西,尽管它已经有 10 多年的历史了。可能有很多这样的事情需要关心,当您继续操作并收到用户的报告时,您会注意到它们。