Hacker News 中文摘要

RSS订阅

虚拟AmigaOS运行时环境(即Amiga版Wine) -- The virtual AmigaOS runtime (a.k.a. Wine for Amiga:)

文章摘要

vamos是一个虚拟AmigaOS运行环境工具,可在Mac或PC上直接运行AmigaOS m68k命令行程序。它通过模拟Exec和DOS库的部分功能来运行不依赖图形界面的控制台程序,特别适合运行旧版编译器和汇编器。但无法运行需要直接硬件访问的应用程序或游戏,这类需求仍需FS-UAE等完整模拟器。vamos基于Musashi m68k CPU模拟器实现,属于API级模拟而非完整系统模拟。

文章总结

vamos - 虚拟 AmigaOS 运行环境

简介
vamos 是一款能在 Mac 或 PC 上直接运行 AmigaOS m68k CLI 二进制文件的工具,通过模拟 Exec 和 DOS 库的部分功能实现 AmigaOS 环境。其核心目标是运行不依赖图形界面的控制台程序(如旧版编译器和汇编器),而非支持直接硬件访问的游戏或应用(此类需求需使用 FS-UAE 等完整模拟器)。

核心架构
- CPU 模拟:基于 C 语言编写的 Musashi m68k 模拟器
- 内存管理:提供程序运行所需内存空间,并通过 Python 拦截库调用
- 动态拦截:所有库调用均被捕获,由 Python 代码模拟或忽略未定义的调用

当前状态
从最初的概念验证发展为实用的 CLI 程序模拟器,现可运行多数 Amiga 开发工具,甚至支持复杂项目(包括 AmigaOS 自身)的构建。

主要特性
- Musashi 高速 m68k CPU 模拟
- 支持原生库加载(如 SAS sc1.library)
- DOS 库功能:文件操作(打开/读写/关闭)、锁机制
- Exec 库功能:内存分配、库加载
- 丰富的调试与日志功能


配置与使用指南

1. 安装
参考 amitools 项目安装说明。

2. 环境配置
通过命令行或 .vamosrc 文件定义运行环境,包含以下模块:
- DOS 设置:卷映射、路径分配、命令搜索路径
- Exec 设置:库配置、堆栈大小
- 硬件设置:CPU 类型(68000/020/040)、内存大小
- 调试选项:跟踪模式、日志级别

关键配置示例
- 卷映射:将主机目录映射为 Amiga 卷
ini [volumes] system=~/amiga/wb310 # 映射为 system: - 路径分配:为常用路径创建别名
ini [assigns] include=sc:include # 将 include: 指向 sc:include - CPU 选择:命令行指定 68020
bash vamos -C 20

3. 运行程序
- 基础命令:vamos amiga_binary
- 启用调试:vamos -v -l dos:info amiga_binary 显示库调用详情
- 内存追踪:vamos -t -l mem:debug 记录所有内存访问(性能影响大)

4. 运行 Shell
通过 -x 参数加载 AmigaOS 的 Shell-Seg,支持交互式操作:
bash vamos -x Shell-Seg


应用示例

运行 A68k 汇编器:
bash vamos a68k # 输出帮助信息 vamos -v a68k # 查看详细运行日志(模拟速度可达 114MHz)

调试技巧
- 使用 -c N 限制模拟周期数以控制日志长度
- 结合 hunk 工具反汇编代码分析内存访问

vamos 为开发者提供了高效的 AmigaOS 工具链模拟环境,适合复古编程和项目构建。

评论总结

总结评论内容:

  1. 关于名称的混淆性
  • 多位用户指出"Wine for Amiga"名称容易产生误解,实际功能与名称暗示相反 "Wine for Amiga is as confusing as Windows Subsystem for Linux" (Narishma) "听起来像是可以在Amiga上运行Wine,实际上是让PC运行Amiga软件" (kwanbix)
  1. 技术实现现状
  • 目前仅支持命令行程序,但GUI支持正在开发中 "runs command-line Amiga programs only...open merge request to add GUI support" (dizzy9)
  • 建议配合交叉编译器使用 "It should be paired with a cross-compiler" (fithisux)
  1. 潜在发展可能性
  • 可能成为AmigaOS独立实现的基础 "Could this be the basis of an independent implementation of AmigaOS?" (billpg)
  • 目前仍需官方系统授权 "you still need a licensed copy of Commodore's OS" (billpg)
  1. 搜索困难问题
  • 项目名称使用常见西班牙语词汇导致搜索不便 "both 'amiga' and 'vamos' are common Spanish words" (dizzy9)