淘汰受诅咒的终端仿真

这是关于如何从终端仿真作为命令行、文本主导的 shell 和用户界面的主要构建块迁移的长期旅程的最后一部分。

  • 之前部分的链接:

  • 相关内容:

  • 对“终端”的心理模型总结:终端仿真模拟一个不存在的机器,是为最薄弱设备构建的大状态表和指令切换,隐藏了很多问题,人们还沉迷于扩展它,而这被当作默认认真对待是一种悲剧,它是层层模拟而非最后手段,还有各种指令集和子集选择启发式。
  • Arcan 项目:

    • 包括多个部分,如 libarcan-tui、libarcan-shmif 等。
    • libarcan-tui 是核心,有 Lua 绑定等,用于替代 ncurses 等。
    • libarcan-shmif 用于与桌面通信,libarcan-shmif-server 用于另一半。
    • libarcan-a12 提供 wire 传输,arcan-net 提供独立二进制包装。
    • afsrv_terminal 是最后一块,可作为终端模拟器输出到 libarcan-tui。
  • 代码示例:

    • C 语言示例展示了基本的窗口绘制和事件处理。
    • Lua 示例类似,更简洁。
  • 更多窗口:

    • 可以请求新窗口,类似创建原始上下文,有 hint 用于沟通窗口用途。
    • 如在 Cat9 中的两种形式,包括嵌入和接管进程。
  • 读取一行:

    • 实现类似 libreadline 的功能,包括提示、自动完成等。
    • Lua 示例更详细。
  • 网络:

    • 工具提供网络功能,有推送和拉取两种方式。
    • 不同应用在网络环境下有不同策略,如处理数据传输和屏幕更新。

总结来说,Arcan 项目提供了一种替代终端仿真的方式,涵盖了窗口管理、文本编辑、网络等方面,通过多种代码示例展示了其功能和用法。

阅读 12
0 条评论