最近読んで非常に面白かった本。今まで何となくわかった気になっていたUnixの仕組みがもう少しだけわかったような気になった。
会社に入りたての頃、SCO Xenixにシリアルポートのドライバを組み込んで動かすプログラムをいじったりしていたのだが、その裏でこんな動きをしていたのか、というのが今頃になって何となくわかった。しかしXenixはinb()/outb()とかinw()/outw()とかでIOしていたのだが、その辺りのインターフェースはOSによって微妙に違うらしい。
買ってから随分放っておいてしまったが、ぼちぼちAndroidプログラミングを触り始めてみた。
VisualStudio専門のオイラ、Eclipseを触るのはほとんど初めてなのだが、やはりどうもIDEで物を作るとまどろっこしいような気がする。コマンドラインとターミナルとprintfデバッグの世界は今や前時代のものなのだろうか。
しかしマイドキュメントをC:ドライブから移してるとうまく動かないエミュレータというのもいかがなものか。とりあえず備忘録。
mklink /d c:¥users¥hogehoge¥.android d:¥hogehoge¥.android
とかやっとくと動く。しかしこんなの売り物作ってるソフトベンダーの製品でもありがちな気がする。
ちなみに、これも最初MacBook Airに環境作ろうかと思ったのだが、本と違うことやって本質的じゃないトコでハマるのもアホらしいので、まずはWindowsでやってみることにした。MacBook AirはいずれiOSアプリを作る時に使おう。
違うことばっかりやってて中々OSの自作に入れないのだが、とりあえずエミュレーターだけ入れてみようと思い brew install qemu してみたら、
In file included from /private/tmp/brew-qemu-1.2.0-31wy/qemu-1.2.0/target-mips/op_helper.c:21: /private/tmp/brew-qemu-1.2.0-31wy/qemu-1.2.0/dyngen-exec.h:64:24: error: global register variables are not supported register CPUArchState *env asm(AREG0); ^ 1 error generated. make[1]: *** [target-mips/op_helper.o] Error 1
なんてこと言われてビルドがフェイルする。終いには
Error: Failed executing: make install (qemu.rb:29) These existing issues may help you: https://github.com/mxcl/homebrew/issues/14936 Otherwise, this may help you fix or report the issue: https://github.com/mxcl/homebrew/wiki/bug-fixing-checklist
などと言って来るのでとりあえずそのリンクを見に行ったら、単にビルドがフェイルするので誰かなんとかしてくれと書いてあるだけだった。
で、誰も何とかしてくれそうにないのでとりあえずここから大元のソースを取って来て configure && make してみたら何事もなく出来上がった。
パッケージ管理からは外れてしまったがまぁ良しとしておこう。