Show HN: プロジェクト・オーベルンの RISC-V アーキテクチャによるシステムバージョン

2026/08/09 21:43

Show HN: プロジェクト・オーベルンの RISC-V アーキテクチャによるシステムバージョン

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Project Oberon システムは、1986 年および 1989 年にスイス連邦チューリッヒ大学(ETH Zürich)で確立されたシンプルさと規則性の核心原則を保持しつつ、Niklaus Wirth の歴史的コードベースを最新の RISC-V ハードウェアへ成功裏に移行しました。当初は 1990 年代に FPGA チップ上の専用 RISC-5 アーキテクチャ向け(NS32032 プロセッサ概念に基づく)として設計されたこのアップデート版は、断片化されたコード管理を避けるために OR というレガシーツールを維持するのではなく OP2 コンパイラを利用します。この戦略的転換により、既存のクロスプラットフォームサポートを活用し、projectoberon.net から当初ダウンロードされたソース(Oberon 07)を Oberon 90 への移行に再利用しています。これは、データ型の名前変更(INTEGER を LONGINT に)や命令セットの更新といった特定のソース調整を含むものです。現在、シミュレータ環境である RISC-V エミュレーション(RV32emu)上で動作していますが、将来は ESP32 ファミリーのような物理チップへの展開を想定しており、Wirth の哲学と RISC-V が共有する設計目標から恩恵を受けています。この進化により、複雑なメモリ管理ユニット(MMU)を必要とせずに、Olimex ESP32-P4-PC などの手頃な価格のボードでの実行が可能になります。標準的な Linux または Windows マシンの上でコンパイルでき、すべてのプラットフォーム用プリコンパイル済みバイナリを提供し、主に Debian Bookworm でテストされたビルドスクリプトを備えることで、本プロジェクトは数十年前の研究を今日的の実用的実験のためにアクセス可能にしています。

本文

Project Oberon システム 2013(RISC-V 移植版)について

Project Oberon システム 2013 は、Oberon 07 からより一般的な Oberon 90 に移植されたプロジェクトのバージョンです。最新の OP2 コンパイラ(RISC-V RV32 バックエンド付き)を採用しています。

メインの特徴

  • VM エミュレータの実装: Wirth 氏の名著『Project Oberon』に記述されている機械(VM)と同様のアーキテクチャを、RV32 エミュレータをベースとして実装しています。これは Interpreter みを組み合わせた簡素化かつ微修正されたバージョンです。
  • メモリマップの忠実性: Wirth 氏の機械におけるメモリマップは 1:1 に再現されています。
  • コアモジュールの変更なし:
    Kernel.Mod
    Display.Mod
    Input.Mod
    は原版のまま変更されていません。

以下は、RISC-V VM でネイティブに動作するシステムのスクリーンショットです。


Project Oberon システム 2013 とは何か

1986 年から 1989 年の間に、ETH Zürich の Niklaus Wirth氏と Jürg Gutknecht 氏は、ほぼ独自に以下のコンピュータシステムを設計・実装しました。

  • オペレーティングシステム
  • コンパイラ
  • プログラミング言語
  • テキストエディタ
  • グラフィックエディタ

その全ては 1992 年の書籍『Project Oberon - オペレーティングシステムとコンパイラの設計』に文書化されました。Wirth 氏は引退後もこのプロジェクトを継続しています。

  • ソースコードの基盤:
    projectoberon.net
    に公開されているソースコードは、Wirth 氏による言語の最も激しい簡素化である Oberon-07 で記述されています。
  • 書籍版との関係: 書籍の 2013 年版という無料のリビジョンも存在します。
  • プロジェクトの目的: 1992 年版と同様に、「実際に存在し、実際の使用されているシステムの実例として、かつ全ての詳細を説明する単一の書籍を提供すること」にあります。

ハードウェア・プロセッサの変遷

  • 元のアーキテクチャ: 1992 年のプロジェクトでは National Semiconductor の NS32032 プロセッサが使用されていましたが、現在は入手できずアーキテクチャも推奨されません。
  • RISC-5 の設計: 商用アーキテクチャへの再ターゲットではなく、Wirth 氏は「ハードウェアへのシンプルさと規則性への願い」のために独自のプロセッサ RISC-5を設計しました。
  • 実装: プログラブルゲートアレイ(FPGA)を用いて実装され、「単一チップ上の実際に機能するプロセッサ」となりました。
  • 動作環境: 低コストの開発ボード(Digilent 製の Xilinx Spartan-3 に 1MB のスタティック RAM を搭載)上で動作し、システム全体(コンパイラを含む)を容易に受け入れることができます。

