自分のコードが悪いんじゃなくて、 HFS+ がいかれていると早く気がつけば良かったんですが、 いやはや苦労しました。 この「Legacy Free」なシステムではちょっとやそっとでは出力ができないんで、 情報をどう得るか悩みましたね。 ある程度直してからは必ずハングアップしてくれるようになったので、 int3でリブートさせることで反応を見られるようになりました。 原始の世界へようこそ、って感じですが、 リブートするかどうか何度も試せば、どこで止まるのか特定できますから。
結局decompress_kernelがこけていることが分かったので、 ここでようやくちゃんとカーネルを読めているのか疑問に感じ始めて、 てっとり早くCRC32でチェックサムを検査してみたら、 やっぱりちゃんと読めてませんでした。 その後はブロックリストを眺めたり、 gdbでgrub-emuを追ったり。 やっぱりこのレベルでデバッグできると遥かに効率が良いので、 あっと言う間に修正できました。 後はちゃんと起動できるようになったか確認して、お終い。
ところで、自分が最近よくないと思うところは、 自分のコードが悪いと考えすぎるところでしょうね。 初心者ほど他人のコードが悪いと考えたがる (コンパイラがおかしい、libcがおかしい、カーネルがおかしい、etc.) と言いますし、 全くその通りだと思うんですけど、 私は逆に自分が悪いと考えすぎます。 しかしこのレベルのプログラムを書いていると、 GCCとかLinuxなんかでもゴロゴロ障害に見舞われるので、 あんまり他人のコードを過信するのもよろしくありません。 自分から疑うってのは紳士的で好ましいのかもしれませんけど、 ほどほどにバランスを取らなきゃいけませんねえ。
それはそれとして、 ようやく他のアーキテクチャと肩を並べられるぐらいになってきました。 CDROM周りを何とか片付ければ、もうちょっと派手に宣伝してもよいかも。
オランダでは修士課程から全部英語だそうです。
要するに、英語が分かんない奴は消えてください、
ってことです。
さすがは国民の大部分が英語を流暢に話す国だけのことはあるなあ、と。
情報系の話なんで、他はどうだか知りませんけど。
情報系で英語がさっぱり分からないってのは現実に問題ありまくりなので、
これぐらいやっていいんじゃないでしょうか、やってください。
日本でこういうことをすると、
大部分が落第するような悪寒予感がしますが。