作为一个练习,我想从头开始编写一个Linux终端模拟器,以便了解涉及哪些运动部件。我选择的语言是D(因为我目前正在学习它)。如何从头开始编写终端仿真程序(或不是从头开始)?
它显然不具备成为一件大事。我希望它有一个背景颜色的窗口(以及不透明度,稍后)显示命令promt。用户可以输入一个命令并输出结果。基本的东西。除了我甚至不知道从哪里开始。
我想视觉应该由像GTK(我从来没有工作过)来处理,但对于一切?有人可以描述一个可能的架构,我应该看什么?
这也将是有益的知道它使这部分感觉从头开始编写(给我选择的语言)和哪些部分,我可以作为第三方库或二进制文件的使用。
我也意识到可能存在这样一个别的问题,但是我无法找到质量答案。如果你知道这样的答案,请链接到他们。
为什么不将您最喜爱的开源终端从当前语言“翻译”为“D”。然后你可以决定你是否学到了足够的知识,并且可以找到更好的术语(特殊术语)来进一步研究。祝你好运。 – shellter
我不认为这个问题适合堆栈溢出,因为它不是很具体。我猜你可以做的最好的事情是查看其他终端仿真程序(也可能不用D编写),并移植一些代码或查看它们。但我不认为你应该做什么是一个普遍的答案,因为它是你的项目,你将决定你将添加什么,你不会添加什么。但是,如果你想看看用D编写的终端仿真器,那么在github上有一个:https://github.com/gnunn1/terminix – WebFreak001
我怀疑你可能会把终端仿真器与shell混淆。终端仿真器只是模拟一个I/O设备,它不运行命令或知道任何关于提示的信息。在Linux上,终端仿真器通过打开多路复用器设备'/ dev/ptmx'(可能使用'posix_openpt()')来分配伪终端,这会导致从设备出现在'/ dev/pts'处。然后,终端仿真器通常会生成一个std {in,out,err}连接到从设备的shell。 – ninjalj