システムの革新性

  • ハードウェア/ソフトウェア契約: システム全体はメモリマップと命令セットで構成され、初めてソフトウェアだけでなくハードウェアも完全に厳密に記述されました。
    • ハードウェアモジュールは Verilog で実装されており、
      projectoberon.net
      で入手可能です。
  • 言語の進化: 言語とプロセッサの簡素化により、1992 年にはアセンブリ言語のみで記述されていたデバイスドライバーからラスタ操作に至るまで、Oberon 言語でも表現できるようになりました。
  • 開発思想: Wirth 氏は新システムを直接元の Ceres バージョンに基づき、後続の Oberon シリーズの特徴を排除しました。「25 年前に存在したままのシステムを本質的に提示したい」というのが目的です。
    • その結果、小さく十分完結しており、よく文書化されており、他のアーキテクチャへの移行も容易なシステムになりました。

なぜこの移植なのか

RISC-V と RISC-5 の親縁関係 名称の衝突はユーモラスですが、設計哲学のレベルでは実在する親族関係があります。2010 年以降 UC Berkeley で開発された RISC-V は、Berkeley リーンシリーズの第五世代であり、Berkeley と Wirth の双方は共通な設計目標と特徴を共有しています。

  • 規則的な 32 ビットロード・ストア
  • コンパイラ 친화的な ISA(命令セットアーキテクチャ)
  • 固定された 32 ビット基底命令エンコーディング

移植の意義

Project Oberon システムを RISC-5 から RISC-V へ移行することは、Oberon の価値をもたらす原理を保ちつつ、システムを広く入手可能な現代のハードウェアに導入するための実用的な方法です。

採用されたハードウェア

  • Espressif 社: ESP32 ファミリの安価で入手しやすいマイコンを提供しています。
  • Olimex など: これらを中心に実用的な開発ボードを作成(例:Oberon システムに必要な全リソースを非常に魅力的な価格で提供する ESP32-P4-PC)。
  • 適合性: Oberon システムは MMU を必要としないため、このタイプのマイコンに適しています。

現在のステータスと将来計画

現在は、デバッグコードの維持と書籍との親和性を両立させるために、エミュレートされた RISC-V マシン上で移行を実行しています。将来的には上記の Olimex ボードへ移行予定です。

  • コンパイラの変更点:
    • Wirth 氏自身のコンパイラ(OR)は彼自身の RISC-5 アーキテクチャを対象とし Oberon-07 をコンパイルします。
    • RV32 バックエンドを追加することも可能でしたが、代わりに既存の OP2 コンパイラを再利用しています(Raspberry Pi 移植でも実績あり)。
    • OP2 は ETH Oberon の遺産であり、フロントエンド/バックエンドの分離設計により SPARC, MIPS, i386, ARMv7 および RV32 向けコードを生成可能です。
  • 移行の利点: システムを 1990 年の言語へ移行することで、両方の移行済みシステムに共通のコンパイラを持ち、ソースコードも書籍に十分近く、有用性を保ちます。

移植の詳細

ソースコードの入手

Project Oberon ソースコードのオリジナルバージョンは

https://www.projectoberon.net/
より以下のアーカイブをダウンロードしました(最新ファイル修飾日:2018-11-28)。

リポジトリの各サブディレクトリは同名のアーカイブに対応しており、

apptools
systools
を例外としてファイルに統合しています。

Oberon 07 から Oberon 90 への移植注記

全てのソースコードを Oberon 90 に移植し、ActiveOberon プロジェクトの

o2c
コンパイラおよび OP2 でコンパイル可能にするよう変更を行いました。

主な変更点は以下の通りです:

  • 型名の統一:
    INTEGER
    が全体を通じて
    LONGINT
    に改名されました。
  • ビルトイン関数:
    SYS.Mod
    は、Oberon 90 には存在しない Oberon 07 のビルトイン関数を提供します。
  • データ型の変換: バイトサイズのデータは、可能な限り
    SYSTEM.BYTE
    に変更され、避けられない場合は
    CHAR
    へ変更されました。
  • 条件分岐の表現: タイプケース文は、
    IF
    構文と
    IS
    関係、およびタイプガードを用いて表現されました。
  • 配列割当て: Oberon 90 が拒否する配列割当ては
    COPY
    を使用します。
  • 文字列リテラル: Oberon 07 のバイト文字列リテラル(
    $..$
    )は、
    SYS.PutHex
    によるランタイム初期化に置き換えられました。
    • ORD(SYSTEM.BYTE)
      は OP2 で符号付きであるため、必要に応じて
      CHAR
      を使用しています。
  • アドレス参照: OP2 の問題により、定数アドレスではなく変数アドレスを持つ
    SYSTEM.BIT
    への変更が必要です。

