現在はメジャーなOSとして世界中で使用されているLinuxも、元々はフィンランドの大学生だったLinus Torvalds氏により個人プロジェクトとして開発が始まりました。
本日紹介する「Sortix」もそのような個人初のオペレーティングシステムの一つです。
2011年の2月8日にデンマークの開発者Jonas 'Sortie' Termansen氏によってスクラッチから開発が始まった比較的若いソフトウェアで、クリーンかつモダンなPOSIX互換OSを目指し開発が進められています。
現段階ではOSに必要ないくつかの重要な要素が欠落しているとのことですが、2016年の3月にバージョン1.0が公開され基本部分は十分安定している模様です。実際にISOファイルダウンロードし、仮想マシンやリアルマシンを利用して実行することが可能です。
Sortixは以下のような特徴を持っています。
- 32bit/64bit x86システムに対応
- インストール、セルフホスティング可能
- 標準的なプログラムのコマンドライン環境
- 最初からコヒーレントに設計されたベースシステム
- スクラッチから書かれたカーネル
- libcもスクラッチから
- マニュアルページ
- ATAとAHCIハードディスクドライバ
- システムソースコードを含む
- gccやmakeのような開発ツール
- ext2ファイルシステム
- MBR/GPTをサポートしたパーティションエディタ
- zlibのクリーンフォークのSortix libz
- asteroidsのようなゲーム
- 50以上のサードパーティライブラリとプログラム
- このリリースは自分自身でビルドされた
なおセルフホスティングとは「ツール群やオペレーティングシステムの一部であるプログラムを使って、同じプログラムの新しいバージョンを作ること」を指すそうです。Sortix自身を利用してSortixを改良していくことできる段階にあることがわかります。
一方不足している要素としては、GUIデスクトップ環境やネットワーク環境、USBやCDROMのサポートなどがリストアップされています。
以下使用法を説明します。
QEMUで実行
Sortixはリアルハードウェアでの実行も想定されていますが、まずは仮想環境で実行するのが簡単です。ドキュメントの指示に従い作業していきます。
最初にSortixのミラーサイトのbuildsフォルダに含まれるisoファイルをダウンロードしましょう。sortix-1.0-i686.isoは32bit版、sortix-1.0-x86_64.isoは64bit版となります。
ダウンロードが完了したらQEMUを利用しハードディスクイメージをISOファイルと同じフォルダに作成します。
qemu-img create sortix.raw 1G
準備が完了したらQEMUを実行します。QEMUはmacOSのHomebrewの場合「brew install qemu」で簡単にインストールできます。
32bit版の場合:
qemu-system-i386 -enable-kvm -m 1024 -vga std -cdrom sortix-1.0-i686.iso -drive file=sortix.raw,format=raw
64bit版の場合:
qemu-system-x86_64 -enable-kvm -m 1024 -vga std -cdrom sortix-1.0-x86_64.iso -drive file=sortix.raw,format=raw
オプションは適宜変更してください。手元の環境では"-enable-kvm"が使えず、かつ日本語キーボードを使用したかったので以下のようなオプションで実行しました。
qemu-system-x86_64 -m 1024 -k ja -vga std -cdrom sortix-1.0-x86_64.iso -drive file=sortix.raw,format=raw
実行すると起動メニューが表示されます。
▲一番上の「Sortix (live environment)」を選ぶとライブ環境で起動します。
しばらくすると起動が完了し以下のような画面が表示されます。
▲すでにログインした状態です。「cat welcome」を実行するとカレントフォルダに存在する「welcome」ファイルの内容を表示することができます。「man user-guide」や「man installation」によってドキュメントを参照できることがわかります。
▲「git」や「gcc」といった開発ツールが実行できます。
▲「editor」という名前のテキストエディタでwelcomeファイルを開くことができました。
そのほかSortixの使用法は公式Webサイト上で確認することも可能です。
まとめ
Sortixは今もまだ開発が進められている最中の現在進行形のオペレーティングシステムです。Hacker Newsのコメントによると、カーネルがC++を多用して書かれていて、独自のlibzや、POSIX互換をテストするos-testにも特徴があるとのこと。
OSマニアの方はチェックしてみてはいかがでしょうか。