結城浩先生のWikiにexitするだけのバイナリを削っていく記事の翻訳があります。
これをMINIXでもやってみようと思い、インラインアセンブラでシステムコールを呼ぶコードを書いてみました。
void start() { int m[] = { 0, 1/*EXIT*/, 42, 0, 0, 0, 0, 0, 0 }; asm("movl $0, %%eax; movl $3, %%ecx; int $0x21" :: "b"(m)); }
# gcc -nostdinc -nostdlib exit.c # ./a.out; echo $? 42
これをどんどん削っていこうと思います。続きはまた後日。