VM エミュレータの実装

Wirth 氏の書籍で記述された RISC-5 に基づく RISC-V マシン

rv32emu
ベース)を実装し、Oberon コードを動かすために必要な(最小限の)変更を行いました。

  • 全てのモジュールはブートリンカーによってブートイメージにリンクされ、起動時に本体が実行されます。
  • 動的ロードはありません
  • 追加的なアプリケーションも実装済みで、対応するサブディレクトリの
    readme
    を参照してください。

事前コンパイルバージョン

現時点で利用可能なプラットフォームは以下の通りです:

  • Linux x64
  • Windows x86

ファイルの動作状況:

  • po.bin
    disk.img
    は全てのプラットフォームで動作します。
  • rv32vm
    実行ファイルのみがプラットフォーム依存です。
  • 他のプラットフォームで VM をビルドしたい場合、他のファイルを再利用できます。

ビルド方法

Linux x64 / macOS

vm
サブディレクトリには
build.sh
が存在し、最初にこれを実行する必要があります。その後、ルートディレクトリの
build.sh
を使用します。

利用可能なコマンド:

  • システムをコンパイル・パックして実行する場合

    ./build.sh run
    
  • 実行せずにシステムをビルド・パックする場合

    ./build.sh disk
    
  • ディスクを作成せず実行せずにシステムをビルド・リンクする場合

    ./build.sh link
    
  • 全ての Oberon モジュールをコンパイルして終了する場合

    ./build.sh
    

環境要件と構成

  • テスト環境: ビルドスクリプトは Debian Bookworm Linux で実装・テストされました。macOS でも動作する可能性がありますが、現時点では Linux でのみテストされています。
  • VM の構築:
    BUSY
    ビルドシステムでも構築可能です。
  • 必要なツール:
    C99
    コンパイラと
    SDL2
    だけが必要です(Linux および Windows で成功してテスト済み)。
    • ツールチェーンに合った SDL2 開発パッケージをダウンロードする必要があります。

Windows での実行

Windows でシステムを実行するには、以下のコマンドを使用します:

rv32vm.exe --base 0x0 --disk disk.img po.bin

SDL2 のパス指定が必要な場合は、

-P win_sdl_dir=<path>
オプションを使い、SDL2 ディレクトリのルート(
SDL2/include
SDL2/lib
が存在する場所)へのパスを指定します。


クレジット

  • Oberon ソースコードおよびドキュメント:
    oberon_license.txt
    のライセンスが適用されます。
  • RISC-V エミュレータ:
    • vm/rv32emu/README_orig.md
    • vm/rv32emu/LICENSE
  • Berkeley SoftFloat ライブラリ:
    • vm/softfloat/README_orig.md
    • vm/softfloat/COPYING.txt

vm サブディレクトリのマシンは、Free Software Foundation が公開する GNU 一般公共ライセンス(GPL)バージョン 2.0 または 3.0 の条件下で利用可能です。

同じ日のほかのニュース

一覧に戻る →

2026/08/10 4:16

LLM を活用して複雑なトピックを学ぶ方法

## Japanese Translation: 複雑な工業分野を習得するための最も効果的な方法は、学習をゲーム化するインタラクティブなローポリゴンスимуレーションを通じて行うことです。このアプローチは、LLM の説明が過度に簡素化されたり、過剰な絵文字を使用したりするなどのユーザーの課題に対し、基礎知識を視覚的な旅路に変換することで対応します(例:「ChipTycoon」シミュレーションで、砂採取からチップ配送までを仮想カートと共に案内する)。コンテンツ生成フローでは、CC または OpenCode のプランモードを用いて 3D モデルを構築する前に基礎知識を構築・検証し、正確性を確保し AI のハルシネーションを防ぎます。最終出力は GitHub Pages を有効にした新しいリポジトリに展開されます。ローポリゴンビジュアルは製造工程における製品の変化を表しますが、一部の詳細(例:石英砂の山)については想像力を働かせる必要がある場合もあります。また、画像を 3D オブジェクトに変換し、個人スキルを用いて結果をシミュレーションのマッピングすることで、さらに正確性を向上させることも可能です。本フレームワークはロケットエンジン、EUV 機器、F1 エンジン、LLM に関するガイドをサポートします。直感的なパズルを前段のステップに基づき追加することで知識定着が促進され、視覚的なゲーム化が伝統的なテキスト記述と比較して深い製造プロセスを理解するための上質な経路であることを示しています。

