:CdCurrent

おっかしいなぁ。:CdCurrent(現在のディレクトリに移動)が効かない!!と思ったら、香り屋版vim拡張機能らしい・・・該当ファイルは,$vim/runtime/plugin/cmdex.vim

command! -nargs=0 CdCurrent cd %:p:h

はぁ、幸せ。

他にも便利な機能が詰まっていそうなので、コマンドごとにハックしていきたいと思います。:p:hの意味がわからない・・・。

  • 追記

:help ::h

  • :p ファイル名のフルパス
  • :h ディレクトリ名(最後のスラッシュを除く)

つまり、%:p:hでカレントファイルのフルパスのディレクトリ名を返す。って感じですかね。

Thus ":p:h" on a directory name results on the directory name itself (without trailing slash).

勉強になりました。ハイ。

参考::e C-x (編集中のファイルと同じディレクトリにあるファイルを開く。) : サイト更新停滞ちうっ - 名無しのVIM使い

C-x便利そうだ!!次はC-xをハックしよう〜。

カーネルソースコード入手。

今日は珍しく早く帰ってこれました!いえぃ!

linux-2.4.27のソースコードを入手しました。2.6からブート部分が変わっているらしいので、今回は2.4です。手元の資料も2.4なので、2.6と対比しながら読んでいければいいかなぁと思います。

解凍したら、164.1MBもあります・・・せっかくなので、ボクノス付属のinfo.awk(プログラムの行数を計るスクリプト)を走らせてみました・・・

{
	print $0
	lines += $1
	words += $2
	chars += $3
}
END {
	print " " lines " " words " " chars
}
$ find -type f -exec wc {} \; | awk -f info.awk
〜いっぱい。
5602421 20184283 165879239

うまく走っているようです・・・なかなか終わりませんでした・・・。

行数が560万行。2千万ワード。1億6千文字・・・僕が100回死んでもこんなに書けません(笑

まずは,arch/i386/boot/bootsect.Sの解析です。

ブート部分でやることはただひとつ。次のファイルを読み込んで、次のファイルの先頭へジャンプすることです。WindowsLinuxMonaやはりぼて(OS自作入門)も殆ど同じ処理をしています(Windowsは妄想)

PCの電源を入れると、最初にBIOSタンが起動します。BIOSは初期設定を終えたあと、ディスクの最初の512バイト(ブートセクタ)をメモリ0x7c00に配置しジャンプさせます。OS(ブートローダー)の仕事はここからです。ファイルシステムを解析して、次のファイルを読み込みます。ブートの仕組みは以外と簡単です。ハードウェアに近い部分なので、言語の選択肢はアセンブラorマシン語しかありません。ボクノスはアセンブラの選択にintel形式のnasmではなく、AT&T形式のgasを選びました。記号が多く読み辛いのが欠点ですがgccとの相性の良さと今後の展開を考えるとgasという選択肢がベストだと考えました。問題は資料の乏しさ・・・英語or実際のソースのみ!そんなわけで、カーネルソース解析なのです。忙しい&Linux覚え中なので、相当まったり解析していきます〜

OS自作erの殆どがここで挫折していきます・・・さて、ボクノスは乗り越えられるのか(笑

ちなみに、カーネルソースコードの入手はここ