1987年にオランダのアムステルダム自由大学の教授、アンドリュー・S・タネンバウム氏によって開発されたオペレーティングシステム「MINIX」。Linuxにも影響を与え、2005年には最新版の「MINIX 3」が公開されています。
MINIXを題材とした教科書が出版されていることもあり、今でもOSを学ぶ最良の方法の1つだとも評価されていますが、書籍に掲載されているソースコードをコンパイルできるMINIX 3プロジェクトが存在しないという問題があるようです。
この問題を解決すべく開発が進められているのが「MINIX From Scratch」です。
プロジェクトは、「Design and Implementation (3e)(v3.1.0)」で参照されているコードをコンパイルし、初心者が、本の内容を動かしながら学べる事を目的としています。
コードの閲覧、編集、再コンパイル、実行を容易するための試みだと説明されています。
以下実行方法を説明します。
MINIX 3を起動してみよう
MINIX From Scratchプロジェクトからダウンロードできるイメージファイルはqemuで実行可能です。単に起動するだけならばqemuが実行可能なOS(LinuxやmacOS)で実行可能です。
以下の手順を実行します。
- ソースコードを
git clone
する。git clone https://github.com/o-oconnell/minixfromscratch.git
- GitHubのリリースページからイメージファイル(
minix3.1.0-book-version-harddisk.img.zip
)をダウンロードして展開。先ほどcloneしたフォルダの中にコピーする。 - 以下のコマンドで実行。
cd minixfromscratch ./qemuminix3.sh
これでMINIX 3を起動することができます。ユーザー名root、パスワードなしでログインできます。
▲ls
やdf
などのコマンドを実行することができます。
なお、QEMUを終了する前に必ずCtrl+Alt+Del
を実行する必要があるとのこと。そうしないとファイルが壊れる可能性があるそうです。
MINIX 3のファイルを自分好みのエディタで変更したい
MINIX 3に格納されている各種のソースコードはMINIX 3上のエディタ(viなど)を使って編集する事ができます。
しかしLinux環境では、MINIX 3のイメージファイルをLinuxに直接マウントして、内部のファイルをLinuxのエディタを使って編集する事ができます。
その手順は以下の通りです。
- rootユーザーで
./mountminix3.sh
を実行。root、usr、homeパーティションがマウントされる。 - MINIXのコードを好みのエディタで編集する。
./umountminix3.sh
でマウント解除。./qemuminix3.sh
でMINIXを起動する。
この手順を繰り返すことで、MINIXの気になるソースコードを変更し、その結果がどうなるかを動かしながら確認する事ができます。
MINIXはオペレーティングシステムのほか、サイバーシステムやネットワーキング、システム管理、コンピュータアーキテクチャ、コンパイラ、ファイルシステム、ハードウェア、Bashスクリプト、データ構造とアルゴリズムを学習するのに役立つとのことです。
まとめ
MINIX From Scratchプロジェクトによって、モダンな環境で手軽にMINIX 3を実行することができます。MINIX 3に興味がある方は実際に動かしてみてはいかがでしょうか。