カーネルのコールグラフが図になっていて、図中の関数名はLXRにリンクしているという、素晴らしいWebサービスを発見。 http://www.makelinux.net/kernel_map これは便利。
OSSで食べていけるようなところに就職が決まりました。実力がしょぼいのは重々承知ですが、チャレンジングにやってきたいと思います、ハイ。*1 *1:正確にいうとあとで配属先を決めるための面接があるのだとか。
以前の日記で、マニュアルの発注願いを出したとこまで書いたんだけど、なんと今日返信があって一応送付してくれるそうな。ただし、Instruction Set ManualはもうDownloadのみらしい。とりあえず、送り先の郵便番号が抜けてるということだったので、それを書…
昨日の日記みたいに、「生のコードを読んで、分からないところを調べる」というアプローチは勉強する上で結構有効な気がしたので、今日もチャレンジ。今日はBirvisorのコードです。Bitvisorのコードには、以下のマクロがたくさんでてきます。 //core/time.c …
基本といえば基本ですが、以下のようなdprintkを定義しておくと、コンパイルフラグを変えるだけで動作確認メッセージのON/OFFができて便利です。 #define __DEBUG__ #ifdef __DEBUG__ #define dprintk(format) \ do{ \ printk("%s:%d" format,__FUNCTION__,_…
そんなときは、カーネルのソースのディレクトリのルートで sudo make-kpkg linux_headers して、linux-headersのdebパッケージを作り、インストールすればよい(確認済)。と思ったけど、よくみると ls -la /lib/modules/linux-2.6.28.9/ ... build -> /usr/sr…
ruby-libvirtのソースコードを読んでいたら、何やら怪しげなマクロが。 67 #define generic_get(kind, v) \ 68 do { \ 69 vir##kind##Ptr ptr; \ 70 Data_Get_Struct(v, vir##kind, ptr); \ 71 if (!ptr) \ 72 rb_raise(rb_eArgError, #kind " has been free…
http://www.intel.com/products/processor/manuals/ から、Intelのマニュアルを発注した直後、なぜか発注用のボタンが消えてなくなった(w メールの返信もないし、一体どういうことだろう。まー、pdfで十分だからいっか。# 2009/04/04 追記 私が発注しなかっ…
IBM-Lenovo Thinkpad X61 ここがよくまとまっている。iwlwifi を読み込めば無線も動くらしい。 この記事によると、ここからマイクロコードを落としてきてインストールする必要があるみたい。無線LANが動くバージョンのカーネルのファームウェアが入っている…
kgdbはLinux 2.6.26 から統合されたカーネルのデバッグ機能です。使った感じとしては、gdbサーバをカーネルが提供しているような雰囲気です。カーネルモジュールを書いていて厄介なバグに出会ったので、導入してみるに至りました。以下ではその導入方法につ…
小飼弾のアルファギークに逢いたい♥に、インターン先の社長さまが出ていられた*1。びっくり。 *1:直接は見たことがないのですがw
libvirtのコンパイルしてみるテスト git clone git://git.et.redhat.com/libvirt.git sudo aptitude install libtool libxen3-dev libsasl2-dev libvirt-bin ./configure --prefix=/usr/local/kvm && make && sudo make install つづく
Linuxカーネルを再構築&&コンパイルした後、カーネルモジュールは読み込めなくなります。nvidiaのドライバもそのうちの1つです。今回、nvidiaからソースを落としてきてインストールすることができたので、その手順についてまとめます。概要は以下の通りです:…
トラブルがあったとき、闇雲にググると時間を食われてしょうがない。 メインマシンがUbuntuなので、Ubuntuに関するサイトをまとめてみる。 Ubuntu Guide Ubuntu Japanese Wiki
デフォルト(CDROMからインストールできる構成)で、最も必要動作環境が低いLinux Distributionを探してみる。ぱっと探してみた感じ、以下のような結果になった。 Distribution名 必要メモリ Puppy 128MB*1 Debian*2 32MB Ubuntu*3 32MB 一瞬DSLというDistribu…
私の使っているKVMスイッチの切り替えショートカットはshift+ctrlなのだが、SCIMの入力メソッド切り替えと思いっきりかぶっていて大変煩わしい。なので、どうしてもキーバインドを変更する必要があったのだけど、あまり情報がなかったのでエントリを上げる。…
カーネルモジュールのバグがとれないので、gdbでカーネルデバッグを試みる。 というわけで、とりあえず良さげな関連記事をまとめてみる。Linuxのデバッグ手法をマスターする Linux/GDBを使ってコードを追っかける(Omicron) gdbによるカーネルデバッグ方法 Ke…
カーネルモジュールのボトルネックを測定したい。こんなことよくあります。Oprofileは、そんな要求に応えられる、非常にいけてるプロファイラです。最近のLinuxカーネルであれば、再コンパイルなしにプロファイリングすることができます:D。 本記事では「Ubu…
Linuxのカーネルモジュールを書いてるんだけど、insmodして3秒経つとフリーズなさるw この問題で3時間くらいなやんでるんだよなぁ。 いったん頭を冷やそう。 - 意外とややこしい問題っぽい。とりあえずお手軽実装の方を使うことにしようw
以前をGtags使っていたことがあったんだけど、その時は正直キーバインドのチューニングが甘くて使いこなせていなかった。Gtagsの使い方がホットエントリに入ってるのを見て、ちょいともっかい使ってみるかという気になったのでデフォルトのキーバインドと、…
Ruby用の共有ライブラリを記述するとき、以下のような手順を踏むことが多いです。 共有ライブラリ本体のコードを書く。 Makefileを生成するための extconf.rb を書く。 extconf.rbからMakefileを生成する。 make する。 このとき、クラス名は 共有ライブラリ…
面白そうなので参加します>< Ruby 温泉 March 2009 http://atnd.org/events/380
レポート書いてて発見したんだけど、コレ、すごくないですか(w2-4年に一回のペースで800ページクラスの本を改訂 && 書き上げるとか...。知識のファイリングをちゃんとやってるんだろうなぁ。 レポートを書く 27日に提出のレポートがあるので、それのためにW…
木曜日に簡単な発表があるのだが、デモをやらんと話にならんような内容なので、デモが動く環境+プレゼンできる環境ということでUbuntuにOpenOfficeを入れて見た*1公式HPからdebファイルを落としてきて、 以下のサイトを参考にインストール。 http://www.osse…
Debian の 5.00 コードネーム Lenny がリリースされたようです。奇しくもおととい Debian をインストールする機会があったのですが、そのときはまだ RC2 しかでていなかったので etch をインストールせざるをえませんでしたw新機能がどうこういうよりも、 ht…
思ったより長くなったなーw・・・あれ。そういえばレポート書いてたはずがいつの間にかこんなことを(ry
GRUBからelfバイナリを読み込んだあと、ページングがなかなかONにできずはまっていたのだけど、一段落したのでまとめ。今回のエントリでは、GRUBからelfバイナリを読み込み、実行するところまでを述べます。 GRUBがelfバイナリを読み込み、起動するまで まず…
はじめて読む486を読み直して、ページングをONにするまでの手順を整理。 GDTを設定。 IDTを設定(割り込みベクタの0x0eがフォールトハンドラ用に予約されている)。 ページディレクトリ、ページテーブルを初期化。このとき、物理アドレスを仮想アドレス空間に…
そっかー。そりゃ落ちるわ。 リンク時に 0x40000000 用にコンパイルしてるのに、Grubから出た直後は0x100000にバイナリが読み込まれているんだから。 ----- 0x100000 ----- <- EIP # binary is loaded here by grub boot loader. binary compiled for 0x4000…
「Linuxのブートプロセスを見る」を見たら、セグメントについてわからなかったことが理解できたので、メモ。私が混乱していた原因はたった1つ。 リアルモードとプロテクトモードではセグメントレジスタの使い方が異なるから。 以下では、その詳細について述…