代替OS (PC用)

(2004.10.11ページを分離、新規作成。)

(2005.10.16更新、2006.6.15更新。)

PCで動くフリー (自由な) OSをいろいろ試してみる。PCで動く、ということで、多くの組込みOSは対象から除く。試せないし。

サブページ

OS開発の方向性

Haiku - BeOS互換OS BeOS風

AROS AmigaOS 3.1互換OS.

MINIX 3 マイクロカーネルUNIX.

Plan 9 UNIX の後継。2020.10にも新版のリリースあり。

Debian GNU/Hurd

VISOPSYS - 超軽量32bit OS

Kolibri OS - アセンブラで書かれたOS

別セクション

関連しそうな記事。

Linuxディストリビューションあれこれ

FreeBSD FreeBSDの派生ディストリビューションや, ZFSについてもこちら。

目次:

@ その他のUNIX

いずれも、カリフォルニア大学バークレー校 (UCB) で開発された4.4BSD Lite をベースに開発されている。

NetBSD

配布サイト:
The NetBSD Project
ライセンス:
修正BSDライセンス

jp.netbsd.org ドメインは Japan NetBSD Users' Group というユーザグループのもの。入手先ではない。

大変移植性に優れたUNIX OS。非常に多くのプラットフォームをサポートしている。Platforms Supported by NetBSD

Tier 1はそんなに多くない -- x86_64, arm, mips, powerpc, i386, sparc64, Xen VM -- が、Tier 2 でも最新バージョンに追従しているのが凄い。

NetBSD memo 雑多なメモ.

OpenBSD

配布サイト:
OpenBSD
ライセンス:
修正BSDライセンス

徹底してセキュリティにこだわったUNIX OS。2020年10月のOpenBSD 6.8 で, プロジェクト25周年。

@ illumos (旧OpenSolaris)

(2008.3.10 追加。)

Sun Microsystems社のUNIX OS、Solarisをオープンソース化したもの。バイナリ版はSolaris Express。

[2011-08] Sun MicrosystemsはOracleに買収され,SolarisもOracleのプロダクトになりました。その後、Oracleは OpenSolaris のソース公開を終了しました。

  • http://opensolaris.org/os/ (2018-06) OpenSolaris のサイトも消失.

[2020-11] Oracle Solaris も 11で止まっているように見える。2018年8月の v11.4 が最新か。

コミュニティベースの活動は illumos に引き継がれています。illumosはOSカーネル。

デスクトップ環境などを加えたディストリビューションとしては、例えば OmniOS や OpenIndiana があります。Linux と同じモデル。OmniOS はサーバ向け。OpenIndianaは Workstation, Server向け。

Redox

Redox is a Unix-like Operating System written in Rust, aiming to bring the innovations of Rust to a modern microkernel and full set of applications.

[2020.7] バージョン0.5.0を試してみた。GUIも動く。これはすごい! まだGUIは未完成。

ライセンスは MIT, ウィンドマネジャはwayland, Orbital (Weston and Qt). パッケージマネジャは Nix.

The Managarm Project

マイクロカーネルOS, POSIXサポートを目指しているみたい。Wayland.

試してない.

HelenOS

プラハ・カレル大学で開発されている, マイクロカーネルOS.

何これすごい。何かのforkというわけでもなさそう?

Design differences from UN*X and POSIX systems:

  • No fork(), no exec()
  • Running in background
  • No signals
  • No open()
  • Lexical dot-dot resolution
  • No BSD sockets
  • No serial terminals
  • No X
  • No legacy API burden
  • Universal character set only

かなりUNIXとは異なる.

@ Inferno

(2005.10.16)

ユーザーモードOS。ホストOSの上で仮想的なOSとなる。位置づけとしてはJava VMに近い。ホストOSとしては、Windows, UNIX OS (Solaris, UnixWare, Linux, FreeBSD, HP-UX, Irix), MacOS X, Plan9が利用できる。

配布サイト:
Inferno
ライセンス:
Lucent Public License (OSI certified), 商用ライセンスのデュアルライセンス

インストールCD-ROMイメージがダウンロードできる。ブータブルCDではない。ソースコード inferno-os / inferno-os 意外に、開発が継続している。

Windows XPにインストールしてみた。インストールは、CD-ROMをマウントして、install/setup.exe を実行する。インストール後の大きさは141Mバイト。

emuコマンド(<インストール先>/NT/386/binにある)にインストール先ディレクトリをオプションとして付けて実行する。

emu -rf:\inferno

シェルが起動する(プロンプトは';')。/dis/wm/wm でウィンドウが開く。

(2005.10.16)

@ L4

(2005.6.11 この節を追加。)

L4は非常に小さなマイクロカーネル。システムコールは次のものしかない。APIとしては、これらを利用したサポート関数がいろいろ加わるが、それでも非常に少ない。

L4 eXperimental Kernel Version X.2 Revision 6 (June 8, 2005)

#include <l4/kip.h>
void * KernelInterface (Word& ApiVersion, ApiFlags, KernelId)
#include <l4/thread.h>
ThreadId ExchangeRegisters (
    ThreadId dest, 
    Word control, sp, ip, flags, UserDefinedHandle, 
    ThreadId pager,
    Word& old_control, old_sp, old_ip, old_flags, old_UserDefinedHandle, 
    ThreadId& old_pager)
