xv6を動かしてみる。

すごく久しぶりです。

最近、個人的にOSの勉強をしているのですが、なかなか進みません。

LXRLinuxのコードリーディングでもしようかと思ったのですが、コードの行数が1500万行以上らしく、どうも気軽に読めそうな気がしません。

そこで

  • コード量が短く、ビルドが簡単
  • 端末上でも動く
  • 資料がそれなりにある

という条件でいろいろ探してみたところ、xv6という教育用のOSを見つけました。

 

Xv6, a simple Unix-like teaching operating system

http://pdos.csail.mit.edu/6.828/2011/xv6.html

 

これはVersion 6 Unixx86でも動くように、コードを書き換えたものだそうです。

講義のためにここまで出来るのはすごい。

 

というわけで、エミュレータQEMUを用いた起動方法を紹介します。

 

用意したもの

Ubuntu 12.10

emacs

 

手順

[1] フォルダを作って移動。

/home/wk4% mkdir unix

/home/wk4% cd unix

/home/wk4/unix%

 

[2] 必要な物をダウンロードする。

- gitとqemuのインストール

sudo apt-get install git qemu qemu-kvm-extras

- xv6をダウンロード

git clone git://pdos.csail.mit.edu/xv6/xv6.git

- xv6の中に移動

/home/wk4/unix% cd xv6

/home/wk4/unix/xv6%

 

[3] Makefileの編集

/home/wk4/unix/xv6% sudo emacs Makefile

次に、54行目の#QEMU=を#を外して以下のように編集。
QEMU = /usr/bin/qemu-system-x86_64

 

[4] xv6のmake

/home/wk4/unix/xv6% sudo make

-特に"sudo"で管理者権限で実行するのが重要。ない場合、エラーを吐かれる。

 

[5] 起動

/home/wk4/unixxv6% sudo qemu make

 

-起動すると、QEMUのウインドウが立ち上がる。

-さらに、以下の様なメッセージが表示される。$ が表示されれば起動完了。

/usr/bin/qemu-system-x86_64  -serial mon:stdio -hdb fs.img xv6.img -smp 2 -m 512
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
QEMU 1.2.0 monitor - type 'help' for more information
(qemu) QEMU 1.2.0 monitor - type 'help' for more information
(qemu)
xv6...
cpu1: starting
cpu0: starting
init: starting sh
$

 

停止させたい場合は

[1] Alt+Ctrlでマウスを動かせるようにして、ウインドウの✕をクリック

[2] 端末上(QEMUでない方)に移ってCtrl+C

の2つです。

 

とりあえず資料も有るようなので、じっくり読んでみます。

とうとうOSX10.8のOctaveでPlotが…!

前回の記事の話題からひき続いて、今回は一気に記事を打ってからにしてます。

 

さて、今まで自分はOctaveをOSXに入れて、失敗して、アンインストールという繰り返しをずっとしてきました。

いつも止まってしまう箇所がPlot関連のところで、実行するたびに"broken pipe"と出てしまうわけです。

 

近頃ずっとググッていたのですが、今日にいたるまで解決策が見つからず、vmwareFusion4上でUbuntuを動かしてからのOctaveという回りくどいことをやっていた・・・のですが、やっぱり諦めきれず、いろいろググッてみたところ以下のHPの書き込みを見つけました。

 

-- Mac OS X Mountain Lion, Octave can not execute sombrero()

http://octave.1599824.n4.nabble.com/Mac-OS-X-Mountain-Lion-Octave-can-not-execute-sombrero-td4643502.html

 

これを見て期待に胸をふくらませ、また再インストール作業に戻ることになったのでした。

 

用意した物

1. Binary of Octave 3.4.0

http://sourceforge.net/projects/octave/files/Octave%20MacOSX%20Binary/

 

2. 書き込み情報

(書き込みからの引用)

cd /Applications/Gnuplot.app/Contents/Resources/lib
mv libfreetype.6.dylib libfreetype.6.dylib.bak
ln -s /usr/X11/lib/libfreetype.6.dylib .

 

手順

[1]

1.の.dmgをそのまま開いてOctave.appとExtras内のgnuplot.appをアプリケーションの中にドロップします。

[2]

次に、2.のおまじないをターミナル上で実行します。

どうやらGnuplotに付いてたものから、XQuartzの所にあるlibfreetype.6.dylibにリンクを張って代わりに使用してるようですね…。

[3]

ターミナル上でoctaveと打って、octave起動。

 

 

…そして…

f:id:wk4:20120906215514p:plain

 

どきどき。

 

f:id:wk4:20120906215621p:plain

 

きましたー!

 

ということでmacport,homebrewを使わず簡単にインストール出来、plotも無事使えました。

 

問題はこれのために導入したvmwareFusion4をどうすべきか…。

 

(だいたい所要時間は25分ぐらいですか。

 一分あたりの文字数を考えると、

   1088(文字) / 25(分) = 43.52(文字/分)ですね。)

書く速さ

何を書くにしても、打つにしても、自分は遅い。

 

この文章を書くのも、

打って 消して 打って 打って 消して

のような行ったり来たりの繰り返し。

 

ただ、全部まとめて打ってから消すと、行ったり来たりの方よりも日本語がおかしなことになってる率が経験的には高い気がする。

単に”気”ですめばいいのだけれど。

 

せっかくなので、次とそのまた次の記事でどっちも試してみて文字数と時間とあとで見たときの文章で比べてみます。

(ついでに今は方法としては前者の方です。だいたい15分ぐらい…?)