RISC OS Openは32ビット煉獄からの大脱出を計画している

Table of Contents

RISC OS Openは32ビット煉獄からの大脱出を計画している

RISC OS Open からの新たな資金調達の取り組みは、将来の Arm ハードウェア向けのオペレーティング システムを近代化することを目指しています。

金曜日、オリジナルのAcorn RISC Machine OSのFOSS版を保守する組織であるRISC OS Open Limited(ROOL)が、Moonshotsイニシアチブを発表しました。ROOLは、RISC OSをArm64に移植するための資金、開発者、そしてコミュニティからの支援を求めています。64ビット命令セットは、少なくともカーネルレベル以上では、最新のArmコアのほとんどがサポートする唯一の命令セットだからです。

2023年にインタビューしたROOLのボス、​​スティーブ・レビル氏も、ROOLが何をすべきか、そしてどれだけの作業が必要になるかを説明した公開書簡[PDF]を公開しました。ROOLはまた、RISC OSに必要なと考える近代化のロードマップも作成しています。ムーンショット・イニシアチブは、コミュニティがRISC OSに求める特定の機能に資金提供できる既存のバウンティ・プログラムの野心的な拡張版です。

すでにスポンサーも獲得しているとレビル氏はThe Registerに語った。

RISC OSは、Armプロセッサ向けのネイティブOSの元祖であり、まさに生き残りと言えるでしょう。The Registerが2012年にAcorn Archimedesの25周年記念記事で取り上げたように、このOSはArthurというバージョンから進化しました。Arthurは、Acorn Computersの最初のArm搭載Archimedesマシンに搭載されていたAcornの6502ベースマイクロコンピュータで使用されていたOSから生まれました。最初の公式リリースであるArthurバージョン1.2は1987年9月にリリースされました。ちなみに、これはWindows 2.0やOS/2 1.0よりも前のバージョンで、どちらも1987年12月に登場しました。Reg FOSSデスクは2022年にプロジェクトリーダーのPaul Fellows氏にインタビューを行いました。

アーサー・UI。出典:マシュー・パイ

1987年のアーサーUI – クリックして拡大

RISC OSは、1989年4月にバージョン2.0がリリースされた際に付けられた、やや専門的な名称です。これはOS/2 1.2、そしてNeXTstep 1.0の6か月前のことでした。Appleは現在、NeXTstepの最新バージョンをmacOSと呼んでいます。また、OS/2 1.2は、1年以上後に登場したWindows 3.0で有名になった3Dシェーディングボタンを導入したバージョンです。

CPU の下位互換性という観点から見ると、RISC OS が存在する Arm の世界と x86 の世界の違いは私たちにとって興味深いものです。

x86の世界では、AMD64、x64、x86-64、あるいは昔ながらのx86など、様々な呼び方がある64ビットチップはすべてx86-32もサポートしており、1978年の8086チップに遡れば16ビットコードもサポートしています。2023年、Intelは16ビットと32ビットのサポートを廃止した簡素化された仕様、x86Sを提案しました。翌年、Intelはx86 ISA諮問グループを結成しましたが、x86Sの構想は受け入れられず、12月に中止されました。これは、x86の世界における後方互換性の精神と切っても切れない関係にあります。

  • 古いRaspberry Piをお持ちですか?RISC OSをお試しください。文字通り、別物です。
  • RISC OS: 35年前に登場したオリジナルのArmオペレーティングシステムは健在
  • 今週、Raspberry Pi 4で何をしますか?RISCでビスケットを作ってみるのもいいかもしれませんね。
  • RISC OSは史上最速のハードウェアで動作します

Armなら、もしそれが望みなら、システムの肥大化は大幅に軽減されます。チップ設計者は、既製のArm CPUコア設計を選択して自社プロセッサのライセンスを取得したり、最上位アーキテクチャライセンスを使用して独自のArm互換コアを設計したりすることも可能です。コストを抑えるため、ハードウェアメーカーは必要な部分のみをライセンスしています。古い32ビットコードを実行する必要がない場合は、選択したコアまたはアーキテクチャライセンスが許せば、Arm32命令セットを省略することでコストを削減できます。

さらに、サーバーや PC に搭載する汎用アプリケーション プロセッサについては、Arm はカーネル モード、次にユーザー モードと、64 ビット専用コアの提供へとさらに進んできました。

その結果、Intelは旧命令セットの廃止に敗れたものの、最近のArmベースのプロセッサやシステムオンチップ(SoC)ファミリーのほとんどは、Arm32を限定的にサポートしているか、全くサポートしていません。例えば、Raspberry Pi 5のArm Cortex-A76 CPUコアはArm32アプリケーションを実行できますが、ネイティブの32ビットArm OSを起動することはできません。これらのコアはカーネルレベルで64ビットコードのみをサポートしています。

RISC OS 5.30 には多種多様なアプリケーションが付属しており、さらに多くのアプリケーションがオンラインで提供されています。

RISC OS 5.30 – クリックして拡大

したがって、RISC OS が将来の Arm ハードウェア上でネイティブに動作し続けるためには、早急に 64 ビット化する必要があります。現状では 32 ビットです。

