首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

显示 HN:在 RISC-V 而不是 RISC-5 上运行的 Project Oberon 系统版本

摘要

This is a version of the Project Oberon System migrated from Oberon 07 to the more common Oberon 90, using a recent version of the OP2 compiler with a RISC-V (RV32) backend; the repository also includ...

the and Oberon Wirth Project with system book The version
2026-08-10 1 阅读 约6分钟阅读 Rochus
分享:
字号:
这是 Project Oberon System 从 Oberon 07 迁移到更常见的 Oberon 90 的版本,使用最新版本的 OP2 编译器和 RISC-V (RV32) 后端;该存储库还包括一个机器 (VM) 仿真,与 Wirth 在他的 Project Oberon Book 中描述的机器 (VM) 非常相似,基于著名的 RV32 仿真器;后者是一个精简且稍作修改的版本,只有解释器,并结合了我自己对机器和外围设备的实现; Wirth 机器的内存映射以 1:1 的方式再现,因此 Kernel.Mod、Display.Mod 和 Input.Mod 保持不变。下面是在 RISC-V VM 上本地运行的系统的屏幕截图: 什么是 Project Oberon System 2013 如您所知,在 1986 年至 1989 年间,苏黎世联邦理工学院的 Niklaus Wirth 和 Jürg Gutknecht 设计并实现了整个计算机系统,包括操作系统、编译器、编程语言、文本和图形编辑器,基本上是他们自己完成的,然后将所有内容记录在《Project Oberon - 操作系统的设计》一书中和编译器(1992)。退休后,沃斯继续了这一旅程。在projectoberon.net上发布的源代码是用Oberon-07编写的,这是Wirth对该语言的最后也是最彻底的简化。 Project Oberon 图书还提供 2013 年免费修订版。 2013 年项目宣称的目的与 1992 年没有变化:提供一本书籍,作为现有系统的示例,正​​在实际使用中,并进行了详细解释。 1992 年的书籍和项目使用了美国国家半导体 NS32032 处理器,该处理器“现在既不可用,也不值得推荐”。 Wirth 没有将编译器重新定位到其他商业架构,而是决定设计自己的处理器,他将其称为 RISC-5,“以便将对简单性和规律性的渴望扩展到硬件”。他甚至用可编程门阵列(FPGA)来实现它,并将他的设计变成“一个真正的、功能齐全的单芯片处理器”。整个系统在低成本开发板上运行(Digilent 的 Xilinx Spartan-3,具有 1 MB 静态 RAM),“可以轻松容纳整个 Oberon 系统,包括其编译器”。因此,首次对 Oberon 系统的软件和硬件进行了完整、严格的描述。硬件模块是用 Verilog 实现的,也可以在projectoberon.net 上找到。由于语言和处理器的简化,1992 年用汇编代码编写的所有部分(本书中没有的部分)现在也都用 Oberon 表达,从设备驱动程序到光栅操作。沃斯的新系统直接基于最初的谷神星版本,放弃了后来的奥布朗系列的功能。 “我一直希望将这个系统呈现为 25 年前的样子,不做任何修饰”。结果是一个小型且足够完整的系统,该系统有良好的文档记录并且易于迁移到其他架构。 Oberon 项目的整个硬件/软件合同由内存映射和指令集组成。与 RISC-V 的名称冲突很有趣,但在 RISC 设计理念层面上,这种亲缘关系是真实的:RISC-V 从 2010 年开始在加州大学伯克利分校开发,是伯克利系列的第五个 RISC 架构(RISC-I、RISC-II、SOAR、SPUR),伯克利和 Wirth 拥有共同的设计目标和功能:例如常规 32 位加载/存储、编译器友好的 ISA,具有固定的 32 位基本指令编码。将 Project Oberon 系统从 RISC-5 迁移到 RISC-V 是一种实用的方法,可以将该系统引入广泛使用的当代硬件,同时保留使 Oberon 有价值的原则。 Espressif 在多个 ESP32 系列中提供价格低廉、易于使用的微控制器,Olimex 等电路板制造商围绕它们构建实用的开发板,例如 ESP32-P4-PC,它以非常有吸引力的价格提供 Oberon 系统所需的所有资源。由于 Oberon 系统不需要 MMU,因此非常适合此类微控制器。到目前为止,此迁移在模拟 RISC-V 机器上运行,这有助于调试并保持代码接近原著。未来的迭代将将此(以及系统 3)迁移到提到的 Olimex 板。 Wirth 自己的编译器 (OR) 针对他的 RISC-5 架构并编译了 Oberon-07。我本可以添加一个 RV32 后端;相反,该项目重用了 OP2 编译器,我已经将其用于将 Oberon System 3 迁移到 Raspberry Pi。 OP2 本身就是 ETH Oberon 遗产的一部分;它的前端/后端分离正是为此而设计的:同一前端为 SPARC、MIPS、i386 以及最近的 ARMv7 和 RV32 生成了代码。我的 OP2 修改、ARMv7 后端和引导链接器已在 System 3 迁移中证明了自己。扩展 OR 意味着维护另一个编译器。将系统迁移到
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