2009-01-01から1年間の記事一覧

これは気づかなかった

小飼弾のアルファギークに逢いたい♥に、インターン先の社長さまが出ていられた*1。びっくり。 *1:直接は見たことがないのですがw

libvirtをコンパイル

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 つづく

最新カーネルにプロプライエタリなnvidiaドライバをインストール

Linuxカーネルを再構築&&コンパイルした後、カーネルモジュールは読み込めなくなります。nvidiaのドライバもそのうちの1つです。今回、nvidiaからソースを落としてきてインストールすることができたので、その手順についてまとめます。概要は以下の通りです:…

Ubuntuに関する情報サイト

トラブルがあったとき、闇雲にググると時間を食われてしょうがない。 メインマシンがUbuntuなので、Ubuntuに関するサイトをまとめてみる。 Ubuntu Guide Ubuntu Japanese Wiki

x86用Linuxで最も必要動作環境が低い2.6カーネルDistributionは?

デフォルト(CDROMからインストールできる構成)で、最も必要動作環境が低いLinux Distributionを探してみる。ぱっと探してみた感じ、以下のような結果になった。 Distribution名 必要メモリ Puppy 128MB*1 Debian*2 32MB Ubuntu*3 32MB 一瞬DSLというDistribu…

SCIMのキーバインド変更

私の使っているKVMスイッチの切り替えショートカットはshift+ctrlなのだが、SCIMの入力メソッド切り替えと思いっきりかぶっていて大変煩わしい。なので、どうしてもキーバインドを変更する必要があったのだけど、あまり情報がなかったのでエントリを上げる。…

シリアルケーブルでつないでリモートデバッグ(記事収集編)

カーネルモジュールのバグがとれないので、gdbでカーネルデバッグを試みる。 というわけで、とりあえず良さげな関連記事をまとめてみる。Linuxのデバッグ手法をマスターする Linux/GDBを使ってコードを追っかける(Omicron) gdbによるカーネルデバッグ方法 Ke…

Oprofileでプロファイリングしよう

カーネルモジュールのボトルネックを測定したい。こんなことよくあります。Oprofileは、そんな要求に応えられる、非常にいけてるプロファイラです。最近のLinuxカーネルであれば、再コンパイルなしにプロファイリングすることができます:D。 本記事では「Ubu…

むー

Linuxのカーネルモジュールを書いてるんだけど、insmodして3秒経つとフリーズなさるw この問題で3時間くらいなやんでるんだよなぁ。 いったん頭を冷やそう。 - 意外とややこしい問題っぽい。とりあえずお手軽実装の方を使うことにしようw

Gtags用にキーバインドをチューニング

vim

以前をGtags使っていたことがあったんだけど、その時は正直キーバインドのチューニングが甘くて使いこなせていなかった。Gtagsの使い方がホットエントリに入ってるのを見て、ちょいともっかい使ってみるかという気になったのでデフォルトのキーバインドと、…

共有ライブラリ用のテンプレートを吐き出すスクリプト

Ruby用の共有ライブラリを記述するとき、以下のような手順を踏むことが多いです。 共有ライブラリ本体のコードを書く。 Makefileを生成するための extconf.rb を書く。 extconf.rbからMakefileを生成する。 make する。 このとき、クラス名は 共有ライブラリ…

Ruby 温泉 March 2009

面白そうなので参加します>< Ruby 温泉 March 2009 http://atnd.org/events/380

タネンバウム先生半端ないっす