そこに到達するだけでも大変な努力が必要だったため、OSは少なくとも一度はプロセッサの移行を経験しています。Acornが撤退し、RISC OSコミュニティがデスクトップOSの開発を継続する権利を得てRISC OS 4として再リリースされたとき、このOSは依然としてほぼ手作業で書かれたアセンブリ言語で記述され、1980年代のArm独自の26ビットアドレッシングを採用していました。32ビットレジスタ、26ビットアドレス。プログラムカウンタの上位6ビットはCPUステータスフラグ、下位2ビットはCPU特権モードを保持していました。

Arm初期の26ビットアドレッシング(命令は32ビットワード境界でアラインメントされているため、下位モードビットは無視される)はソフトウェアに64MBのアドレス空間を提供し、これは十分すぎるほどに思えました。1990年代初頭にARM6 CPUが登場した頃には、アーキテクチャは命令とデータの両方で完全な32ビットをサポートし、その後26ビットアドレッシングは廃止されました。(初期の680x0 Macの白髪のユーザーは、Appleがほぼ同様の問題に直面していたことをぼんやりと覚えているかもしれません。)

1990年代以降、32ビットArmコアが利用可能であったにもかかわらず、Acornは26ビットに固執しました。少なくとも、32ビットに移行するとアプリケーションの互換性が損なわれるという理由もありました。Acornエコシステムに必要なものが一つあるとすれば、それはおそらく、保持できる限り多くのアプリケーションだったと言えるでしょう。

RISC OS バージョン 5 は、2000 年代初頭に Castle Technology 社が開発したフォークであり、思い切って完全な 32 ビット化を実現しました。Castle 社の Iyonix コンピューターに搭載されている 32 ビット専用プロセッサーで動作させるためです。皮肉なことに、このコンピューターは、Arm ベースの Intel Xscale を搭載していましたが、その理由を説明すると、この長めの記事が正式に長くなります (RISCOS Ltd RISC OS 4 と Castle Technology RISC OS 5 の争いについては触れませんが、最終的には決着がつきました)。

バージョン5での32ビットへの移行は、完全な書き換えではなく、比較的軽微なものでした。いくつかの新しい32ビットビルドツールが必要でしたが、前述の通り、新しい32ビットRISC OSは26ビットベースのバイナリを実行できませんでした。ただし、Aemulor互換レイヤーによってこの問題は修正されました。

RISC OS wikiで説明されているように、64ビットへの移行ははるかに困難です。26ビットから32ビットへのアドレス指定の変更に伴い、命令セットはほぼ同じままです。26ビットから32ビットへのアドレス指定の変更には、例えばポインタの上位ビットにフラグが格納されたり、フラグとみなされたりしないようにする必要がありました。

しかし、32ビットから64ビットへの移行では、命令セットは完全に変わります。64ビットArmは、64ビットMIPSライクなRISCアプローチを採用した、新たなスタートです。32ビットArmは…32ビットArmです。Acornの天才たちが生み出した、複数のロード命令とストア命令といったちょっとした工夫が凝らされた32ビットRISCです。つまり、OS、つまり手作業でコーディングされたアセンブリ言語はすべて、64ビットArmコードで書き直す必要があるということです。スポンサーページにも記載されているように、現在の計画はRISC OSの中核部分を「手作業でコーディングされたArmアセンブリ言語から高水準言語(例えば、移植可能なANSI C)へ」作り直すことです。

それは大きな目標です。レヴィル氏の公開書簡にはこう書かれています。

RISC OSは依然としてユニークです。1980年代のプロプライエタリOSを現代的にアップデートしたバージョンです。初代モデルからPi 4、Pi 400まで、どのRaspberry Piでも問題なく動作します。しかし、Raspberry Pi 5バージョンは存在せず、ROOLによると、このムーンショットが成功しない限り、リリースされることはないとのことです。小型で高速、そしてシンプルで、このハゲタカの私見では、従来のmacOS以外では最も洗練されたデスクトップGUIを備えています。しかしながら、メモリ保護が完全ではない(これもまた、歴史的な互換性の問題によるものです)ことや、最新のマルチコアプロセッサをサポートしていないことなど、大きな制限があります。

この壮大な計画が成功するのを心待ちにしています。20世紀の最高のOSがいかに小型で無駄がなかったかを垣間見ることができるのです。今日の世界には、これほど優れたOSは他にありません。®

起動ノート

RISC OSといえば、Pyromaniacについて触れておく価値があります。これは、PythonでRISC OSをゼロから実装する非常に優れたプロジェクトで、Armエミュレーションを組み込んでおり、非ArmシステムでRISC OS実行ファイルを実行することができます。コードは公開されていませんが、クラウド上のコマンドラインレベルで試用できます(こちら)。Linux、macOS、Windowsで動作するように設計されています。

Pyromaniacは、デスクトップを含む64ビットおよび32ビットのRISC OS環境を提供します。Gerph氏によって開発されました。彼はかつてRISCOS Ltdで勤務し、1990年代後半から2000年代にかけて、Acornの廃墟からRISC OS 4、Select、そして6ファミリーのオリジナルOSを開発しました。

Pyromaniac ソフトウェアは、オンライン RISC OS ビルド サーバーにも搭載されています。

Discover More