Project Oberon

Project Oberon

Project Oberon  http://www.projectoberon.com/

Project Oberon

28.11.2018 / 11.12.2018

license.txt         FAQ

Project Oberon is a design for a complete desktop computer system from scratch.  Its simplicity and clarity enables a single person to know and implement the whole system, while still providing enough power to make it useful and usable in a production environment. This website contains information and resources for exploring and using the system.  The project is fully described in Project Oberon: The Design of an Operating System, a Compiler, and a Computer — written by the designers, Niklaus Wirth and Jürg Gutknecht. The second (2013) edition of the book and source code are published on Prof. Wirth's website. We provide links to the original material here, and local zipped copies, with kind permission from the authors.

The Oberon System

Book Chapters 1-9 pdf mirror

Using Oberon pdf mirror

Inner Core Source zip

Outer Core Source zip

Tools & Fonts zip

Oberon RISC Emulator (Peter De Wachter)

Windows

Applications

Book Chapters 10-15 pdf mirror

Network Source zip

SCC Net

Compiler Source zip

ORS ORB ORG ORP ORTool

Oberon-07 Langage pdf mirror

Graphics Editor Source zip

Tools, Fonts & Libraries zip

The RISC Computer

Book Chapters 16-17 pdf mirror

RISC Architecture pdf mirror

RISC Design pdf mirror

OberonStation Verilog Source zip

Digilent Spartan 3 Verilog Source zip

SD-Card raw image zip

-----------------------------------------------------

来源 https://github.com/vishaps/voc

ѴishapOberon

ѴishapOberon是Oberon-2语言和库的免费开源(GPLv3)实现,可用于Linux,BSD,Android,Mac和Windows等传统操作系统。

Vishap的Oberon编译器(voc)使用C后端(gcc,clang或msc)在Unix,Mac或Windows下编译Oberon程序。Vishap Oberon包括来自Ulm,oo2c和Ofront Oberon编译器的库,以及符合Oakwood Guide for Oberon-2编译器的默认库。

内容

    安装
    编译“Hello”应用程序
    许可证
    平台支持和移植
    语言支持和库
    历史
    路线图
    贡献者
    名称“ѴishapOberon”的起源
    参考

安装

使用以下简单步骤安装Oberon编译器和库很容易:

  1. 安装先决条件,如git,gcc,静态C库,diff utils。
  2. 克隆存储库并运行'make full'。
  3. (可选)使用“make install”安装到系统目录,例如/ opt或/ usr / local / share。
  4. 设置PATH变量以包含编译器二进制文件。

这些详述如下:

1.安装先决条件

平台
Debian / Ubuntu / Mint ...... apt-get install git
Fedora / RHEL / CentOS ...... yum install git gcc glibc-staticdnf而不是yum最近的Fedoras)
FreeBSD的/ OpenBSD系统/ NetBSD的 pkg install git
OpenSUSE系统 zypper install gcc git-core make glibc-devel-static
Cygwin的 使用setup-x86 [_x64]添加包git,make,diffutils和gcc-core
达尔文 在命令行键入'git'并接受安装它的提示。

更多详细信息,包括MinGW和MS C,在安装

2.克隆并构建编译器和库

  1. git clone https://github.com/vishaps/voc
  2. cd voc
  3. make full

make full 将在voc / install的本地存储库下创建一个安装目录。

mmake full运行ldconfig以配置链接器以在voc / install中查找库,但您需要自己更新程序搜索PATH(请参阅下面的步骤4)。

3.(可选)安装到系统目录

运行make install作为根目录下复制VOC /安装到相应的目录,你的操作系统如下:

系统make install把安装
Linux的 /opt/voc
BSD /usr/local/share/voc
视窗 请参阅Windows安装
Termux /data/data/com.termux/files/opt/voc

make installldconfg使用新库位置进行更新

4.设置PATH环境变量

由于不同系统和用户管理其PATH的方式有很多种,因此我们会让您更新路径以包含编译器二进制文件。

双方make fullmake install就具体设置到系统路径显示的说明。

供参考,这将是:

安装选择设置路径
只是 make full export PATH="your-repository-clone/install/bin:$PATH"
make install 在Linux上 export PATH="/opt/voc/bin:$PATH"
make install 在BSD上 export PATH="/usr/local/share/voc/bin:$PATH"
make install 在Windows上 请参阅Windows安装
make install 在Termux上 export PATH="/data/data/com.termux/files/opt/voc/bin:$PATH"

另请参阅安装

编译器根据加载的位置查找安装的其余部分。

'Hello'应用程序

附加到Oberon.Log的任何内容都会自动写入stdout,因此以下常规Oberon程序将显示“Hello。”:

MODULE hello;
  IMPORT Oberon, Texts;
  VAR W: Texts.Writer;
BEGIN
  Texts.OpenWriter(W);
  Texts.WriteString(W, "Hello."); Texts.WriteLn(W);
  Texts.Append(Oberon.Log, W.buf)
END hello.

或者,Oakwood模块Out可用于直接写入stdout:

MODULE hello;
  IMPORT Out;
BEGIN
  Out.String("Hello."); Out.Ln
END hello.

编译如下:

voc hello.mod -m

-m参数告诉voc这是一个主模块,并生成一个可执行的二进制文件。

像往常一样在Linux(./hello)或Windows(hello)上执行。

有关编译的更多详细信息,请参阅编译

查看包含模块的接口。

要查看模块接口的定义,请使用“showdef”程序。

$ showdef Out
DEFINITION Out;

  VAR
    IsConsole-: BOOLEAN;

  PROCEDURE Char(ch: CHAR);
  PROCEDURE Flush;
  PROCEDURE Int(x: INT64; n: INT64);
  PROCEDURE Ln;
  PROCEDURE LongReal(x: LONGREAL; n: INT16);
  PROCEDURE Open;
  PROCEDURE Real(x: REAL; n: INT16);
  PROCEDURE String(str: ARRAY OF CHAR);

END Out.

执照

Vishap Oberon的前端和C后端引擎是Josef Templ的Ofront的一个分支,它已经在FreeBSD许可下发布。与Ofront不同,Vishap Oberon不包括Oberon v4 GUI环境。

Ulm Oberon图书馆和Ooc图书馆根据GPL分发。使用这些库的专有代码可能不是静态链接的。

Voc工具在GPLv3下发布。

libVishapOberon中的大多数运行时都是在GPLv3下分发,运行时异常。

平台支持和移植

Vishap Oberon支持32位和64位小端架构,包括Intel x86和x64,arm和ppc。

它在gcc,clang和Microsoft Visual C下编译。

安装支持GNU / Linux,MAC OSX,BSD和Windows(本机和cygwin)。

AC程序(src / tools / make / configure.c)检测运行它的C编译器和操作系统的详细信息。

以下系统得到认可:

  • Linux,包括Ubuntu和Centos衍生品。
  • BSD,包括OpenBSD和FreeBSD。
  • Windows下的Cygwin,Cygwin下的MingW,Windows上的Ubuntu上的Bash。

此外,还提供了一个Windows .cmd,用于与Microsoft C一起构建。

有关详细信息,包括如何添加对无法识别的系统的支持,请参阅 移植

语言支持和图书馆

Vishap Oberon支持Oberon 2编程语言,包括类型绑定程序。SYSTEM.Mod包含其他功能和64位支持的一些更改。

整数和集类型大小:

类型-O2选项(默认)-OC选项
SHORTINT 8位 16位
整数 16位 32位
LONGINT 32位 64位
32位 64位

图书馆

包含的库便于从主要的Oberon系统移植代码:

  • Oberon V4和S3兼容的库集。
  • Ooc(优化oberon-2编译器)库端口。
  • 乌尔姆的Oberon系统库端口。
  • 奥克伍德标准库。
  • 其他一些可自由再发行的库。

奥林伍德图书馆支持-O2和-OC选项,而ULM,OOC和ETH系统3库仅适用于-O2(默认)编辑。

Vishap Oberon还支持Oberon-07的一些功能。

另请参见功能

贡献者

Joseph Templ开发了前端作为将Oberon-2程序转换为语义上等效的C程序的工具。它于1995年获得版权保护,并于2012年转为免费BSD许可证。

来自Joseph的github存储库:

前线的设计和实施归功于Josef Templ ...前沿部分基于Regis Crelier的博士论文和Stefan Gehring的毕业论文,均在苏黎世联邦理工学院计算机系统研究所进行。

Norayr Chilingarian于2013年分叉,从ULM OberonOO2C和ETH Oberon System 3 移植了大量库,并增加了对包括64位系统在内的更多平台的支持。

自2016年1月以来,David Brown一直致力于为使用MSC,cygwin或mingw的更多平台添加支持。最近,他在编译器中推广了基本类型支持,允许例如32位系统上的64位LONGINT和64位上的32位LONGINT比特系统。

“ѴishapOberon”这个名字的由来

奥伯伦

Oberon是一种编程语言,操作系统和图形用户界面。它最初由Niklaus Wirth和JürgGutknecht在20世纪80年代后期在苏黎世联邦理工学院设计和实施,它表明现代操作系统和GUI的基本原理可以在比现代系统更小的清晰简单的代码中实现。

Oberon编程语言是Pascal和Modula语言的演变。虽然它添加了垃圾收集,可扩展类型和(在Oberon-2中)类型绑定程序,但它也简化了爱因斯坦和Antoine de Saint-Exupéry的原理:

尽可能简单,但不简单。(艾尔伯特爱因斯坦)

如果不再需要添加任何东西,那么最终就会获得完美,但是当不再需要带走任何东西时。(Antoine de Saint-Exupéry,由LewisGalantière翻译。)

Ѵishap

可能是栖息在亚美尼亚高地的龙。我们决定将项目命名为“Vishap”,因为编译器和龙之间的关系具有古老的传统。

此外,Vishaps以故事,小说而闻名。本页将一些技术称为“计算机科幻小说”。其中来到奥伯伦。这带来了另一种意义,Oberon就像外星人,鬼魂。和Vishaps。

参考

Oberon
Oberon2
Oberon 07
链接

历史

历史

========================== End

原文地址:https://www.cnblogs.com/lsgxeva/p/11356935.html