RISC OS ()は、ARMアーキテクチャシステム向けに設計されたグラフィカルユーザインタフェースベースの一連のオペレーティングシステム (OS) である。ARMがRISCアーキテクチャであることから名付けられた。エイコーン・コンピュータが1987年、Acorn RISC Machine プロセッサを採用した自社製のArchimedesというパーソナルコンピュータ向けに開発したのが最初である。コマンドラインインタフェースとウィンドウシステムを伴ったデスクトップ環境を備えている。

1988年から1998年まで、ほぼ全てのエイコーン製のARMベースのコンピュータ（Archimedes、RiscPC、NewsPad、A7000）にバンドルされていた。オラクルのネットワークコンピュータやその互換機で RISC OS の派生版 (NCOS) が使われていた。1998年にエイコーンが解体されると、このOSの開発はフォークし、RISCOS Ltd、Pace Micro Technology、Castle Technology といったいくつかの企業がそれぞれ開発を継続した。1998年以降は、IyonixやA9homeといったARMベースのデスクトップコンピュータにバンドルされてきた。2012年現在も開発はフォークしたままであり、RISCOS Ltd と RISC OS Open コミュニティで開発されている。

最近の安定バージョンが動作するプラットフォームとしては、ARMv3/ARMv4のRiscPC（あるいはVirtualAcornやRPCEmuなどのエミュレータ）、ARMv5のIyonix、ARMv7ベースのCortex-A8プロセッサ（BeagleBoardやTouch Bookなどで使われている）がある。2011年、Cortex-A9ベースのPandaBoardへの移植が発表され、Raspberry Pi 向けの開発版も公開されている。

 歴史 
1987年、Arthur 1.20 として生まれた。次のバージョンである Arthur 2 から RISC OS 2 と呼ばれるようになり、1989年4月にリリースとなった。RISC OS 3.00 はいくつかの新機能を搭載し、1991年に初期のA5000向けにリリースされた。1996年までに50万システム以上の RISC OS が出荷された。

エイコーンは1999年1月に RISC OS の開発を公式に停止し、社名を Element 14 に変えた。1999年3月、新たに創業した RISCOS Ltd が Element 14（およびその親会社となった Pace Micro Technology）からライセンス供与を受けて RISC OS 3.8 の開発を継続し、1999年7月に RISC OS 4 としてリリース。同社によれば、2005年に生産停止となるまでに RISC OS 4.02 を搭載したROMが6,400個出荷された。

2001年5月、RISCOS Ltd は、ユーザーが最新のOSアップデートにアクセスできるようにする RISC OS Select を開始した。ソフト的にロード可能な形式でリリースするもので、ROM上のOSでブートした際にロードできる。2002年5月に Select 1、2002年11月に Select 2、2004年6月に最後の Select 3 がリリースされている。同時にROM版のバージョン4.39をリリース。これは3ボタンマウスを 'Select', 'Menu', 'Adjust' として使えるようにしたバージョンで、RISC OS Adjust とも呼ばれている。

2002年10月、Castle Technology が Iyonix PC をリリースした。Paceがセットトップボックス向けに改良したNCOSをベースとした別系統の RISC OS 5 が搭載されている。2006年10月、Castleは RISC OS 5 をシェアードソース型ライセンスで公開する計画を発表。その管理を行う会社として RISC OS Open Ltd. が創設された。

同じく2006年10月、RISCOS Ltd は RISC OS Six を発表。これまで通り Select 方式で Select 4 として出荷するとした。ベータ版の RISC OS 6, Preview 1 (Select 4i1) が2007年に登場し、Select の購読者全員に対して無料で提供された。2009年4月には Select 5 が出荷されている。

2009年12月、RISCOS Ltd は最新版の Select 6i1 を出荷した。

 サポートしているハードウェア 
RISC OS の各バージョンとそれらが動作するハードウェアの対応を下表に示す。

