vx32

ページフォルトハンドラ

9vx上で動作するPlan9プロセスは、ホストOSのプロセスと1対1対応している訳ではない。これはホストOSでpsしてみれば、9vxという1つのプロセスしか見えない(Plan9プロセスは見えない)ことからもわかる。9vxの内部実装は基本的に「1 CPU = 1スレッド(pthrea…

9vx on x86_64

9vxがx86_64環境でも動くという話だったので、MacOS XのVMWare Fusion上にUbuntu 9.04/amd64をインストールして、試してみた。MacOS X上での動かし方は、こことかに書いている。基本は一緒なので、注意点だけをメモしておこう。vx32用のbinutilsとgccが必要…

タイマー割込みとプリエンプション

最初に読むならスケジューラ周りかなと、まずはタイマー割込みの扱いから追っかけることにする。普通のマルチタスクOSはプロセスプリエンプションを提供している。つまり、10ミリ秒周期とかでタイマ割込みを発生させて、プロセスを切り替える(ためにスケジ…

9vxのソースコード

暇を見つけて9vxのコードを読んでいこうと思う。最初にトップディレクトリのHACKINGファイルに目を通しておくとよい。 vx32-0.12/src/9vx以下が9vxのソースコードで、トップディレクトリに存在するファイルは9vxのために手で修正 or 新規作成されたコード。…

vx32-gccとlibvxcとvxrun

と、ここでしばらく考えてみる。vx32-gccがどんなバイナリを出力するとかというと、 $ vx32-gcc hello.c $ file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not strippedELF形式だ。当然、実行はできない…

vx32 for Windows

私は興味ないけど、ポーティングしている人がいる。 vx32 for Win32

vx32 on MacBook

手元のLinuxだとどうもうまく動いてくれないので、続いてMacBook (OSはTiger)で試してみる。binutils/gccはこれまたソースからビルドしてます。 $ wget http://pdos.csail.mit.edu/~baford/vm/release/binutils-2.18-vx32.tar.bz2 $ tar jxvf binutils-2.18-…

vxlinux

linux のシステムコールをフックする (DSAS開発者の部屋 2008-07-25)というエントリがあったので、そんなときこそ、vxlinuxと思って試してみたけど、結論から言うとうまく動かすことができなった。 環境はCentOS 5/IA32。binutils/gcc共にソースからコンパイ…

9vx

新しいVMネタ。Russ CoxさんがホストOSを変更することなく、Plan9を実行できる9vxをアナウンスした。Linux、FreeBSD、MacOS X上で動とのこと。技術的にはRussさんらがMITで研究開発しているvx32という仮想化支援ライブラリを使っている。今年の(今週やって…