Hacker News 中文摘要

RSS订阅

UNIX99,一款为TI-99/4A打造的类UNIX操作系统(2025) -- UNIX99, a UNIX-like OS for the TI-99/4A (2025)

文章摘要

文章介绍了UNIX99,这是一款为TI-99/4A计算机开发的类UNIX操作系统,相关讨论发布在AtariAge论坛的TI-99/4A开发版块中。

文章总结

UNIX99:为TI-99/4A打造的类UNIX操作系统

开发者mrvan在AtariAge论坛上宣布,经过18个月的开发,他成功为经典计算机TI-99/4A开发了一款名为UNIX99的类UNIX操作系统。这一项目最初的目标是为TI-99/4A开发标准C库,以支持卡带和EA5程序的编写,但最终演变为一个完整的操作系统开发。

主要特性

UNIX99具备以下核心功能:
- 硬件支持:完整支持TI-99/4A的声音、语音合成、精灵(sprites)和传统9918A显示模式,同时兼容F18A的24行和30行显示模式,并利用GPU增强滚动性能。
- 文件系统:通过标准I/O库(stdio)支持文本和二进制文件操作,默认提供stdin/stdout/stderr。
- 命令行环境:支持命令链式调用、程序参数、管道和重定向功能。
- 用户管理:支持多用户账户和当前工作目录(CWD)管理。
- 内存扩展:利用SAMS内存扩展技术缓存程序文件,显著提升响应速度(如命令解释器的快速加载)。
- 多任务支持:通过协作式任务实现声音、语音和显示任务的并行处理。

开发细节

  • 最小程序体积:运行时支持仅需约3KB,部分标准库方法已固化在ROM中,可通过程序调用。
  • 开发工具链:基于libti99和GCC,使用Docker容器运行编译工具,并通过脚本将文件加载到TI Image Tool生成的硬盘镜像中。
  • 硬件兼容性:支持TIPI文件系统,未来计划集成其时间、串行和并行接口功能。

示例代码

一个简单的“Hello World”程序无需额外设置即可运行:
```c

include

int main() { fputs("Hello World!\n", stdout); return 0; } ```

未来计划

开发者计划开源项目至GitHub,并欢迎社区贡献。目前仅支持单程序运行,但已开始试验多进程支持原型。此外,还将优化硬件扩展(如1KB scratch RAM)以提升性能。

社区反响

论坛用户对UNIX99表示惊叹,称赞其Pac-Man演示的运行速度“前所未见”。开发者回应称,性能优化得益于C语言的高效实现和VDP缓存的巧妙设计。

UNIX99的诞生为TI-99/4A赋予了现代操作系统能力,同时保留了其经典游戏特性,展现了复古硬件社区的创新活力。

(注:原文发布日期为2025年4月6日,部分内容经编辑删减以突出技术细节。)

评论总结

这篇评论主要围绕TI-99/4A计算机及其UNIX-like操作系统展开讨论,观点可分为以下几类:

  1. 怀旧与情感共鸣
  • "I LOVE the Ti99/4a, its one of the first computers I ever used"(nonamenoslogan)
  • "I learned to program on this exact hardware in the early 80s as a small child"(hunterpayne)
  1. 技术可行性讨论
  • "The TI-99 is such a perfect fit...the chip was designed for multi-user computing"(MBCook)
  • "TMS9900 processor...had a really awkward memory architecture"(guptadeepak)
  1. 相关项目联想
  • "made me remember knightOS"(b00ty4breakfast)
  • "sort of reminds me of Lunix"(tombert)
  1. 实用性问题
  • "how would one display the composite video nowdays?"(UncleOxidant)
  • "Would be cool if a unix-like OS could be used on something like that"(SoftTalker)
  1. 幽默调侃
  • "Imagine a Beowulf cluster of these"(bananamogul)
  • "Does it run PARSEC? Nice shot captain!"(buildsjets)