+ RISC OS 対応ハードウェアマシン 発売年 バージョン RISC OS Openが開発したROM最初 最後 26ビットのプログラムカウンタを持つARM Acorn Archimedes 1987年 - 1992年 0.30 - 3.1x 3.1x 26または32ビットのプログラムカウンタを持つARM Acorn Risc PC 1994年 3.50 6.20 Acorn A7000/A7000+ 1995年 - 1997年 3.60 - 3.71 6.20 Acorn Phoebe 1998年（開発中止） 3.80 (Ursula) MicroDigital Medi 1998年 3.71 6.20 MicroDigital Mico 1999年 4.03 4.39 RiscStation R7500 1999年 4.03 4.39 不明Castle Kinetic RiscPC 2000年4.036.20 MicroDigital Omega 2003年 4.034.39 Advantage Six A75 2004年4.39 不明32ビットのプログラムカウンタを持つARM Iyonix Ltd Iyonix PC 2002年 5.01 5.18 Advantage Six A9(Home/RM/Loc) 2005年 4.42 BeagleBoard 2008年 5.15 5.18 Always Innovating Touch Book 2009年 5.15 PandaBoard 2011年 5.17 OpenPandora Pandora 2009年 5.17 Raspberry Pi 2012年 5.19 未決定 = 公開されていない

Microsoft Windows 上で動作する商用エミュレータVirtualAcornもリリースされている。

RISC OS はかつてセットトップボックスのOSとしても使われていた。

 機能と特徴 

 OS中核部 
マルチユーザーOSであり、協調型マルチタスクである。多くのOSがプリエンプティブマルチタスクとマルチスレッドへと進化した中、RISC OS は協調型マルチタスクのままである。2003年ごろには、多くのユーザーがプリエンプティブマルチタスクへの移行を要望するようになった。メモリ保護機構も十分ではない。

このOSの中核部はROMに格納されており、ブートが高速でOSが壊れることがない。RISC OS 4 および 5 は4MBのフラッシュメモリに格納されており、ROMチップを交換することなくOSを更新可能になっている。複数のモジュールで構成されており、モジュール単位で更新・追加が可能で、ROM内にあるモジュールもROMチップを交換することなく更新可能である。そのような設計であるため、OS開発者はモジュール単位の更新が可能で、サードパーティーがモジュールを更新・追加することも可能である。モジュールへのアクセスはソフトウェア割り込みを使用しており、他のOSのシステムコールに似ている。

多くのバージョンでフィルタやベクタを扱うABIが定義されている。OSの動作に割り込んだりOSの動作を変更したりする方法がいくつも提供されており、OSの挙動を簡単に変更できる。結果としてOSのルック・アンド・フィールをカスタマイズするサードパーティー製プログラムがいくつも開発されてきた。

 ファイルシステム 
ファイルシステムはボリューム指向であり、ボリューム（ディスク、ネットワーク共有など）単位にファイル階層が存在する。ファイルの種類は、拡張子ではなくメタデータで判別する。パス名は、次のような形式である。

 ファイルシステム種別::ボリューム名.$.ディレクトリ階層.ファイル名/拡張子

$ はルートディレクトリを意味し、ディレクトリの区切りにはピリオド (.) を使用する。拡張子は不要だが、外部から拡張子付きのファイルをロードした際には、ピリオドがスラッシュに置き換えられる（例えば、example.txt は example/txt となる）。例えば、

 ADFS::HardDisc4.$.

は、HardDisc4 という名称のディスクのルートディレクトリを意味し、ファイルシステムとしてはADFSを使用していることを意味する。RISC OS のファイル種別は、他のシステムでは3桁の16進で ',xxx' のようにファイル名に添えることで保持できる。クロスプラットフォームのソフトウェアを使う場合、他のシステムでのファイル種別が RISC OS 上では '/[extension]' という形式でファイル名に添えられる。

特定の種別のファイルをボリュームとして扱えるファイルシステムもあり、に似ている。OSではこの機能をイメージ・ファイリング・システムと称している。アーカイブ形式のファイルを透過的に扱うことができ、特殊なプロパティ付きのディレクトリ階層として見える。アーカイブ内のファイルはアーカイブ外へのシンボリックリンクであってもよい。

2GBを越えるファイルはサポートされていない。

 ファイルフォーマット 
