当前位置: 首页 > news >正文

2026 年用 1978 年终端 VT - 100,体验如何?虽问题多但感受超棒!

什么是 VT - 100?

VT - 100 是一种由屏幕和键盘组成的“终端”,需连接计算机使用,类似现在电脑上的 `Terminal`、`Console` 或 `Command Prompt` 应用程序,但它本身不是计算机。其协议(ANSI 转义序列)被所有现代终端采用。

VT - 100 配备阴极射线管(CRT)显示器和键盘,通过电源附近拨动开关开启,开机有启动提示音,CRT 会发出高频噪音。它内置英特尔处理器(有 8080 芯片),有 3 KB 内存,比登月所需内存(阿波罗 11 号为 4 KB)还少。有一台 VT - 100 配的是 VT120 键盘,体验糟糕,按键软,需用力按压识别,布局也不适合现代习惯。

终端是如何工作的?

从终端角度,有字节流输入和输出 VT - 100。计算机发送字节会显示在屏幕上,键盘输入会有字节输出。像 Vim 这样的交互式应用程序靠“ANSI 转义序列”工作,如 `^[D` 可左移光标,类似序列能设置颜色、斜体、加粗等视觉效果,程序员借此开发交互式应用程序。

从计算机端看情况复杂。在 Linux 和 macOS 系统中,`/dev` 目录下有 `tty`(电传打字机)和 `pty`(伪终端)文件。`pty` 有主机端和客户端,主机端由终端控制,客户端是 `tty`,这是虚拟化终端工作原理。

因历史原因,内核的 `tty` 子系统复杂,有 `raw` 模式和 `cooked` 模式。在 `cooked` 模式下,内核处理“行规则”,内容比预期多,如回显字符、生成 `SIGTERM` 信号、流控制、行编辑等。若想完全控制终端,需从用户空间将其设为非 `cooked` 模式(`raw` 模式),让应用程序开发者不受内核干扰决定按键操作。`raw` 模式和 `cooked` 模式是内核 TTY 子系统特定配置标志简写,还有未设置的选项,如用于流控制的 `IXON`,2026 年已没人需要流控制。

如何使用 VT - 100?

VT - 100 使用 RS - 232 标准,可买电缆连接,会显示在 `/dev/ttyUSB0` 下。连接时买错电缆,只能用跳线连接,查看接线图连接 TX、RX 和地线,用 `echo foo > /dev/ttyUSB0` 命令发送字节未成功,用示波器发现是 RX 和 TX 接反。

问题 1:流控制

可通过 `echo` 命令向 `tty` 设备发送字节在 VT - 100 上查看,也能用 `cat` 命令从设备读取字节在 Mac 上查看,但将 shell 指向该 `tty` 设备时程序崩溃,丢失一半字符。原因是 VT - 100 有内置流控制功能,处理不过来时希望主机停止发送字节,macOS 可能从未支持或移除该功能,用 `stty` 命令强制启用未成功,运行 Linux 虚拟机并设置相同选项后问题解决,此时 `bash`、`vim` 等简单应用程序可正常运行。

问题 2:全屏重绘很痛苦

VT - 100 速度慢,波特率为 9600,包含大量 ANSI 转义序列的文本很快超出传输能力,包含转义序列的文本传输速度低于 9600。全屏重绘慢,解决办法是用“差分渲染器”跟踪屏幕状态,进行最小化编辑减少闪烁,但应用程序有几种情况本不应重绘却重绘了。

问题 3:过度假设转义序列的兼容性

应用程序发出的一些转义序列 VT - 100 无法识别。一是 Unicode,VT - 100 只支持 ASCII 字符,通过添加仅支持 ASCII 的模式解决,后来企业客户要求添加该模式,可自豪告知已有此功能。二是 OSC 序列,VT - 100 不理解该新格式,发送会将原始文本打印到屏幕,添加“旧版”模式,让应用程序不发出 OSC 序列。

使用感受

让 VT - 100 正常工作后,使用体验很棒。基本只需 Vim 和应用程序正常运行,除键盘外可用性高,来看的人都欣赏新旧技术的对比。还想尝试更多,欢迎大家告知想在 VT - 100 上运行的东西。

此外,文中还提到:1. VT - 100 是单色的,但后来的终端增加了颜色功能。2. 如果解释信号相关内容,博客会没完没了。3. 此处需引用相关资料。4. 波特是一个奇怪的单位,表示每秒传输的符号数。5. 支持多种语言、表情符号和特殊符号。6. 英文文本,包括 a - z、数字和标点符号。7. 用于例如超链接、终端标题等。

http://www.jsqmd.com/news/734216/

相关文章:

  • 基于FastAPI与钉钉Stream模式构建企业级ChatGPT机器人
  • 大语言模型规范对齐评估:挑战与ALIGN3框架解析
  • MCP 2026推理引擎集成实战:从零部署到毫秒级响应,7个关键配置参数全解析
  • 手把手教你用SpyGlass CDC调试:利用电子表格和增量示意图快速定位并修复CDC违例
  • 别再为多相机标定头疼了!VisionMaster三种标定方案深度对比与选型指南
  • 目前人流量统计已经做到比较稳定了
  • 外汇交易老手血泪史:我是如何用这个MT4风控EA管住手,告别爆仓的
  • VLAN和VXLAN一个字母之差,技术上有啥区别?
  • Cursor Pro破解工具完整指南:5步实战实现AI编程助手永久免费使用
  • 轻松实现:wechat-need-web让你的微信在浏览器中焕发生机
  • Cwtch隐私通信协议:基于Tor的去中心化元数据抵抗实践
  • ENA数据库高级搜索全攻略:从“宏基因组WGS”到精准获取目标序列数据
  • GPU性能指标解析与AI计算优化策略
  • 将 OpenClaw Agent 工作流对接至 Taotoken 多模型服务的配置指南
  • SOCD Cleaner:突破性键盘输入冲突解决方案,让游戏操作精度提升300%
  • 从日志到链路:Spring Cloud Sleuth 如何帮你把散落的日志串成故事线(附Logback配置技巧)
  • 告别Root!用ADB广播动态控制安卓导航栏三键(附完整代码与测试命令)
  • 对比自建代理,使用聚合平台在模型选型与稳定性上的优势
  • Scroll Reverser终极指南:掌握macOS多设备滚动方向独立配置的强大工具
  • 保姆级教程:在Windows上用VSCode+DevEco Device Tool远程编译鸿蒙Hi3861源码(附Python环境避坑指南)
  • 别再混淆了!一文讲透Autosar网络管理中EcuM、ComM、CanSM的职责与协作关系
  • 快速掌握SPI总线测试原理和测试方法
  • u-blox JODY-W6模块:Wi-Fi 6E与蓝牙5.4的工业级无线连接方案
  • 5G信号好不好,手机和基站到底在‘聊’什么?CQI和MCS表实战解读
  • OBS虚拟摄像头插件:解锁专业直播与视频会议的无限可能
  • 【自适应天线与相控阵技术】聚焦近场自适应调零的矩量法分析
  • 构建电影奖项数据平台:从爬虫到可视化的全栈技术实践
  • Joplin同步翻车实录:S3配置里的5个隐藏大坑与一键修复方案
  • 手把手调参:红外循迹小车的PWM差速转弯,从原理到代码避坑全记录
  • 如何快速部署开源截图工具:Windows用户完全指南