2009-01-01から1年間の記事一覧
小飼弾のアルファギークに逢いたい♥に、インターン先の社長さまが出ていられた*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つ。 リアルモードとプロテクトモードではセグメントレジスタの使い方が異なるから。 以下では、その詳細について述…
ちょっと調べた結果、CR0レジスタの31bit目がページング機能のトリガになっているらしい。そこで、Grubから私のコードに抜けた直後でCR0レジスタの31bit目を1にアサートしてみたところ、さすがにQemuがクラッシュした(wセグメントディスクリプタの設定を無視…
「30日でできる!OS自作入門を Linux & GAS で行う」をやってみて、大雑把だが初期の「いかにしてx86マシンがブートし、プロテクトモードに移行するのか理解する」という目標は達成できた。そこで、OS自作本にのっとって作業するのを一時中断し、現在多くのO…
さて、めっきり更新が遅くなってしまいましたが、3日目です。ポイントは いかにして32ビットプロテクトモードへ突入するか いかにしてCのソースが吐いたバイナリにjmpするか です。 いかにして32ビットプロテクトモードへ突入するか 32ビットプロテクトモー…
界隈でRubyが遅いとか言われているので、「インラインアセンブリできれば超早くなるんじゃね?!」と思って、やってみた。ちなみに、Linux上じゃないと動かないよ!クラスファイルasm.rbのダウンロードはこちらから このファイルと同じフォルダに、以下のよ…
なんとなく、ソースコードはコンソールの中にあった方がしっくりくるので、CSSを変更してシンタックスハイライト時の色を変更して、コンソールっぽくしてみた。具体的には、シンタックスハイライトされている要素には、それぞれ 名前 クラス名 コメント synC…
FreeBSDのデバイスドライバ(?というか、どちらかというとカーネルモジュール)を書く機会があったのだけれど、資料が/usr/src/sys/dev 以下のソースコードくらいしかなくて、思いのほか苦戦してしまった。折角書いたので、スケルトンファイルとして公開してみ…
ネットワークアナライザのWireSharkを導入して、遊んでみた。 これまでまともに使ったことのあるネットワークアナライザは、dummynet(これはどっちかっていうとネットワークエミュレータかなぁ),tcpdumpくらいなもんだったり。ちなみに、両方とも、ネットワ…
先日リリースしたmixi echo用プラグインですが、mixi_post_echoの方に「日本語がpostできない」というかーなーり!致命的なバグがあったので修正しました。lifehackintokyoさん、バグに気づかせてくれてありがとうございました。id:praggerさんには、こちら…
「RubyやってるのにPraggerやってないなんてありえないよねー(笑)」で評判のPraggerですが、まだ触ったこともなかったので練習がてらmixiエコー(をget/にpost)するようなPraggerプラグインを作ってみた。コードを書くにあたっては、boumankan Pragger用プラ…
一昨日から、移動時間や暇な時間は全て[rakuten:book:11973734:title]につぎこんでいる感じ。なんか、(CやPascalといった)高級言語のソースを見る->アセンブルされたコードを見るの繰り返しが多いんだけど、最適化の度合いが一目瞭然で、非常に面白い。 つー…