ファイルフォーマットの判別にはメタデータを使用する。このマッピングを行っているのが MimeMap モジュールである。

 カーネル 
カーネル本体はシングルタスク型（協調型マルチタスクはWindowManagerモジュールで提供）であり、割り込み処理、DMAサービス、メモリ割り当て、画面表示などを担当している。

 デスクトップ 
GUIインタフェースとして3ボタンマウスに対応しており、コンテキストメニュー、ウィンドウ表示順序制御、動的ウィンドウフォーカス（ウィンドウは画面上隠れていても入力フォーカスを得ることができる）といった機能を備えている。Dock風のアイコンバーに、各ボリュームや動作中のアプリケーションやシステムユーティリティなどを表すアイコンが並んでいる。それらアイコンにもコンテキストメニューがあり、ドラッグ・アンド・ドロップにも対応している。

GUIはファイルをコンセプトの中心としている。Filerがディスクの内容を表示する。Filer内のアイコンをクリックすることでアプリケーションを起動し、アプリケーションからFilerにファイルをドラッグ・アンド・ドロップすることでセーブを行える。アプリケーションを格納するディレクトリをアプリケーションディレクトリと呼び、通常のディレクトリとは区別しディレクトリ名の前に感嘆符を添えて表示する。そのようなディレクトリをオープンしなくても、ダブルクリックするだけでアプリケーションを起動できる。アプリケーションのファイル群とリソース群がそのようなディレクトリ配下にあるが、通常その構成はユーザーから隠蔽されている。アプリケーションはアプリケーションディレクトリの形でドラッグ・アンド・ドロップすることでインストールおよび削除が可能である。

RISC OS のスタイルガイドが全体的なルック・アンド・フィールの統一を推奨している。これは RISC OS 3 から導入され、アプリケーションの見た目と挙動を規定している。エイコーンがOSにバンドルしていたアプリケーションはスタイルガイドに準拠していなかったが、2001に RISCOS Ltd が Select をリリースした際に更新された。

 フォントマネージャ 
1989年1月以前からアウトラインフォントマネージャがフォントのアンチエイリアスを提供しており、この手の機能を搭載した世界初のOSだった。1994年の RISC OS 3.5 から、それまでビットマップフォントを使っていた部分でもアンチエイリアスされたアウトラインフォントを使えるようになった。

 バンドルされたアプリケーション 
RISC OS にはプリインストールされたデスクトップアプリケーション群が付属している（時計、ゲーム、ドローソフト、テキストエディタ、楽譜作成ソフト、ペイントソフトなど）。

 後方互換 
新たなバージョンのOSやハードウェアへの移植性は高くない。BBC BASIC で書かれたプログラムは比較的移植が容易だが、デスクトップアプリケーションやゲームには深刻な後方互換問題がある。

1994年のRiscPCの登場と、後のStrongARM向けのアップグレードで、コード列と独自のデータ圧縮方式 (AIF) で非互換問題が生じた。そのためStrongARM向けアプリケーションにパッチをあて、AIFヘッダに対して伸長を行う UnsqueezeAIF というソフトウェアを提供した。この非互換問題があったため、The ARM Club による Game On! と StrongGuard というソフトウェアのリリースが促進された。それらは非互換問題で動作できなかったソフトウェアを新システム上で動作できるようにするものである。A9home向けのOSでは、AIFヘッダのないソフトウェアは「デスクトップの破壊」を防ぐため、動作できないようにされた。

Iyonix PC (RISC OS 5) と A9home（RISC OS 4 カスタム）では、26ビットのアドレッシングモードを捨てたためにさらなるソフトウェア非互換が生じた。活発に開発されていたアプリケーションの多くは、それ以降書き換えられることになった。静的コード解析で26ビット固有のコード列を検出する ARMalyser も登場した。その出力を使ってソースコードがない古いアプリケーションを32ビット版にすることができる。一部の26ビット版ソフトウェアは、Aemulorというエミュレータを使えば修正することなく動作する。

BeagleBoardのARMv7やRaspberry PiのARMv6でも非互換が生じている。