【自作】 プログラミング 【してみた】

d9d48949 :Anonymous 2010-08-18 05:19
x86系linux用libc非依存のcatコマンドを作ってたらこんな時間になっちまった。
これから寝るのは危険だな……。

当初の予定
 cat.cを書く→関数をシステムコールに直す→システムコールをインラインアセンブラとかで呼び出す

fopenやgetc, putcをopen、read、writeに書き直す所まではスムーズ。それをsyscallで呼ぶのもまあまあ。
で、syscallの実体はどこ? ←ここで2時間くらい
_syscall1、_syscall2とかいうマクロがあるらしい。1とか2とか何だ? ←ここで1時間くらい
なるほど、引数ね。でそのマクロは今無いと。じゃあ今はどうやればいい? ←ここで2時間くらい
もういいや。古いカーネルソースから貰ってこよう。あれ? -nostdlibだと表示されない。
終了コードはちゃんと変化してるからシステムコールは呼び出せてるはず。←コマンドライン引数が渡せてないと気づくまで3~4時間
スタートアップルーチンを適当に書く(もちろんコピペ)。動かない。←ここでさらに1時間

夜も明けるわけだ……。
Powered by shinGETsu.