2026/08/10 5:42

ニュージーランドが音楽メディアを失い、その代わりに構築しようとしているものとは

## Japanese Translation: ニュージーランド(Aotearoa)の音楽業界は、急速な会場閉鎖と専門的な音楽ジャーナリズムの崩壊を原動力とする深刻な危機に直面しています。11 年間の営業後、負債により 2026 年 6 月に閉鎖されたフライング・アウト(Flying Out)、カランガハペ・ロードにて負債のため閉鎖されつつも、コミュニティによる資金集めキャンペーンで 1 週間で 15 万ドルを調達し 7 月に再オープンする予定のネック・オブ・ザ・ウッドス(Neck of the Woods)を含む象徴的なランドマークが閉鎖されました。ヴェローナは 34 年間の営業後、2026 年 4 月に清算され、チャーリーズは 2026 年 2 月、バー・セレスチェは 2025 年に閉鎖されています。K ロードで開催された大規模イベントである「ザ・オザーズ・ウェイ・フェスティバル(The Others Way Festival)」も、2026 年 5 月に恒久的にキャンセルされました。同時に、音楽ジャーナリズムはほぼ消滅しました:NZ ハーラルド紙のタイムアウトエンターテインメントチームおよび専任記者が不在となり、リプ・イット・アッップ(Rip It Up)やリアル・グローブ(Real Groove)などの雑誌も姿を消しました。2025 年、ジャーナリストのクリス・シュルツはテイト賞(Taite Award)で「傑出した音楽ジャーナリズム部門」を受賞しましたが、現在残っている音楽記者は非常に少ないと述べています。メディア報道の不均衡は依然として続いています:芸術分野が約 13% のメディア露出を占めるのに対し、スポーツは約 25%、他の芸術分野は約 3% です。ニュージーランドの音楽産業が 2023 年に国内総生産(GDP)に 4 億 5100 万ドル(波及効果を含まず)、9 億 100 万ドル(波及効果を含まない場合の合計額)を寄与したにもかかわらず、2024 年のアーティストがストリーミング・ダウンロード・物理メディア販売収益のわずか 9% を獲得しました。公式 2024 年上位 50 シングルスチャートには正確に 1 つのニュージーランド曲しか掲載されず、商業ラジオ局のうち 20% 以上の地元コンテンツを持つのは 2 社のみでした。この空白を埋めるために、プロペル(Propel)は、世界的に 2700 の会場以上をマップ化し、アーティスト向けにプロフィール、プレスキット、リンクインバイオページ、予約ページなどの無料ツールを提供することで、可視性と経済的機会を向上させるデジタルユーティリティとして設立されました。今年 alone にプロペルは電子音楽に関する記事 225 本以上を公開しており(過去 1 ヶ月だけで 30 本以上)、ソースには RNZ、Stuff、The Spinoff、NZ ハーラルド紙、Boiler Room、PwC、ニュージーランド音楽委員会が含まれます。

2026/08/10 5:18

ハッカーの 르네サンス

## Japanese Translation: 記事「The Hacker's Renaissance - A Manifesto Reborn」は、現代のハッキング文化がその根源から逸脱していることを批判的に検討し、雑誌『Phrack』が設立されて40周年を迎えることを記念すると同時に、ロイッド・ブレインキップス(「メンター」)を偲んでいます。中心的な論点是、無偏の好奇心とシステムの理解への欲求によって定義される元々のハッカーの精神が、商品化によって置き換えられているという点です。現在では、技術的好奇心が資格取得やCVE(共通脆弱性識別子)の追跡に減じられ、真のアンダーグラウンドメディアは企業のインフラ上にホストされた不透明なソフトウェア・ブロブに取って代わられています。本稿は、1986年の「Hacker's Manifesto」を参照しており、そこではハッカーは無偏であることを宣言していました。これは現在、虚偽的な行為のために称賛を得ることを推奨するインフルエンサーたちと対比されます。読者には、責任ある開示プロトコルや業界の認定書を実際の能力と見なすべきでないよう警告されています。真の実績を身につけるには、デバッグやRFCなどの技術標準を読むなど、深いスキルが必要であるからです。最終的に、本文は将来の世代に対し、かつてハッカーたちを犯罪化していた企業が今ではサミットをスポンサーとするような新しい制約に抵抗し、この傾向を拒否するよう呼びかけています。核心となるメッセージは行動への要請です:許可なく、また企業の利害関係なしに「Hack the planet」を再掲し、元々の精神を取り戻すこと。

Show HN: プロジェクト・オーベルンの RISC-V アーキテクチャによるシステムバージョン | そっか~ニュース