レポート書いてて発見したんだけど、コレ、すごくないですか(w2-4年に一回のペースで800ページクラスの本を改訂 && 書き上げるとか...。知識のファイリングをちゃんとやってるんだろうなぁ。 レポートを書く 27日に提出のレポートがあるので、それのためにW…

OpenOffice 3.0.1 を試してみた。

木曜日に簡単な発表があるのだが、デモをやらんと話にならんような内容なので、デモが動く環境+プレゼンできる環境ということでUbuntuにOpenOfficeを入れて見た*1公式HPからdebファイルを落としてきて、 以下のサイトを参考にインストール。 http://www.osse…

Debain 5.00 Lenny リリース

Debian の 5.00 コードネーム Lenny がリリースされたようです。奇しくもおととい Debian をインストールする機会があったのですが、そのときはまだ RC2 しかでていなかったので etch をインストールせざるをえませんでしたw新機能がどうこういうよりも、 ht…

雑感

思ったより長くなったなーw・・・あれ。そういえばレポート書いてたはずがいつの間にかこんなことを(ry

GRUBであそぼ

GRUBからelfバイナリを読み込んだあと、ページングがなかなかONにできずはまっていたのだけど、一段落したのでまとめ。今回のエントリでは、GRUBからelfバイナリを読み込み、実行するところまでを述べます。 GRUBがelfバイナリを読み込み、起動するまで まず…

ページングをONにして仮想記憶を有効にするまでの手順メモ

はじめて読む486を読み直して、ページングをONにするまでの手順を整理。 GDTを設定。 IDTを設定(割り込みベクタの0x0eがフォールトハンドラ用に予約されている)。 ページディレクトリ、ページテーブルを初期化。このとき、物理アドレスを仮想アドレス空間に…

ページングをONにした後に落ちる理由

そっかー。そりゃ落ちるわ。 リンク時に 0x40000000 用にコンパイルしてるのに、Grubから出た直後は0x100000にバイナリが読み込まれているんだから。 ----- 0x100000 ----- <- EIP # binary is loaded here by grub boot loader. binary compiled for 0x4000…

セグメント

x86

「Linuxのブートプロセスを見る」を見たら、セグメントについてわからなかったことが理解できたので、メモ。私が混乱していた原因はたった1つ。 リアルモードとプロテクトモードではセグメントレジスタの使い方が異なるから。 以下では、その詳細について述…

ぺーじんぐ。

ちょっと調べた結果、CR0レジスタの31bit目がページング機能のトリガになっているらしい。そこで、Grubから私のコードに抜けた直後でCR0レジスタの31bit目を1にアサートしてみたところ、さすがにQemuがクラッシュした(wセグメントディスクリプタの設定を無視…

初期の目標は達成できたので...

「30日でできる!OS自作入門を Linux & GAS で行う」をやってみて、大雑把だが初期の「いかにしてx86マシンがブートし、プロテクトモードに移行するのか理解する」という目標は達成できた。そこで、OS自作本にのっとって作業するのを一時中断し、現在多くのO…

30日でできる!OS自作入門を Linux & GAS で行う (3日目)

さて、めっきり更新が遅くなってしまいましたが、3日目です。ポイントは いかにして32ビットプロテクトモードへ突入するか いかにしてCのソースが吐いたバイナリにjmpするか です。 いかにして32ビットプロテクトモードへ突入するか 32ビットプロテクトモー…

Rubyでインラインアセンブラできるようなクラスを作ってみた

界隈でRubyが遅いとか言われているので、「インラインアセンブリできれば超早くなるんじゃね?!」と思って、やってみた。ちなみに、Linux上じゃないと動かないよ!クラスファイルasm.rbのダウンロードはこちらから このファイルと同じフォルダに、以下のよ…

シンタックスハイライト時にコンソールっぽくなるようCSSをいじってみた

なんとなく、ソースコードはコンソールの中にあった方がしっくりくるので、CSSを変更してシンタックスハイライト時の色を変更して、コンソールっぽくしてみた。具体的には、シンタックスハイライトされている要素には、それぞれ 名前 クラス名 コメント synC…

newbusベースのデバイスドライバソースコードのスケルトン

FreeBSDのデバイスドライバ(?というか、どちらかというとカーネルモジュール)を書く機会があったのだけれど、資料が/usr/src/sys/dev 以下のソースコードくらいしかなくて、思いのほか苦戦してしまった。折角書いたので、スケルトンファイルとして公開してみ…

ネットワークアナライザ

ネットワークアナライザのWireSharkを導入して、遊んでみた。 これまでまともに使ったことのあるネットワークアナライザは、dummynet(これはどっちかっていうとネットワークエミュレータかなぁ),tcpdumpくらいなもんだったり。ちなみに、両方とも、ネットワ…

早速バグ修正

先日リリースしたmixi echo用プラグインですが、mixi_post_echoの方に「日本語がpostできない」というかーなーり!致命的なバグがあったので修正しました。lifehackintokyoさん、バグに気づかせてくれてありがとうございました。id:praggerさんには、こちら…

mixi echo 用 Pragger プラグインを作ってみた

「RubyやってるのにPraggerやってないなんてありえないよねー(笑)」で評判のPraggerですが、まだ触ったこともなかったので練習がてらmixiエコー(をget/にpost)するようなPraggerプラグインを作ってみた。コードを書くにあたっては、boumankan Pragger用プラ…

今日読んだもの

一昨日から、移動時間や暇な時間は全て[rakuten:book:11973734:title]につぎこんでいる感じ。なんか、(CやPascalといった)高級言語のソースを見る->アセンブルされたコードを見るの繰り返しが多いんだけど、最適化の度合いが一目瞭然で、非常に面白い。 つー…