Word ThreadControl (ThreadId dest, SpaceSpecifier, Scheduler, Pager, 
    void* UtcbLocation)
#include <l4/schedule.h>
Clock SystemClock ()
void ThreadSwitch (ThreadId dest)
Word Schedule (ThreadId dest, 
    Word TimeControl, ProcessorControl, prio, PreemptionControl, 
    Word& old_TimeControl)
#include <l4/ipc.h>
MsgTag Ipc (ThreadId to, FromSpecifier, Word Timeouts, ThreadId& from)
MsgTag Lipc (ThreadId to, FromSpecifier, Word Timeouts, ThreadId& from)
#include <l4/space.h>
void Unmap (Word control)
Word SpaceControl (ThreadId SpaceSpecifier,
    Word control, 
    Fpage KernelInterfacePageArea, UtcbArea, 
    ThreadId Redirector, 
    Word& old_Control)
#include <l4/misc.h>
Word ProcessorControl (Word ProcessorNo, InternalFrequency, ExternalFrequency, voltage)
Word MemoryControl (Word control, Word& attributes[4])

L4カーネルだけだとあまりに小さいので、その上でファイルシステムサーバなど各種サーバ群を動かす。例えば、L4Linuxは、L4カーネル上でL4Envサーバを動かし、さらにその上にユーザモードLinuxを動かしている。

配布サイト:
L4Linux
ライセンス:
L4は?、L4Env はGPLv2

(クリックすると拡大します)

@ FreeDOS

配布サイト:
FreeDOS | The FreeDOS Project
ライセンス:
GPL

MS-DOS互換のフリーOS。

@ ReactOS

(2008.3.10 追加。)

Windowsのバイナリ互換を目指すフリーOS。アプリケーションとドライバの両方の互換性を確保しようとしている。

ユーザランドのほうはWineをそのまま利用しているみたい。

活発に開発が継続している。

終了したように見える

@ Syllable

http://web.syllable.org/ (2018-06) 長らくサーバがダウンしている。プロジェクト終了か? Syllable Desktop operating system [2020-11] 2012年の v0.6.7 から更新がない。終了のようだ。

AtheOS (開発終了) から派生したOS。ライセンスはGPL, ホーム向け、GUI付き。POSIX互換を目指しているから、UNIX OS + GUIという組み合わせ。

libcにglibcを採用し、UNIX (POSIX) との互換性は高い。

GUIは独自。Xウィンドウでもないかな?

ブートローダはGRUB。

独自のWebブラウザを持つ。

glibc 2.4を採用。

@ Mona OS

ひげぽん氏が中心となって開発している、C++で書かれたマイクロカーネルOS。標準のシェルは Scheme (Lisp) ベース。

配布サイト:
MonaOS - Free Operating System
ライセンス
MIT/X ライセンス

2018年6月現在, 最新は 2011年8月のバージョン 0.3.4. もはや開発終了。

@ es オペレーティングシステム

(2007.10.24追加、2007.11.29更新。)

任天堂が研究用に開発しているOS。

(2018-06) 2018年6月現在, OS としての開発は、すでに終息したように見える。

スライドなどを見ると、

  • マイクロカーネル
  • プロセス間呼び出しは、IDLを定義し、オブジェクトのメソッドに対するRPCで行う。(単なる関数呼び出しではない。)
  • カーネルのAPIもIDLで定義する。
という感じ。

Squeak が es 上で動く。

es-demo 0.1.0 を qemuで動かしてみました。アーカイブをダウンロード、展開して、

$ qemu -hda hdd.img -serial stdio -soundhw sb16

起動中のメッセージを見ると、PCIバス、PS2マウス、Sound Blasterなどを認識しています。ファイルシステムはFAT32のようです。バイナリの形式はELFか。シェルで入力待ちになります。

squeak とタイプすると、Squeak 3.7 が起動します。エミュレータなので動きがモッサリしていますが、きちんと動いています。素晴らしい。

(クリックすると拡大します。)

@ Amoeba

(2005.10.15)

配布サイト:
Distributed Operating System Amoeba - Fireball Software Distribution
ライセンス:
BSD

分散OS。ただし、開発は終了している。

ISOイメージがダウンロードできるが、CD-ROMからはブートできない。CD-ROMをマウントしてfloppiesディレクトリの各ファイルをFDに書き込んで、FDからブートする。

@ JNode

(2008.3.11 追加。)

ほとんどすべてをJavaで作ったOS。カーネルの一部に若干、アセンブラが含まれるらしい。

サイトのスクリーンショットを見るとJavaプログラムがそのまま動くようだったので、試してみました。

JNode バージョン0.2.6 を QEMU 0.9.0 で動かしました。結果は、コンソールでは起動できるものの、GUIモードにはできませんでした。

外部リンク

Benchmarking BSD and Linux
Linuxカーネル2.4, 2.6, OpenBSD 3.4, FreeBSD 5.1, NetBSD 1.6.1のスケーラビリティ・性能調査。2003年10月現在。